프로메테우스 설치 후 메트릭 수집하기 > DB 자료실

본문 바로가기

사이트 내 전체검색

뒤로가기 DB 자료실

프로메테우스 설치 후 메트릭 수집하기

페이지 정보

작성자 조선제일검 작성일 23-10-18 11:27 조회 1,899 댓글 0

본문

 구성환경은 Azure VM 인스턴스에 도커를 설치하여 프로메테우스를 구성

 

프로메테우스 도커 설치 옵션

# 설정파일 경로 지정 --config.file 

 # 메트릭 저장소 경로 --storage.tsdb.path 

 # HTTP 통신을 통한 프로메테우스 reload & shutdown 활성화 --web.enable-lifecycle 

 # 데이터 유지시간 --storage.tsdb.retention.time

 # 로그레벨 지정 --log.level

 

프로메테우스 실행만 해보기

devops@connect-vm-devops:~/prometheus/config$ docker run --rm prom/prometheus:v2.29.2

 

도커 프로메테우스 접속

접속 후 도커내에서 프로메테우스를 실행하는 uid, gid Number를 확인

devops@connect-vm-devops:~$ docker ps -a 

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 

7357fa59bbf6 prom/prometheus:v2.29.2 "/bin/prometheus --c…" About a minute ago Up About a minute 9090/tcp wonderful_brattain 

devops@connect-vm-devops:~$ docker exec -it wonderful_brattain sh 

 /prometheus $ id uid=65534(nobody) gid=65534(nobody)


프로메테우스 디렉토리 생성 

root@connect-vm-devops:/# tree ./prometheus/ 

./prometheus/ 

├── config 

│   └── prometheus.yml

 └── data 

2 directories, 1 file

 

prometheus.yml

Screenshot 2023-10-18 at 11.17.33.JPG


프로메테우스 설치 및 실행

docker run -d \

 --name=prometheus \ 

--net=host \ 

-p 9090:9090 \ 

 -v /prometheus/config/prometheus.yml:/etc/prometheus/prometheus.yml \ 

-v /prometheus/data:/data \ prom/prometheus:v2.29.2 \ 

--web.enable-lifecycle \ 

--config.file=/etc/prometheus/prometheus.yml \ 

--storage.tsdb.path=/prometheus \ 

--storage.tsdb.retention.time=20d \ 

--web.console.libraries=/usr/share/prometheus/console_libraries --web.console.templates=/usr/share/prometheus/consoles --rules.alert.resend-delay=10s

 

프로메테우스 옵션적용 시 도커파일 작성

ENTRYPOINT [ "/bin/prometheus" ] 

CMD [ "--config.file=/etc/prometheus/prometheus.yml", \ 

 "--storage.tsdb.path=/prometheus", \

 "--web.console.libraries=/usr/share/prometheus/console_libraries", \ 

 "--web.console.templates=/usr/share/prometheus/consoles" ]

 

프로메테우스 브라우저 접속

Untitled.png

 

메트릭 수집 모니터링을 위해서는 Exporter 설치 필요

메트릭 수집을 원하는 서버에 설치한다.

wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gz 

tar xvfz node_exporter-*.*-amd64.tar.gz 

cd node_exporter-*.*-amd64 

./node_exporter

 

접속

Untitled (1).png

 

node exporter 서비스 등록

/prometheus/node_exporter# cp -apr node_exporter-1.4.0-rc.0.linux-amd64 /opt

/prometheus/node_exporter# cd /opt

/opt# ln -s /opt/node_exporter-1.4.0-rc.0.linux-amd64/ /opt/node_exporter


root@devops-bastion:/opt# ll

total 20

drwxr-xr-x  5 root root 4096 Sep 21 07:49 ./

drwxr-xr-x 21 root root 4096 Sep 20 15:08 ../

drwxr-xr-x  6 root root 4096 Aug  9 05:11 az/

drwx--x--x  4 root root 4096 Aug  9 07:27 containerd/

lrwxrwxrwx  1 root root   42 Sep 21 07:49 node_exporter -> /opt/node_exporter-1.4.0-rc.0.linux-amd64//

drwxr-xr-x  2 3434 3434 4096 Jul 27 16:19 node_exporter-1.4.0-rc.0.linux-amd64/


/opt# echo "OPTION=" > /etc/default/node_exporter

/opt# cat << EOF > /etc/systemd/system

> ^C

/opt# cat << EOF > /etc/systemd/system/node_exporter.service

> [Service]

> User=root

> EnvironmentFile=/etc/default/node_exporter

> ExecStart=/opt/node_exporter/node_exporter

> EOF


/opt# systemctl daemon-reload

/opt# systemctl status node_exporter.service

● node_exporter.service

     Loaded: loaded (/etc/systemd/system/node_exporter.service; static; vendor preset: enabled)

     Active: inactive (dead)

root@devops-bastion:/opt# systemctl start node_exporter.service

root@devops-bastion:/opt# systemctl status node_exporter.service

● node_exporter.service

     Loaded: loaded (/etc/systemd/system/node_exporter.service; static; vendor preset: enabled)

     Active: active (running) since Wed 2022-09-21 07:52:12 UTC; 4s ago

   Main PID: 755678 (node_exporter)

      Tasks: 5 (limit: 4700)

     Memory: 4.8M

     CGroup: /system.slice/node_exporter.service

             └─755678 /opt/node_exporter/node_exporter


/opt# cat /etc/default/node_exporter

OPTION=

 

이제 해당 메트릭을 프로메테우스로 수집하기 위해서는 prometheus.yml을 수정해줘야 한다.

prometheus.yml > scrape_configs:

설정에서 node-exporter 설정 추가

  - job_name: 'node-exporter'

    scrape_interval: 5s

    scrape_timeout: 1s

    static_configs:

    - targets: ['<수집하려는 서버IP>:9100']

 

메트릭 확인

Untitled (2).png

 

 

 

댓글목록 0

등록된 댓글이 없습니다.

Copyright © 소유하신 도메인. All rights reserved.

사이트 정보

회사명 : (주)리눅스데이타시스템 / 대표 : 정정모
서울본사 : 서울특별시 강남구 봉은사로 114길 40 홍선빌딩 2층 / tel : 02-6207-1160
대전지사 : 대전광역시 유성구 노은로174 도원프라자 5층 / tel : 042-331-1161

PC 버전으로 보기