Prometheus Alertmanager Grafana 監控警報


Prometheus Alertmanager Grafana 監控警報

node-exporter, Linux系統信息采集組件
prometheus , 抓取、儲存監控數據,供查詢指標
alertmanager , 發送警報通知
grafana , web圖形展示

環境 centos7+docker
單機模式,快速搭建測試環境


#安裝node-exporter

 #docker安裝方式
docker rm -f node-exporter
docker run -d -p 9100:9100 \
--name node-exporter \
-h $(hostname) \
-v "/proc:/host/proc:ro" \
-v "/sys:/host/sys:ro" \
-v "/:/rootfs:ro" \
--net="host" \
--pid="host" \
--cap-add=SYS_TIME \
  --cpus 0.1 \
  --memory 32M \
  --restart always \
prom/node-exporter \
--path.rootfs /rootfs \
--path.procfs /host/proc \
--path.sysfs /host/sys \
--collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)"

 #非docker方式,正式環境推薦
 #curl -s http://files.elven.vip/download/node_exporter.sh |bash
 
 #默認端口9100 可瀏覽器訪問查看文本數據 IP:9100/metrics

#安裝prometheus

 ##prometheus配置文件
 # mkdir -p /data/prometheus/
 # vi /data/prometheus/prometheus.yml

 #prometheus.yml
global:
  scrape_interval:     15s # 設定抓取數據的周期,默認為1min
  evaluation_interval: 15s # 設定更新rules文件的周期,默認為1min
  scrape_timeout: 15s      # 設定抓取數據的超時時間,默認為10s

 # Alertmanager配置
alerting:
  alertmanagers:
  - static_configs:
    - targets: ["localhost:9093"]
 # rule配置 
rule_files:
- "/prometheus/rules.*yml"

scrape_configs:
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['localhost:9100']

 ##警告規則
 # vi /data/prometheus/rules.linux.yml

 #rules
groups:
 - name: test-rules
   rules:
   - alert: InstanceDown  #告警名稱
     expr: up == 0  #告警判定條件
     for: 3s  #持續多久后,才發送
     labels:  #標簽
      team: test
     annotations: ##警報信息
      summary: "{{$labels.instance}}: has been down"
      description: "{{$labels.instance}}: job {{$labels.job}} has been down "

 #啟動prometheus
docker rm -f prometheus
Dir=/data/prometheus
docker run -dit \
-u root --restart=always \
-h prometheus  --name prometheus \
--net="host" \
-v /etc/localtime:/etc/localtime:ro \
-v $Dir:/prometheus \
-v $Dir/prometheus.yml:/etc/prometheus/prometheus.yml \
--cpus 0.5 --memory 1024M \
prom/prometheus --web.enable-lifecycle

 #瀏覽器訪問 IP:9090
 #修改配置后 curl -X POST http://localhost:9090/-/reload


#安裝alertmanager
 #配置文件
 # mkdir -p /data/prometheus/alertmanager
 # vi /data/prometheus/alertmanager/alertmanager.yml

 # 全局配置項
global:
  resolve_timeout: 5m #超時,默認5min
  #郵箱smtp服務
  smtp_smarthost: 'smtp.qq.com:587'
  smtp_from: 'report@elven.vip'
  smtp_auth_username: 'report@elven.vip'
  smtp_auth_password: 'xxx密碼'
  smtp_hello: 'qq.com'

 # 路由
route:
  group_by: ['alertname'] # 報警分組依據
  group_wait: 20s #組等待時間
  group_interval: 20s # 發送前等待時間
  repeat_interval: 10m #重復周期10分鍾
  receiver: 'email' # 默認警報接收者

 # 警報接收者
receivers:
- name: 'email' # 警報名稱
  email_configs:
  - to: '228@elven.vip'  # 接收警報的email

 #關於email、微信發送模板,后面單獨講

 #啟動alertmanager 
docker rm -f alertmanager
Dir=/data/prometheus/alertmanager
docker run -dit \
-u root --restart=always \
-h alertmanager  --name alertmanager \
--net="host" \
-v /etc/localtime:/etc/localtime:ro \
-v $Dir:/alertmanager \
-v $Dir/alertmanager.yml:/etc/alertmanager/alertmanager.yml \
--cpus 0.2 --memory 128M \
prom/alertmanager

 #瀏覽器訪問 IP:9093

關閉node-exporter測試
docker stop node-exporter
netstat -lntp |grep 9100

查看prometheus點擊Alerts查看rules生效
查看alertmanager是否收到,等待郵件通知……


#grafana
docker rm -f grafana
docker run -dit --name grafana \
-h grafana -u root  \
--restart always \
--cpus 0.2 --memory 128M \
-v /etc/localtime:/etc/localtime:ro \
-v /data/grafana:/var/lib/grafana \
--net="host" \
grafana/grafana

 #瀏覽器訪問 ip:3000 默認登錄用戶密碼 admin
 #添加數據源Add data sources選 Prometheus 

 #可以參考這個grafana模板
 #https://grafana.com/grafana/dashboards/8919
 #導入 左邊+按鈕 -> Import -> 8919 -> prometheus選擇源 -> Import


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM