728x90
반응형
가상화 서버(VM)  2대 ( Prometheus, Grafana 서버 1대, 연동 클라이언트 서버 1대) 를 설치하고 수집데이터를 Prometheus로 연동하고 연동한 데이터를 가지고 Grafana로 대쉬보드를 만들어 본다
- node_exporter (서버, 쿠버네티스, 도커 등) 데이터 수집 
- postgresql_exporter : postgresql 데이터 수집
- jmx_exporter  : tomcat 데이터 수집

 

기본 용어
  • Exporter ? prometheus  Exporter는 메트릭 정보를 수집하는 모티터링 할 서버, 에이전트, 데몬 등을 대상시스템에서 메트릭을 수집하고 HTTP 엔드포인트(default: /metrics)에 노출시키는 소프트웨어 
  • 대표적인 Exporter 종류

      - node-exporter

      - mysql-exporter

      - wmi-expoter(windwos server)

      - postgre-exporter

      - redis-exporter

      - kafra-exporter

      - jmx-exporter 

      ※ Prometheus 및 각종 exporter 설치파일 사이트  https://prometheus.io/download/

 

Download | Prometheus

An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.

prometheus.io

 

    여기에서는 node-exporter, postgre-exporter, jmx-exporter만 다룬다(연동해 본다)

 

  • 메트릭이란 ? : 메트릭(Metric) 은 현재 시스템의 상태를 알수 있는 측정값이다. 인프라 환경에서는 크게 2가지 상태롤 메트릭을 구분.  CPU와 메모리 사용량을 나타내는 시스템 메트릭(System Metric), HTTP 상태 코드 같은 서비스 상태를 나태내는 지표인 서비스 메트릭(Service Metri) 
  • 시계열 데이터베이스 ? 시계열 데이터베이스는 시간을 축(키)으로 시간의 흐름에 따라 발생하는 데이터를 저장하는 데 최적화된 데이터베이스. 예를 들어 네트워크 흐름을 알 수 있는 패킷과 각종 기기로부터 전달받는 IoT  센서 값, 이벤트 로그 등이 있다.  

 

목표시스템 구성도

 

20240229_프로메테우스-그라파타목표시스템_ver0.1.pptx
0.69MB

 

Prometheus - Grafana 서버 설치 (vagrant로 설치)
  • OracleVM 과 Vagrant 는 미리 설치되어 있어야 함 (서버 설치는 Vagrant 로 설치)

      - Vargrant 를 통한 가상화 서버 설치방법은 https://hwpform.tistory.com/111 참조

용도 IP 설치 Pkg 포트
Prometheus, Grafana 서버 192.168.56.128
(Ubuntu 22.04)
Prometheus
Grafana
Node_exporter
PostgreSQL(Docker)
PostgreSQL_Exporter(Docker)
9090
3000
9100
5432
9187
Prometheus, Grafana
연동 클라이언트 테스트
서버
192.168.56.130
(CentOS8)
Node_exporter
PortgreSQL(Docker)
PostgreSQL_Exporter(Docker)
Tomcat
jmx_exporter(Tomcat)
9100
5432
9187
8080
8081

 

Vagrant로 설치할 서버 정보 https://app.vagrantup.com/boxes/search
  • Prometheus, Grafana 서버

  • Prometheus, Grafana 연동 클라이언트 테스트 서버

  • Vagrnafile 및 설치 방법
# Ubuntu 22.04
Vagrant.configure("2") do |config|
  config.vm.box = "davidurbano/prometheus-grafana"
end

# CentOS 8
Vagrant.configure("2") do |config|
  config.vm.box = "centos/8"
end

 

  • Vargrant로 설치된 Oracle VM 서버 

< 192.168.56.128 >
< 192.168.56.130 >

설치된 Prometheus 정보

< 192.168.56.128:9090 >

 

설치된 Grafana  예시 : Node_exporterl (서버관제)

< 192.168.56.128:3000 >

설치된 Grafana  예시 : Postgresql_exporterl (DB관제)

< 192.168.56.128:3000 >

 

설치된 Grafana  예시 : jmx_exporterl (Tomcat 관제)

< 192.168.56.128:3000 >

Prometheus, Grafana 서버(192.168.56.128) 
# Vagrnat를 이용하여 설치된 서버(192.168.56.128) config.vm.box = "davidurbano/prometheus-grafana"는  
  기본적으로 Prometeus(9090), Grafana(3000), Node_expoter(9100)가 설치되어 있음 
  
# netstat -ntpa |grep LISTEN
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      2632/systemd-resolv
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      735/sshd: /usr/sbin
tcp6       0      0 :::22                   :::*                    LISTEN      735/sshd: /usr/sbin
tcp6       0      0 :::9090                 :::*                    LISTEN      4369/prometheus
tcp6       0      0 :::9100                 :::*                    LISTEN      670/node_exporter
tcp6       0      0 :::3000                 :::*                    LISTEN      666/grafana
  • prometheus 서버 : http://192.168.56.128:9090
# ls -al
total 24
drwxr-xr-x   4 prometheus prometheus 4096 Feb 29 13:47 .
drwxr-xr-x 102 root       root       4096 Feb 29 11:29 ..
drwxr-xr-x   2 prometheus prometheus 4096 Sep 29 21:42 console_libraries
drwxr-xr-x   2 prometheus prometheus 4096 Sep 29 21:42 consoles
-rw-r--r--   1 vagrant    vagrant    1385 Feb 29 13:47 prometheus.yml
-rw-r--r--   1 root       root        934 Feb 25 00:00 prometheus.yml.20240225

# pwd
/etc/prometheus
  • prometheus 컨피그 설정파일 (수집하고 싶은 targets 서버 : port를 지정해 주면됨)
# cat /etc/prometheus/prometheus.yml

scrape_configs:

# Node_exporter (서버 관제용)

  - job_name: "node_exporter"
    static_configs:
      - targets: ["192.168.56.128:9100"]
      - targets: ["192.168.56.130:9100"]

# PostgreSQL_exporter (DB 관제용)

  - job_name: 'PostgreSQL_exporter'
    static_configs:
      - targets: ['192.168.56.130:9187']
      - targets: ['192.168.56.128:9187']

# jmx_exporter (tomcat 관제용)

  - job_name: 'jmx_exporter'
    scrape_interval: 5s
    static_configs:
      - targets: ['192.168.56.130:8081']

# kubernetes_exporter (쿠버네티스 서버 관제용)

  - job_name: 'kubernetes_exporter'
    static_configs:
      - targets: ['192.168.56.10:9100']
      - targets: ['192.168.56.101:9100']
      - targets: ['192.168.56.102:9100']
      - targets: ['192.168.56.103:9100']

 

  • Prometheus 서버 : http://192.168.56.128:9090

 

  • Promethus -> Status -> Targets 클릭하면 위의 /etc/prometheus/prometheus.yml 설정된 값이 동일함

 

  •   연동 metrics 정보 (대쉬보드로 표현 가능한 함수값)

node_exporter.txt
0.07MB
PostgreSQL_exporter.txt
0.08MB
jmx_exporter.txt
0.24MB

 

 

  • Grafana서버 : http://192.168.56.128:3000

 

  • Node Exporter : http://192.168.56.128:9100

 

1. 1부는 여기까지 .. 2부에서 계속

728x90
반응형
LIST

+ Recent posts