EveryUp 소개
EveryUp은 서비스 상태, 로그, API 요청, 서버 자원을 한곳에서 확인하는 셀프호스팅 모니터링 도구입니다. 장애가 난 대상과 수집이 지연된 대상을 먼저 확인하고, 반복 오류와 요청 추이를 따라 문제를 조사할 수 있습니다.
대시보드 서버에서 Web을 실행한 뒤, 필요한 기능마다 모니터링 대상을 직접 연결하세요. 공개 URL·TCP 포트는 업타임 모니터로 확인하고, 앱의 로그·API 요청·메트릭은 OpenTelemetry로 직접 연결합니다. 서버 자원은 표준 OpenTelemetry Collector로 보냅니다. Linux Docker 서버라면 선택 통합인 Docker 환경을 연결해, 앱을 고치지 않고 컨테이너 상태·로그·호스트 자원을 한 번에 수집할 수도 있습니다.
| 구성 | 역할 | 실행 위치 |
|---|---|---|
| Web | 대시보드, 업타임 검사, OTLP 수신, 알림 규칙·채널, 히스토리 | 대시보드 서버 |
| OpenTelemetry SDK | 앱의 로그·트레이스·메트릭을 Web으로 직접 전송 | 각 앱 |
| 표준 OpenTelemetry Collector | 서버 CPU·메모리·디스크·네트워크를 Web으로 전송 | 모니터링할 각 서버 |
| Docker Collector (선택) | Docker 컨테이너 자동 발견, 컨테이너 상태, 로그, 호스트 메트릭 | 모니터링할 각 Docker 호스트 |


