TL;DROpenTelemetry Collector의 journald 수신기를 사용해 ClickStack에서 systemd journal 로그를 수집하고 시각화합니다. 데모 데이터세트와 사전 구축된 대시보드가 포함됩니다.
기존 시스템 통합
사전 요구 사항
- 실행 중인 ClickStack 인스턴스
- systemd를 사용하는 Linux 시스템(Ubuntu 16.04+, CentOS 7+, Debian 8+)
- 모니터링 대상 시스템에 Docker 또는 Docker Compose가 설치되어 있어야 합니다
ClickStack API Key 가져오기
OpenTelemetry Collector는 ClickStack의 OTLP 엔드포인트로 데이터를 전송하며, 이 엔드포인트에는 인증이 필요합니다.- ClickStack URL(예: http://localhost:8080)에서 HyperDX를 엽니다
- 필요하면 계정을 생성하거나 로그인합니다
- Team Settings → API Keys로 이동합니다
- 수집 API key를 복사합니다
- 이를 환경 변수로 설정합니다:
systemd journal 실행 여부 확인
시스템에서 systemd를 사용 중이며 journal 로그가 있는지 확인합니다:Docker Compose로 배포
journald 수신기는 journal 파일을 읽기 위해 journalctl 바이너리가 필요합니다. 공식 otel/opentelemetry-collector-contrib 이미지에는 기본적으로 journalctl이 포함되어 있지 않습니다.컨테이너 환경에 배포하는 경우, collector를 호스트에 직접 설치하거나 systemd 유틸리티가 포함된 사용자 지정 이미지를 빌드할 수 있습니다. 자세한 내용은 문제 해결 섹션을 참조하십시오.HyperDX에서 로그 확인
구성이 완료되면 HyperDX에 로그인하여 로그가 수집되는지 확인합니다:- Search view로 이동합니다
- source를 Logs로 설정합니다
service.name:systemd-logs로 필터링합니다unit,priority,MESSAGE,_HOSTNAME등의 필드가 포함된 구조화된 로그 항목이 표시되어야 합니다
데모 데이터세트
데모 데이터로 ClickStack 실행
데모 로그와 함께 ClickStack을 시작하세요:이 데모는 컨테이너에서
journalctl이 필요하지 않도록 journald 대신 텍스트 로그와 filelog 수신기를 사용합니다.HyperDX에서 로그 확인
ClickStack이 실행되면 다음을 수행하세요:- HyperDX를 열고 계정에 로그인합니다
- Search view로 이동한 다음 source를
Logs로 설정합니다 - 시간 범위를 2025-11-14 00:00:00 - 2025-11-17 00:00:00으로 설정합니다
시간대 표시HyperDX는 브라우저의 로컬 시간대로 타임스탬프를 표시합니다. 데모 데이터는 2025-11-15 00:00:00 - 2025-11-16 00:00:00 (UTC) 기간에 해당합니다. 시간 범위를 넉넉하게 설정했기 때문에 어느 지역에서 접속하더라도 데모 로그를 확인할 수 있습니다.
대시보드 및 시각화
할 대시보드 구성 파일
사전 구축된 대시보드 가져오기
- HyperDX를 열고 Dashboards 섹션으로 이동합니다
- 오른쪽 상단의 줄임표 메뉴에서 Import Dashboard를 클릭합니다
systemd-logs-dashboard.json파일을 업로드한 다음 Finish Import를 클릭합니다
대시보드 보기
대시보드에는 다음 시각화가 포함되어 있습니다:- 시간에 따른 로그량
- 로그 수 기준 상위 systemd 유닛
- SSH 인증 이벤트
- 서비스 실패
- 오류율
데모 데이터세트에서는 시간 범위를 **2025-11-15 00:00:00 - 2025-11-16 00:00:00 (UTC)**로 설정한 뒤, 로컬 시간대에 맞게 조정하십시오.
문제 해결
HyperDX에 로그가 표시되지 않는 경우
journalctl not found 오류
exec: "journalctl": executable file not found in $PATH가 표시되면 다음과 같이 하십시오:
otel/opentelemetry-collector-contrib 이미지에는 journalctl이 포함되어 있지 않습니다. 다음 중 하나를 선택할 수 있습니다:
- 호스트에 collector를 설치하세요:
- 텍스트 내보내기 방식을 사용하세요(데모와 같이).
filelog수신기가 journald 내보내기 데이터를 읽도록 구성합니다
다음 단계
- 중요한 시스템 이벤트(서비스 장애, 인증 실패, OOM kill)에 대한 알림을 설정하세요
- 특정 용도(SSH 보안 모니터링, 서비스 상태)에 맞는 추가 대시보드를 만드세요
- 특정 systemd 유닛으로 필터링하여 노이즈를 줄이고 중요한 서비스에 집중하세요
프로덕션 환경으로 전환하기
- Kubernetes에서 collector를 데몬셋으로 배포
- 각 호스트에서 collector를 systemd 서비스로 실행
- 자동 배포를 위해 OpenTelemetry Operator 사용