.Net Framework에서 내가 원하는 메트릭을 커스텀할 수 있는 에이전트가 존재하는지 알아보면서 알게된 Exporter들을 정리하였다.
결국 이 모니터링 에이전트들도 개인이 개발한 오폰 에이전트였다.
다양한 언어로 만들어 져 있던데.. 나도 만들어 볼까..?
Exporter 란?
프로메테우스의 Exporter는 실제로 메트릭 정보를 수집하는 모니터링 에이전트로,
대상 시스템에서 메트릭을 수집하고 HTTP 엔드포인트(default : /metrics)에 노출시키 고 소프트웨어(에이전트)이다.
exporter는 open source로 공개된 것도 있고, 직접 custom해서 구현할 수 도 있다.
대표적인 Exporter 종류
- node-exporter
- mysql-exporter
- wmi-exporter (window server)
- postgre-exporter
- redis-exporter
- kafka-exporter
- jmx-exporter
그외 Prometheus 공식 홈페이지에 더 다양한 exporters 항목이 나열되어 있다.
https://prometheus.io/docs/instrumenting/exporters/
1. Node-exporter
Cluster에 존재하는 노드마다 하나씩 배포되어 해당 노드에서 발생하는 메트릭(cpu, memory, disk 사용량과 같은 호스트 관련 메트릭)을 수집하는 모니터링 에이전트이다.
수집 메트릭 종류
- cpu 사용률
- 메모리 사용률
- 디스크 사용률
- 하드웨어에서 발생하는 메트릭
2. Mysql-exporter
- MySQL 서버의 상태에 대한 메트릭을 수집하는 모니터링 에이전트이다. 설정된 Mysql DB서버에 접속해서 메트릭을 수집한다.
3. Wmi-exporter
- Window 시스템용 모니터링 에이전트이다.
4. Postgres-exporter
- PostgreSQL 서버용 모니터링 에이전트이다.
PostgreSQL이란?
오픈소스 객체-관계형 데이터베이스 시스템(ORDBMS)이다.
5. Redis-exporter
- Redis 서버용 모니터링 에이전트이다. Redis의 INFO명령의 대부분의 항목의 메트릭을 수집한다.
Redis INFO 항목
- server: Redis 서버에 대한 일반 정보
- clients: 클라이언트 연결 섹션
- memory: 메모리 사용량 관련 정보
- persistence: RDB 및 AOF 관련 정보
- stats: 일반통계
- replication: 마스터/레플리카 복제 정보
- cpu: CPU 사용량 통계
- commandstats: Redis 명령 통계
- cluster: Redis 클러스터 섹션
- modules: 모듈 섹션
- keyspace: 데이터베이스 관련 통계
- modules: 모듈 관련 섹션
- errorstats: Redis 오류 통계
https://redis.io/commands/info
6. Jmx-exporter (Actuator)
Jmx-exporter는 JVM에서 발생하는 메트릭을 수집한다. JVM 메트릭을 수집하는 방법에는 외장 jmx-exporter를 사용하는 방법과 java agent를 사용하는 방법 두가지가 있다. 여기서는 java agent를 사용하여 메트릭 수집한다.
spring application에 메트릭 수집 설정을 해준다.
의존성 주입
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
properties 설정
management.endpoints.web.exposure.include=*
management.metrics.tags.application=${project name}
spring application 실행 후 해당 url의 /actuator/prometheus경로로 접근하면 수집하고 있는 메트릭을 확인 할 수 있다.
이후 프로메테우스에 해당 메트릭 수집 엔드포인트를 추가해준다. (scrape_configs)
https://prometheus.io/docs/instrumenting/exporters/
'기술 > Prometheus' 카테고리의 다른 글
프로메테우스(Prometheus) 설치 및 사용 (0) | 2021.07.17 |
---|---|
프로메테우스(Prometheus) Configuration (0) | 2021.07.17 |
프로메테우스(prometheus) 란? (0) | 2021.07.16 |