Data Engineering/Observability

[Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(시연 및 추가정보)

cstory-bo 2024. 2. 12. 17:50

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

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에 알람이 오는 것도 확인할 수 있다.