DevOps/Prometheus

Exporter 연동

게임이 더 좋아 2023. 1. 13. 10:14
반응형
728x170

정의

미리 정의된 작업을 하는 소프트웨어나 서비스를 지칭하는 것으로 

여기서는 프로메테우스에게 Metric을 노출하는 작업을 함(다른 곳으로도 Exporting 가능함)

Exporter의 Endpoint를 이용하여 Prometheus가 Scaraping을 할 수 있음

 

 

 

특징

 

가볍고 효율적으로 작동함 => 기존에 있는 애플리케이션을 방해하지 않을 정도로 가벼움

일반적으로 text-based 형식으로 Metric을 노출시킴(ex. Prometheus Format)

 

 

 

 

종류

 

  • Node Exporter: Exports machine-level metrics such as CPU, memory, and disk usage from a Linux machine.
  • Blackbox Exporter: Allows Prometheus to probe HTTP, HTTPS, DNS, TCP and ICMP endpoints, as well as SNMP and JMX.
  • JMX Exporter: Exports metrics from Java applications that expose JMX metrics.
  • MySQL Exporter: Exports metrics from a MySQL database, such as query and performance statistics.
  • PostgreSQL Exporter: Exports metrics from a PostgreSQL database, such as query and performance statistics.
  • HAProxy Exporter: Exports metrics from a HAProxy load balancer, such as request and connection counts, response times, and errors.
  • Redis Exporter: Exports metrics from a Redis key-value store, such as memory usage, command statistics, and connected clients.
  • Kafka Exporter: Exports metrics from Apache Kafka, such as message rates, byte rates, and broker lag.
  • MongoDB Exporter: Exports metrics from MongoDB, such as global lock statistics, connection statistics, and storage statistics
  • Kubernetes Exporter : Exports metrics from Kubernetes clusters, such as pod, nodes and controller details.

 

 

 

 

제일 일반적인 Exporter인 Node Exporter 연동

 

 

 

Node Exporter가 노출하는 메트릭

Category Metrics
CPU percent_usage, cores, context_switches
Memory total, used, available, cache, swap_total, swap_used, swap_free
Disk total, free, available, read_count, write_count, read_time, write_time, io_time, io_time_weighted, io_time_weighted_recursive, io_time_weighted_recursive_total
Network packets_received, packets_sent, bytes_received, bytes_sent, receive_errs, send_errs, dropped_in, dropped_out
Load load1, load5, load15
Uptime uptime_seconds
File system inodes_total, inodes_used, inodes_free, space_total, space_used, spac

 

 

설치

 

#Node Exporter의 디렉토리 생성
sudo mkdir /opt/node_exporter

#해당 version에 맞는 exporter를 해당 디렉토리에 설치
sudo wget https://github.com/prometheus/node_exporter/releases/download/{version}/node_exporter-{version}.linux-amd64.tar.gz -P /opt/node_exporter

#tar 묶음을 해제
cd /opt/node_exporter
sudo tar -xzf node_exporter-*.linux-amd64.tar.gz

 

 

 

 

실행

#Exporter를 service 파일로 만듦
sudo nano /etc/systemd/system/node_exporter.service

#node_exporter.service
#=======================
[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/opt/node_exporter/node_exporter --web.listen-address=":9100" --web.telemetry-path="/metrics" --collector.cpu --collector.meminfo --collector.filesystem --collector.loadavg --collector.netdev
Restart=always

[Install]
WantedBy=multi-user.target
#=======================

#서비스 시작
sudo systemctl daemon-reload
sudo systemctl start node_exporter

#확인
sudo systemctl status node_exporter

#스타트업 서비스로 등록
sudo systemctl enable node_exporter

#프로메테우스에 target 추가
# node exporter는 기본적으로 9100 포트를 사용함
#======================= other machine has benn installed prometheus
scrape_configs:
  - job_name: 'node'
    scrape_interval: 15s
    static_configs:
      - targets: ['localhost:9100']

#프로메테우스 재시작 후 메트릭 수집 확인

 

#메트릭 확인 방법
curl http://localhost:9100/metrics

 

 


참고링크

 

https://prometheus.io/docs/guides/node-exporter/

 

반응형
그리드형

'DevOps > Prometheus' 카테고리의 다른 글

Prometheus - Practice  (0) 2023.07.09
Prometheus_  (0) 2023.01.13
프로메테우스, Prometheus Up & Running - ch.1  (0) 2022.11.07
Prometheus, 프로메테우스 기본 개념  (0) 2022.10.02