프로메테우스 설치 후 메트릭 수집하기
페이지 정보
작성자 조선제일검 작성일 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
프로메테우스 설치 및 실행
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" ]
프로메테우스 브라우저 접속
메트릭 수집 모니터링을 위해서는 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
접속
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']
메트릭 확인
댓글목록 0
등록된 댓글이 없습니다.