日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Promethues微信告警部署

發布時間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Promethues微信告警部署 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原創作者:運維工程師 謝晉

Promethues微信告警

  • 使用Prometheus實現企微信報警

使用Prometheus實現企微信報警

? ?Prometheus可以通過多種方式把告警信息發送到指定人,常用的有郵件,短信報警方式,但是越來越多的企業開始使用Prometheus結合微信作為主要的告警方式,這樣可以及時有效的把告警信息推送到接收人,方便告警的及時處理。

  • 部署Alertmanager
    Alertmanager是Prometheus告警組件,需要通過Alertmanager結合郵件、微信、釘釘等進行告警
    安裝Alertmanager組件
    官網下載Alertmanager包
  • # tar xf alertmanager-0.23.0.linux-amd64.tar.gz # ln -s /usr/local/alertmanager-0.23.0/ /usr/local/alertmanager # cat /usr/lib/systemd/system/alertmanager.service[Unit]Description=alertmanager SystemDocumentation=alertmanager System[Service]ExecStart=/usr/local/alertmanager/alertmanager \--config.file=/usr/local/alertmanager/alertmanager.yml[Install]WantedBy=multi-user.target # systemctl start alertmanager.service 訪問Alertmanager網頁9093端口

  • 檢查alertmanager.yml語法
  • # pwd/usr/local/alertmanager # ./amtool check-config alertmanager.ymlChecking 'alertmanager.yml' SUCCESSFound:- global config- route- 1 inhibit rules- 1 receivers- 0 templates
  • 企業微信ID獲取
    登陸企業微信https://work.weixin.qq.com/,需企業管理員賬號登陸
    點擊應用管理

    這里添加應用名稱和告警需要通知到的人或組

    這里要記住3個值,Agentld、Secret、企業ID,后續創建報警需要

  • 創建告警配置文件
  • # cat /usr/local/alertmanager/alertmanager.ymlglobal:resolve_timeout: 5mtemplates: #告警模板- '/usr/local/alertmanager/wechat.tmpl'route: # 設置報警分發策略group_by: ['linux'] # 分組標簽group_wait: 10s # 告警等待時間。告警產生后等待10s,如果有同組告警一起發出group_interval: 10s # 兩組告警的間隔時間repeat_interval: 1m # 重復告警的間隔時間,減少相同右鍵的發送頻率 此處為測試設置為1分鐘receiver: 'wechat' # 默認接收者receivers:- name: 'wechat'wechat_configs:- send_resolved: trueagent_id: '1000003' # 自建應用的agentIdto_party: '2' # 接收告警消息的部門api_secret: 'zdevZA7hR-gsc4N0aeKYSjSFMz1aL38YLQnkeGuaVIY' # 自建應用的secretcorp_id: 'wwc5982c624dfffbb9' # 企業IDmessage: '{{ template "wechat.tmpl" . }}'inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'


    將企業微信剛剛獲取到的三個值填入即可

  • 配置Prometheus.yml
  • 將Alertmanager信息添加到prometheus.yml文件內 # vi /usr/local/prometheus/prometheus.yml # Alertmanager configurationalerting:alertmanagers:- static_configs:- targets: ['192.168.20.106:9093']# - alertmanager:9093
  • 報警規則配置
  • # cat /usr/local/prometheus/rules/node_status.ymlgroups:- name: 實例存活告警規則rules:- alert: 實例存活告警expr: up{job="linux"} == 0 or up{job="linux"} == 0for: 1mlabels:user: prometheusseverity: Disasterannotations:summary: "Instance {{ $labels.instance }} is down"description: "Instance {{ $labels.instance }} of job {{ $labels.job }} has been down for more than 1 minutes."value: "{{ $value }}"- name: 內存告警規則rules:- alert: "內存使用率告警"expr: (node_memory_MemTotal_bytes - (node_memory_MemFree_bytes+node_memory_Buffers_bytes+node_memory_Cached_bytes )) / node_memory_MemTotal_bytes * 100 > 75for: 1mlabels:user: prometheusseverity: warningannotations:summary: "服務器: {{$labels.alertname}} 內存報警"description: "{{ $labels.alertname }} 內存資源利用率大于75%!(當前值: {{ $value }}%)"value: "{{ $value }}"- name: CPU報警規則rules:- alert: CPU使用率告警expr: 100 - (avg by (instance)(irate(node_cpu_seconds_total{mode="idle"}[1m]) )) * 100 > 70for: 1mlabels:user: prometheusseverity: warningannotations:summary: "服務器: {{$labels.alertname}} CPU報警"description: "服務器: CPU使用超過70%!(當前值: {{ $value }}%)"value: "{{ $value }}"- name: 磁盤報警規則rules:- alert: 磁盤使用率告警expr: (node_filesystem_size_bytes - node_filesystem_avail_bytes) / node_filesystem_size_bytes * 100 > 80for: 1mlabels:user: prometheusseverity: warningannotations:summary: "服務器: {{$labels.alertname}} 磁盤報警"description: "服務器:{{$labels.alertname}},磁盤設備: 使用超過80%!(掛載點: {{ $labels.mountpoint }} 當前值: {{ $value }}%)"value: "{{ $value }}" 在添加告警監控腳本位置 # cat /usr/local/prometheus/prometheus.yml# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.rule_files:# - "first_rules.yml"# - "second_rules.yml"- "rules/node_status.yml"
  • 啟用alertmanager
  • 啟動服務 # systemctl start alertmanager.service 設置開機自啟動 # systemctl enable alertmanager.service
  • 測試告警推送結果
    將監控的虛擬機關閉一臺做主機宕機測試,企業微信收到告警

    若未配置告警模板,將會收到這樣的默認告警信息。
  • 配置告警模板
  • # vi /usr/local/alertmanager/wechat.tmpl{{ define "wechat.tmpl" }}{{- if gt (len .Alerts.Firing) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 }}========= 監控報警 =========告警狀態:{{ .Status }}告警級別:{{ .Labels.severity }}告警類型:{{ $alert.Labels.alertname }}故障主機: {{ $alert.Labels.instance }}告警主題: {{ $alert.Annotations.summary }}告警詳情: {{ $alert.Annotations.message }}{{ $alert.Annotations.description}};觸發閥值:{{ .Annotations.value }}故障時間: {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}========= = end = ========={{- end }}{{- end }}{{- end }}{{- if gt (len .Alerts.Resolved) 0 -}}{{- range $index, $alert := .Alerts -}}{{- if eq $index 0 }}========= 異常恢復 =========告警類型:{{ .Labels.alertname }}告警狀態:{{ .Status }}告警主題: {{ $alert.Annotations.summary }}告警詳情: {{ $alert.Annotations.message }}{{ $alert.Annotations.description}};故障時間: {{ ($alert.StartsAt.Add 28800e9).Format "2006-01-02 15:04:05" }}恢復時間: {{ ($alert.EndsAt.Add 28800e9).Format "2006-01-02 15:04:05" }} {{- if gt (len $alert.Labels.instance) 0 }}實例信息: {{ $alert.Labels.instance }}{{- end }}========= = end = ========={{- end }}{{- end }}{{- end }}{{- end }} 在alertmanager.yml文件內告警模板指向wechat.tmpl文件 # vi /usr/local/alertmanager/alertmanager.ymlreceivers:- name: 'wechat'wechat_configs:- send_resolved: trueagent_id: '1000002' # 自建應用的agentIdto_party: '2' # 接收告警消息的部門api_secret: 'NZvnlNNFvnpk4k-0_YNmE-ULRynAEU8PYkyT1k_MTm8' # 自建應用的secretcorp_id: 'wwc5982c624dfffbb9' # 企業IDmessage: '{{ template "wechat.tmpl" . }}'

    測試報警

    總結

    以上是生活随笔為你收集整理的Promethues微信告警部署的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。