Prometheus로 munin에서 마이그레이션을 검토 ⑤ ~ 마이그레이션 검토 그 2 ~
5156 단어 모니터링 도구prometheus
여기에서는 각종 경고 메일을 설정해 갑니다.
규칙 구축
종류로서는 다음을 준비
- cpu.yml
- disk.yml
- memory.yml
- nginx.yml
- php-fpm.yml
- system.yml(인스턴스 다운 및 로드 평균)
잘 보는 부분만으로 경고 대상으로 보았습니다.
알림 메일 샘플
아래의 설정으로 메일 통지를 모두 체크하고 있는 것은 아닙니다.
애초에, 탐구이므로 실수는 있다고 생각합니다.
cpu
- name: cpu_check
rules:
- alert: cpu_used_warn
# CPU 使用率が 80% を超えた時を条件にしています
expr: 100 * (1 - avg(rate(node_cpu{mode='idle'}[5m])) BY (instance)) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "cpu used over 80%"
description: "CPU使用率が80%を超えて5分経過してます"
- alert: cpu_used_err
# CPU 使用率が 90% を超えた時を条件にしています
expr: 100 * (1 - avg(rate(node_cpu{mode='idle'}[5m])) BY (instance)) > 90
for: 5m
labels:
severity: critical
annotations:
summary: "cpu used over 90%"
description: "CPU使用率が90%を超えて5分経過してます"
덧붙여서 메일은 다음과 같은 느낌으로 통지되었습니다.
※IP 나와 있습니다만 로컬 IP이고, prometheus의 확인용이므로 좋을까라고.
disk
사실은 "/"고정이 아니고 sum을 사용해 역치를 마련하고 싶었지만 잘 할 수 없었습니다.
groups:
- name: disk_check
rules:
- alert: disk_space_warn
expr: node_filesystem_avail{mountpoint='/', device!~'rootfs'} / node_filesystem_size * 100 < 30
for: 5m
labels:
severity: warnings
annotations:
summary: "running out of hard drive space"
description: "ディスクスペースが70%をきってから5分経過してます"
- alert: disk_space_warn
expr: node_filesystem_avail{mountpoint='/', device!~'rootfs'} / node_filesystem_size * 100 < 20
for: 5m
labels:
severity: critical
annotations:
summary: "running out of hard drive space"
description: "ディスクスペースが80%をきってから5分経過してます"
memory
groups:
- name: memory_check
rules:
- alert: memory_warn
expr: 100 * ((node_memory_MemFree + node_memory_Active_file + node_memory_Inactive_file)/node_memory_MemTotal) < 30
for: 5m
labels:
severity: warning
annotations:
summary: "memory is getting low"
description: "メモリ空き容量が30%以下になって5分経過してます"
- alert: memory_critical
expr: 100 * ((node_memory_MemFree + node_memory_Active_file + node_memory_Inactive_file)/node_memory_MemTotal) < 20
for: 5m
labels:
severity: critical
annotations:
summary: "memory is getting low"
description: "メモリ空き容量が20%以下になって5分経過してます"
nginx
액티브한 접속수로 역치를 마련해 보았습니다.
값도 보고 싶기 때문에 {$labels.value}도 사용하고 있습니다.
groups:
- name: nginx_check
rules:
- alert: status
expr: nginx_up == 0
for: 5m
labels:
severity: critical
annotations:
summary: "nginx down"
description: "nginxが停止してから5分が経過してます"
- alert: active_connections_warn
expr: nginx_connections_current{state="active"} > 700
for: 5m
labels:
severity: warning
annotations:
summary: "active connection over 700"
description: "nginxでアクティブなコネクションが700を超えて5分経過してます 値={{ $labels.value }}"
- alert: active_connections_critical
expr: nginx_connections_current{state="active"} > 900
for: 5m
labels:
severity: critical
annotations:
summary: "active connection over 900"
description: "nginxでアクティブなコネクションが900を超えて5分経過してます 値={{ $labels.value }}"
phpfpm
nginx와 비슷한 느낌으로 만들었습니다.
groups:
- name: phpfpm_check
rules:
- alert: process_count_warn
expr: phpfpm_active_max_processes > 700
for: 5m
labels:
severity: warning
annotations:
summary: " process over 700"
description: "phpfpmのプロセスが700を超えて5分経過してます 値={{ $labels.value }}"
- alert: process_count_critical
expr: phpfpm_active_max_processes > 900
for: 5m
labels:
severity: critical
annotations:
summary: "process over 900"
description: "phpfpmのプロセスが900を超えて5分経過してます 値={{ $labels.value }}"
시스템
인스턴스 다운뿐입니다만, 「node_load1」등을 사용해 로드 애버리지도 대상으로 해 가고 싶다.
groups:
- name: system_check
rules:
# alert: アラート名
- alert: InstanceDown
# expr: alert push の閾値
expr: up == 0
for: 5m
labels:
severity: critical
annotations:
summary: "Instance down"
description: "停止してから5分が経過してます"
요약
서두에 기재되어 있는 대로, 모두 체크한 것은 아닙니다.
어디까지나 샘플로서 확인해 실제로 감시 툴로서 활용하는 경우는,
확인하고 설정을 결정합니다.
대충 만져 본 결과, munin으로부터 이행해도 좋을까라고 생각했습니다.
grafana는 보고 즐겁고 경고 제어가 역시 강한 것 같았다.
다만, alertmanager의 warning과 critical의 집계를 잘 할 수 없고,
양쪽 통지되어 버리므로 거기는 확인해 가고 싶다.
Reference
이 문제에 관하여(Prometheus로 munin에서 마이그레이션을 검토 ⑤ ~ 마이그레이션 검토 그 2 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kohei-okamura/items/040539d2c7d19da72278
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
- name: cpu_check
rules:
- alert: cpu_used_warn
# CPU 使用率が 80% を超えた時を条件にしています
expr: 100 * (1 - avg(rate(node_cpu{mode='idle'}[5m])) BY (instance)) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "cpu used over 80%"
description: "CPU使用率が80%を超えて5分経過してます"
- alert: cpu_used_err
# CPU 使用率が 90% を超えた時を条件にしています
expr: 100 * (1 - avg(rate(node_cpu{mode='idle'}[5m])) BY (instance)) > 90
for: 5m
labels:
severity: critical
annotations:
summary: "cpu used over 90%"
description: "CPU使用率が90%を超えて5分経過してます"
groups:
- name: disk_check
rules:
- alert: disk_space_warn
expr: node_filesystem_avail{mountpoint='/', device!~'rootfs'} / node_filesystem_size * 100 < 30
for: 5m
labels:
severity: warnings
annotations:
summary: "running out of hard drive space"
description: "ディスクスペースが70%をきってから5分経過してます"
- alert: disk_space_warn
expr: node_filesystem_avail{mountpoint='/', device!~'rootfs'} / node_filesystem_size * 100 < 20
for: 5m
labels:
severity: critical
annotations:
summary: "running out of hard drive space"
description: "ディスクスペースが80%をきってから5分経過してます"
groups:
- name: memory_check
rules:
- alert: memory_warn
expr: 100 * ((node_memory_MemFree + node_memory_Active_file + node_memory_Inactive_file)/node_memory_MemTotal) < 30
for: 5m
labels:
severity: warning
annotations:
summary: "memory is getting low"
description: "メモリ空き容量が30%以下になって5分経過してます"
- alert: memory_critical
expr: 100 * ((node_memory_MemFree + node_memory_Active_file + node_memory_Inactive_file)/node_memory_MemTotal) < 20
for: 5m
labels:
severity: critical
annotations:
summary: "memory is getting low"
description: "メモリ空き容量が20%以下になって5分経過してます"
groups:
- name: nginx_check
rules:
- alert: status
expr: nginx_up == 0
for: 5m
labels:
severity: critical
annotations:
summary: "nginx down"
description: "nginxが停止してから5分が経過してます"
- alert: active_connections_warn
expr: nginx_connections_current{state="active"} > 700
for: 5m
labels:
severity: warning
annotations:
summary: "active connection over 700"
description: "nginxでアクティブなコネクションが700を超えて5分経過してます 値={{ $labels.value }}"
- alert: active_connections_critical
expr: nginx_connections_current{state="active"} > 900
for: 5m
labels:
severity: critical
annotations:
summary: "active connection over 900"
description: "nginxでアクティブなコネクションが900を超えて5分経過してます 値={{ $labels.value }}"
groups:
- name: phpfpm_check
rules:
- alert: process_count_warn
expr: phpfpm_active_max_processes > 700
for: 5m
labels:
severity: warning
annotations:
summary: " process over 700"
description: "phpfpmのプロセスが700を超えて5分経過してます 値={{ $labels.value }}"
- alert: process_count_critical
expr: phpfpm_active_max_processes > 900
for: 5m
labels:
severity: critical
annotations:
summary: "process over 900"
description: "phpfpmのプロセスが900を超えて5分経過してます 値={{ $labels.value }}"
groups:
- name: system_check
rules:
# alert: アラート名
- alert: InstanceDown
# expr: alert push の閾値
expr: up == 0
for: 5m
labels:
severity: critical
annotations:
summary: "Instance down"
description: "停止してから5分が経過してます"
서두에 기재되어 있는 대로, 모두 체크한 것은 아닙니다.
어디까지나 샘플로서 확인해 실제로 감시 툴로서 활용하는 경우는,
확인하고 설정을 결정합니다.
대충 만져 본 결과, munin으로부터 이행해도 좋을까라고 생각했습니다.
grafana는 보고 즐겁고 경고 제어가 역시 강한 것 같았다.
다만, alertmanager의 warning과 critical의 집계를 잘 할 수 없고,
양쪽 통지되어 버리므로 거기는 확인해 가고 싶다.
Reference
이 문제에 관하여(Prometheus로 munin에서 마이그레이션을 검토 ⑤ ~ 마이그레이션 검토 그 2 ~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kohei-okamura/items/040539d2c7d19da72278텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)