Monitoring 시연 정리
Architecture
Link
- Node exporter
- server 1: http://192.168.0.151:9100/
- server 2: http://192.168.0.152:9100/
- server 3: http://192.168.0.153:9100/
- Prometheus
- server 3: http://192.168.0.153:9090/graph
- Grafana
- server 3: http://192.168.0.153:3000/
- 로그인 필요할 경우 admin/admin
- 비밀번호 변경 창에서는 왼쪽 아래 skip
- Pushgateway
- server 2: http://192.168.0.152:9091/
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에 알람이 오는 것도 확인할 수 있다.
'Data Engineering > Observability' 카테고리의 다른 글
[Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(실습) (1) | 2024.02.12 |
---|---|
[Prometheus] - CentOS에서 모니터링 & Pushgateway & AlertManager 구축 해보기!(이론) (0) | 2024.02.12 |
[Observability] - 5. 자신의 Application Monitoring 해보기!! (1) | 2024.01.01 |
[Observability] - 4. Node Monitoring 해보기!! (0) | 2024.01.01 |
[Observability] - 3. Grafana로 대시보드 구성하고 메일로 Alert 받기 (0) | 2023.12.30 |