Becon 소개
Becon은 systemd 기반 서비스를 모니터링하고 관리하는 내부 대시보드입니다. 서비스 상태 확인, 코드·라이브러리 업데이트, 자동 재시작 스케줄까지 한 화면에서 처리할 수 있습니다.
서비스 목록
등록된 모든 서비스를 카드 형태로 보여줍니다. 각 카드에는 상태, 메트릭, git/라이브러리 버전, 액션 버튼이 한 화면에 표시됩니다.
서비스 카드
- 1아이콘 / 이름 — 등록 시 설정한 서비스명과 이미지 (없으면 첫 글자). 포트·conda 환경도 표시
- 2서버 배지 — 어느 서버의 서비스인지 표시. Servers 메뉴에서 등록
- 3상태 배지 — systemd 상태: active inactive error
- 4빨간 좌측 선 — 코드·라이브러리 업데이트가 필요한 경우 표시. git hash 또는 라이브러리 버전에 마우스를 올리면 상세 내용 확인 가능
- 5액션 버튼 — 시작/중지 · 업데이트 · 로그
상태 표시 기준
카드 좌측에 빨간 선이 나타나는 경우는 다음 세 가지입니다:
git fetch를 실행해 커밋 차이를 감지합니다.CPU≥30%
red pulse
서비스 등록
우측 상단 서비스 생성 버튼을 클릭합니다. 기존 서비스는 카드의 ✏ 편집 버튼으로 수정합니다.
| 필드 | 필수 | 설명 |
|---|---|---|
서비스 이름 | 필수 | systemd 유닛 파일명과 동일해야 합니다. 예: penc → penc.service. 등록 후 변경 불가. |
작업 디렉토리 | 선택 | git 저장소 경로. 설정 시 코드 업데이트 및 커밋 버전 감지 활성화 |
Git 인증 정보 | 선택 | 비공개 저장소의 경우 사용자명·토큰 입력. 읽기 전용 토큰 권장 |
Conda 환경 | 선택 | 설정 시 fobecon-common-lib 버전 감지 및 라이브러리 업데이트 활성화 |
포트 | 선택 | 카드 뒷면에 표시. 실제 바인딩과 무관 |
환경 변수 | 선택 | KEY=VALUE 형식, 한 줄에 하나씩 |
아이콘 | 선택 | 카드에 표시할 이미지. 없으면 서비스명 첫 글자가 표시됩니다. |
업데이트
카드의 업데이트 버튼으로 코드와 라이브러리를 최신 상태로 유지합니다. 오른쪽 ▾로 개별 선택도 가능합니다.
- ▸업데이트 — 필요한 것(코드·라이브러리)을 자동 판단해서 실행
- ▾▾ 드롭다운 — 코드만 / 라이브러리만 개별 선택 가능
| 코드만 필요 | git pull → 서비스 자동 재시작 |
| 라이브러리만 필요 | pip install --upgrade fobecon-common-lib |
| 둘 다 필요 | 코드 업데이트 → 라이브러리 업데이트 → 재시작 순으로 자동 실행 |
전체 업데이트
Services 우측 상단 전체 업데이트 버튼으로 여러 서비스를 한 번에 업데이트합니다.
시스템 모니터
becon이 실행 중인 서버(및 연결된 원격 서버)의 리소스 현황을 확인합니다. 서버별로 정보 카드, CPU, 메모리, 디스크 카드가 표시됩니다.
| 서버 정보 | Hostname, IP, OS, CPU 아키텍처, Uptime |
| CPU | 사용률 + 모델명 + 코어 수 (스파크라인 그래프 포함) |
| 메모리 | 전체 대비 사용 중인 메모리 (스파크라인 그래프 포함) |
| 디스크 | 마운트 포인트별 사용량 |
스케줄 관리
서비스를 주기적으로 자동 재시작하는 스케줄을 설정합니다. 상단 배너에 다가오는 실행 일정이 표시됩니다.
CPU 임계값
스케줄 시각에 CPU 사용률이 임계값을 초과하고 있으면 재시작을 건너뜁니다. 중요한 작업 처리 중 강제 재시작을 방지합니다.
인라인 편집
각 행의 연필 아이콘을 클릭하면 인라인 편집 패널이 열립니다. 모드·시간·CPU 임계값을 변경한 뒤 저장 버튼을 클릭하면 반영됩니다. 변경 사항이 있으면 저장 버튼이 파란색으로 강조됩니다.
활성 토글
각 행의 토글 스위치로 스케줄을 켜거나 끕니다. 토글 변경은 즉시 저장됩니다 (별도 저장 버튼 불필요).
서버 설정
원격 서버에서 실행 중인 becon 인스턴스를 연결합니다. 상단 서버 추가 버튼을 클릭하면 모달 창에서 서버를 등록할 수 있습니다. 등록 후 로컬과 원격 서버의 서비스가 서비스 목록 페이지에 함께 표시됩니다.
| 필드 | 필수 | 설명 |
|---|---|---|
서버 이름 | 필수 | 서비스 카드의 서버 배지에 표시될 짧은 이름. 예: IDC, AWS |
주소 | 필수 | 원격 becon URL. 예: http://192.168.1.100:8900 |
API Key | 필수 | 원격 서버 api_key.txt의 값과 일치해야 합니다. |
라이브러리 관리
내부 공통 패키지 fobecon-common-lib의 버전 릴리즈 및 서비스별 동기화 현황을 관리합니다. 좌측 릴리즈 패널에서 새 버전을 생성하고, 우측에서 미릴리즈 커밋을 확인할 수 있습니다.