Monitoring
모니터링은 시스템의 안정성을 유지하고, 성능을 최적화하며, 문제가 발생할 경우 신속하게 대응할 수 있도록 상태와 성능을 실시간으로 감시하고 기록하는 활동을 말한다.
- 지표 수집(Metrics Collection) : CPU 사용량, 메모리 사용량, 네트워크 트래픽, 디스크 I/O 등 시스템의 성능과 관련된 다양한 지표를 수집한다.
- 로그 수집(Log Collection) : 시스템 로그, 애플리케이션 로그 등 다양한 로그 데이터를 수집하여 분석한다.
- 알림(Alerting) : 특정 조건이 충족되면 관리자가 알림을 받을 수 있도록 설정한다.
- 시각화(Visualization) : 수집된 데이터를 그래프나 대시보드 형태로 시각화하여 쉽게 이해할 수 있도록 한다.
- 이벤트 관리(Event Management) : 이벤트가 발생했을 때 이를 기록하고 추적하며, 문제 해결을 위한 정보를 제공한다.
Prometheus
시계열 데이터베이스를 사용하여 메트릭 데이터를 수집하고, 쿼리 및 시각화를 통해 시스템 상태를 모니터링하고 경고를 설정할 수 있는 오픈 소스 도구이다.
주요 구성 요소
- Prometheus 서버 : 시계열 데이터를 수집하고 저장하며, 사용자가 쿼리를 실행할 수 있는 웹 인터페이스를 제공한다.
- Pushgateway : 단기 작업 또는 배치 작업의 메트릭을 수집하기 위해 사용된다.
- 클라이언트 라이브러리(ex : Grafana) : 다양한 언어로 제공되며, 애플리케이션 내에서 메트릭을 수집하고 시각화하는 데 사용된다.
- Exporters : 시스템, 데이터베이스, 하드웨어 등 다양한 소스의 메트릭을 Prometheus 형식으로 변환하여 제공한다.
- Alertmanager : 경고 규칙을 기반으로 알림을 관리하고 전송한다.
Grafana
다양한 데이터 소스에서 데이터를 가져와 시각화하고 분석하는 데 사용되는 오픈 소스 모니터링 도구이다.
주요 기능과 특징
-
다양한 데이터 소스 지원:
- Grafana는 Prometheus, Graphite, InfluxDB, Elasticsearch, MySQL, PostgreSQL, CloudWatch 등 다양한 데이터 소스를 지원한다.
- 여러 데이터 소스를 하나의 대시보드에 통합하여 시각화할 수 있다.
-
강력한 시각화 도구:
- 다양한 차트 유형(라인, 바, 히트맵, 게이지, 테이블 등)을 제공한다.
- 사용자 정의 가능한 대시보드를 통해 필요한 정보를 한눈에 볼 수 있도록 구성할 수 있다.
-
경고 및 알림(Alerts):
- 특정 조건이 충족되면 알림을 생성하고, 이메일, Slack, PagerDuty, OpsGenie 등 다양한 채널을 통해 알림을 전송할 수 있다.
- 복잡한 경고 규칙을 설정하여 시스템 상태를 효율적으로 모니터링할 수 있다.
-
유연한 대시보드 구성:
- 드래그 앤 드롭 방식으로 위젯을 배치하고 크기를 조정할 수 있다.
- 템플릿 변수와 필터를 사용하여 동일한 대시보드를 여러 데이터 소스나 시나리오에 적용할 수 있다.
-
사용자 관리 및 공유:
- 대시보드를 팀 내에서 공유하고 협업할 수 있다.
- 사용자별 권한 설정을 통해 대시보드 접근을 제어할 수 있다.
-
플러그인 확장성:
- 다양한 플러그인을 통해 기능을 확장할 수 있습니다. 예를 들어, 새로운 시각화 유형, 데이터 소스, 앱 등을 추가할 수 있다.
- 커뮤니티와 상업적으로 지원되는 플러그인이 많아 필요한 기능을 쉽게 추가할 수 있다.