Monitoring 시연 정리
2024.02.12 - [Data Engineering/Observability] - [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(실습)
[Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(실습)
2024.02.12 - [Data Engineering/Observability] - [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론) [Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론) Prometheus 모
cstory-bo.tistory.com
Architecture
Link
Node exporter
Prometheus
Grafana
Pushgateway
PromQL 예시
Grafana에서 node 템플릿에서 사용한 PromQL에 대한 간략한 설명이다.
컴퓨터의 4대요소인 CPU, Memory, Disk, Network 하나씩 가져왔다.
CPU Basic
idel 상태 cpu %
idle 모드의 CPU 사용 시간의 순간 변화율을 전체 CPU 사용 시간의 순간 변화율로 나누어 비율을 계산
sum by(instance) (irate(node_cpu_seconds_total{instance="$node",job="$job", mode="idle"}[$__rate_interval])) / on(instance) group_left sum by (instance)((irate(node_cpu_seconds_total{instance="$node",job="$job"}[$__rate_interval])))
Memory Basic
RAM used
전체 Memtotal - free - (캐시 + 버퍼 + slab재사용가능영역)
slab : 메모리 영역 중 커널이 직접 사용하는 영역
node_memory_MemTotal_bytes{instance="$node",job="$job"} - node_memory_MemFree_bytes{instance="$node",job="$job"} - (node_memory_Cached_bytes{instance="$node",job="$job"} - node_memory_Buffers_bytes{instance="$node",job="$job"} + node_memory_SReclaimable_bytes{instance="$node",job="$job"})
Disk Space Used Basic
디스크 내 각 device 별 사용률
100 - fs가능한영역/fs전체영역
100 - ((node_filesystem_avail_bytes{instance="$node",job="$job",device!~'rootfs'} * 100) / node_filesystem_size_bytes{instance="$node",job="$job",device!~'rootfs'})
Network Traffic Basic
각 device 별 receive bytes를 순간 변화율*8
irate(node_network_receive_bytes_total{instance="$node",job="$job"}[$__rate_interval])*8
Pushgateway curl
아래 파란색 부분 변경
echo "Success **[float]**" | curl -XPOST --data-binary @- <http://192.168.0.152:9091/metrics/job/AWS/instance/**[팀번호]**/name/**[이름]**>
ex)
echo "Success 07.01" | curl -XPOST --data-binary @- <http://192.168.0.152:9091/metrics/job/AWS/instance/5/name/bolim>
이렇게 보내보면 pushgateway URL에서 확인 가능하다. 그리고 이를 이용하여 따로 Grafana에서 그래프를 생성할 수 있다.
과부하 확인
stress --cpu 4 --vm 3 --vm-bytes 2048m --hdd 2 --hdd-bytes 2048m --timeout 120s
→ cpu 4대에 100% 부하 발생
→ 3개의 process로 메모리 2048m 사용
→ hdd 2대에 2048m 사용
→ 120초 간
이후 Grafana를 확인하면 확실하게 그래프가 대폭 상승한 것을 확인할 수 있다. 그리고 Slack에 알람이 오는 것도 확인할 수 있다.