핵심 기능
업타임·로그·인프라·API 요청·메트릭 화면은 직접 설정한 대상만 보여줍니다. Docker Collector가 수집한 응답 검사·컨테이너 상태·로그·호스트 자원·API 요청은 해당 Docker 환경 화면에서 확인하세요. 개요·그룹·알림은 두 경로의 대상을 함께 다룹니다.
| 기능 | 확인할 내용 | 필요한 설정 |
|---|---|---|
| 개요 | 장애·수집 지연, 모니터링 범위, 최근 장애 이력 | 모니터링 대상 연결 |
| 업타임 | 직접 등록한 업타임 모니터의 HTTP·TCP 응답 검사 | 모니터 추가 |
| 인프라 | 호스트 CPU·메모리·디스크·네트워크 추이 | 표준 Collector 연결 또는 Docker 환경의 인프라 수집 |
| 로그 | 오류·경고 추이, 반복 메시지 묶기, 검색 | 직접 OTLP 로그 전송 또는 Docker 환경의 stdout/stderr 수집 |
| API 응답 시간·트레이스 | 요청 수·에러율·응답 시간 추이와 span | 앱의 OpenTelemetry 직접 연결 또는 Docker 환경의 eBPF Observer |
| 앱 메트릭 | 앱이 보낸 메트릭별 수치와 추이 | 앱·Collector의 OTLP 메트릭 전송 설정 |
| 컨테이너 상태 | 자동 발견한 컨테이너의 실행 상태와 검사 결과 | Docker 환경의 업타임 수집 선택 |
| API 상태 | access log에서 추출한 요청 메서드·경로·상태 코드 | Docker 환경에서 앱이나 프록시의 access log 출력 |
| 헤더·바디 상세 수집 | 요청 진단 정보와 캡처된 바디 | 언어별 계측. 바디 자동 수집은 Node.js에서 선택적으로 활성화 |
| 알림 | 규칙·채널·발송 결과 | 알림 채널과 활성 규칙 설정 |
API 요청 추이는 과거 데이터가 있으면 지난주와 비교할 수 있습니다. Docker 환경에서는 배포·재시작 이벤트도 함께 표시합니다. 지연 시간 p95는 측정한 요청의 95%가 이 시간 안에 끝났다는 뜻입니다. 트레이스의 span은 요청 처리 과정의 한 작업을 기록한 데이터입니다.
수집되는 데이터
직접 연결
| 데이터 | 소스 |
|---|---|
| HTTP·TCP 응답 결과와 응답 시간 | Web이 수행하는 업타임 모니터 검사 |
| 앱 로그·트레이스·메트릭 | 앱의 OpenTelemetry SDK → Web OTLP 엔드포인트 |
| 호스트 CPU, 메모리, 디스크, 네트워크 | 표준 OpenTelemetry Collector |
직접 연결은 대상 서버에 EveryUp 구성 요소를 설치하지 않습니다. 업타임 모니터는 Web이 대상에 접속해 확인하므로, 대시보드 서버에서 대상 주소에 접속할 수 있어야 합니다.
선택: Docker 환경
Docker 환경은 Linux Docker 서버에 모니터링 번들을 설치해, 앱을 고치지 않고 컨테이너 단위로 수집하는 선택 통합입니다. Docker Collector는 선택한 수집 범위에 따라 동작합니다. 기본 프로필은 컨테이너 상태와 로그를 수집하고, 전체 프로필은 호스트 자원·API 요청 수집과 OTLP 메트릭 수신도 켭니다.
모니터링할 서버
docker.sock:ro상태·로그 읽기OTLP/HTTP :4318트레이스 전송HTTP(S) :3001인바운드 포트 불필요
대시보드 서버
Collector 없이 수집
- 업타임 모니터공개 HTTP·TCP 엔드포인트 응답 검사
- OTLP 엔드포인트
/api/v1/otlpDocker 밖 서비스용
HTTPS알림 발송
- Telegram
- Discord
- Slack
Docker Collector
아래는 전체 프로필 기준으로 앱 수정 없이 수집되는 데이터입니다. 설치기는 선택한 수집 범위에 필요한 경우에만 Docker 소켓과 /hostfs를 읽기 전용으로 마운트합니다.
| 데이터 | 소스 |
|---|---|
| 컨테이너 up/down, 이름, 이미지, 상태 | Docker 소켓 |
| 상태 변화·Collector 이벤트 | Collector가 생성한 audit 기록 |
| stdout/stderr 로그 | docker logs |
| API 요청 method, path, status (응답 시간은 추출하지 않음) | access log 파싱 |
| 호스트 CPU, 메모리, 디스크, 네트워크 | /hostfs 마운트 |
API 상태 코드는 앱이나 프록시가 access log를 stdout/stderr로 남길 때 표시됩니다. access log가 없어도 컨테이너 상태, 일반 로그, 호스트 메트릭은 계속 수집됩니다.
모니터링 번들의 자동 eBPF Observer
| 데이터 | 소스 |
|---|---|
| 실제 응답 시간이 포함된 API 트레이스 | everyup-ebpf eBPF Observer(OBI) |
| method, path, status, duration | 호스트 프로세스 관찰 |
| Go를 포함한 여러 언어와 HTTPS 서비스 | OpenTelemetry eBPF Instrumentation |
지원하는 호스트·런타임과 서비스 간 트레이스 연결 조건은 eBPF 가이드를 확인하세요.
선택: 앱 측 OpenTelemetry 연동
| 데이터 | 소스 |
|---|---|
| 요청/응답 헤더 | http.*.header.* span attribute |
| 요청/응답 바디 | *_body_masked span event |
| 앱 메트릭(JVM 메모리, GC, 커스텀 카운터 등) | 앱 OTel -> Web OTLP 엔드포인트 또는 Docker Collector :4318 |
OpenTelemetry(OTel)는 앱의 로그·트레이스·메트릭을 수집하고 전송하는 도구입니다. 이 데이터는 OTLP 프로토콜로 보냅니다. 메트릭 수신을 켜는 것만으로 앱 메트릭이 생성되지는 않습니다. Java·Node.js의 헤더 수집은 번들로 설정할 수 있고, 바디 자동 수집은 Node.js에서 별도로 켭니다. Java 바디 수집에는 코드 추가가 필요합니다.
다음 단계
Quick Start에서 Web을 실행하고 첫 업타임 모니터를 추가하세요. Docker 환경 연결도 같은 문서에서 이어서 안내합니다.
