prometheus配置MySQL郵件報警
前兩期文章(引用沃趣技術—— 《prometheus監控多個MySQL例項》 、 《構建狂拽炫酷屌的MySQL監控平臺》 )介紹了prometheus、grafana、exporter的安裝以及集中監控mysql節點的方法,這篇文章介紹一下prometheus的郵件報警配置。
alertmanager下載
prometheus報警配置需要用到alertmanager元件,這個元件可以到prometheus官網上進行下載。
https://prometheus.io/download/
由於最新版本的alertmanager元件配置郵箱通訊存在一些問題,我們這裡選擇在github上下載0.14版本的alertmanager。
https://github.com/prometheus/alertmanager
附具體下載地址:
alertmanager安裝配置
將下載的alertmanager包進行解壓安裝。
tar -xf alertmanager-0.14.0.linux-amd64.tar.gz mv alertmanager-0.14.0.linux-amd64 /data/alertmanager
編輯alertmanager的配置檔案,新增郵箱資訊。
# cd /data/alertmanager # cat alertmanager.yml global: smtp_smarthost: smtp.exmail.xxx.com:465 # 發件人郵箱smtp地址 smtp_auth_username: xxxx@xxx.com # 發件人郵箱賬號 smtp_from: xxx@xxx.com # 發件人郵箱賬號 smtp_auth_password: xxxxxx # 發件人郵箱密碼 resolve_timeout: 5m smtp_require_tls: false route: # group_by: ['alertname'] # 報警分組依據 group_wait: 10s # 最初即第一次等待多久時間傳送一組警報的通知 group_interval: 10s # 在傳送新警報前的等待時間 repeat_interval: 1m # 傳送重複警報的週期 對於email配置中多頻繁 receiver: 'email' receivers: - name: email email_configs: - send_resolved: true to: xxx@xxx.com # 收件人郵箱賬號
啟動alertmanager。
# cd /data/alertmanager ./alertmanager --config.file=alertmanager.yml &
alertmanager的預設埠為9093。
prometheus配置
在prometheus目錄下編輯報警模版alert_rules.yml,新增一些自定義報警項。
# cd /data/prometheus # cat alert_rules.yml groups: - name: MySQL-rules rules: - alert: MySQL Status # 告警名稱 expr: up == 0 for: 5s # 滿足告警條件持續時間多久後,才會傳送告警 annotations: # 解析項,詳細解釋告警資訊 summary: "{{$labels.instance}}: MySQL has stop !!!" value: "{{$value}}" alertname: "MySQL資料庫停止執行" description: "檢測MySQL資料庫執行狀態" message: 當前資料庫例項{{$labels.instance}}已經停止執行,請及時處理 - alert: MySQL Slave IO Thread Status # 告警名稱 expr: mysql_slave_status_slave_io_running == 0 for: 5s # 滿足告警條件持續時間多久後,才會傳送告警 annotations: # 解析項,詳細解釋告警資訊 summary: "{{$labels.instance}}: MySQL Slave IO Thread has stop !!!" value: "{{$value}}" alertname: "MySQL主從IO執行緒停止執行" description: "檢測MySQL主從IO執行緒執行狀態" message: 當前資料庫例項{{$labels.instance}} IO執行緒已經停止執行,請及時處理 - alert: MySQL Slave SQL Thread Status # 告警名稱 expr: mysql_slave_status_slave_sql_running == 0 for: 5s # 滿足告警條件持續時間多久後,才會傳送告警 annotations: # 解析項,詳細解釋告警資訊 summary: "{{$labels.instance}}: MySQL Slave SQL Thread has stop !!!" value: "{{$value}}" alertname: "MySQL主從SQL執行緒停止執行" description: "檢測MySQL主從SQL執行緒執行狀態" message: 當前資料庫例項{{$labels.instance}} SQL執行緒已經停止執行,請及時處理 - alert: MySQL Slave Delay Status # 告警名稱 expr: mysql_slave_status_sql_delay == 30 for: 5s # 滿足告警條件持續時間多久後,才會傳送告警 annotations: # 解析項,詳細解釋告警資訊 summary: "{{$labels.instance}}: MySQL Slave Delay has more than 30s !!!" value: "{{$value}}" alertname: "MySQL主從延時過大" description: "檢測MySQL主從延時狀態" message: 當前資料庫例項{{$labels.instance}} 主從延時狀態已經超過30s,請及時處理
在prometheus目錄下編輯prometheus的配置檔案,將監控的配置資訊新增到prometheus.yml。
# cd /data/prometheus # cat prometheus.yml # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: - 172.18.0.24:9093 # 對應啟動的altermanager節點的9093埠 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: - "alert_rules.yml" # 對應前面編輯的報警模版alert_rules.yml檔案 # A scrape configuration containing exactly one endpoint to scrape: scrape_configs: - file_sd_configs: - files: - mysql.yml job_name: MySQL metrics_path: /metrics relabel_configs: - source_labels: [__address__] regex: (.*) target_label: __address__ replacement: $1
編輯完成後,重新載入一下配置更改。
kill -HUP [prometheus PID]
驗證郵件報警
登陸prometheus的web頁面,檢視報警資訊。
瀏覽器輸入Prometheus_IP:9090 ,可以看到各個報警項的狀態。
停掉主從執行緒,模擬觸發報警。
Slave SQL執行緒停掉後,報警項顏色變成黃色,持續時間超過定義的持續時間後,顏色變紅,併傳送郵件。
收到報警郵件。
| 作者簡介
李文航·沃趣科技資料庫技術專家
熟悉MySQL體系結構和工作原理、SQL調優、資料庫故障診斷、資料遷移、備份恢復。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2662524/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- zabbix 配置傳送郵件報警
- jenkins郵件報警機制配置Jenkins
- zabbix郵件報警通知
- supervisor守護程式並配置郵件報警
- 技術分享| 如何使用Prometheus實現系統監控報警郵件通知Prometheus
- grafana的郵件報警AlertingGrafana
- 三封報警郵件的分析
- 使用Zabbix服務端本地郵箱賬號傳送報警郵件及指定報警郵件操作記錄服務端
- zabbix郵件報警功能的驗證
- 配置Jenkins構建失敗觸發郵件報警機制Jenkins
- 備庫報警郵件的分析案例(一)
- 備庫報警郵件的分析案例(二)
- 備庫報警郵件的分析案例(三)
- SQLServer郵件預警SQLServer
- pinpoint-docker開啟郵件報警和整合釘釘報警推送Docker
- 細述zabbix郵件報警常見問題
- 一封備庫報警郵件的分析
- Prometheus監控報警系統Prometheus
- zabbix監控之同時向多人郵件報警
- Linux 下如何用 mutt 設定郵件報警Linux
- 一條看似平常的報警郵件所做的分析
- UNIX系統高負載郵件報警指令碼負載指令碼
- 一條關於swap爭用的報警郵件分析
- 由報警郵件分析發現的備庫oracle bugOracle
- Prometheus alertmanager郵件傳送+grafana告警展示PrometheusGrafana
- 表空間郵件預警(luckyfriends)
- oracle資料庫自動發郵件實現報警功能Oracle資料庫
- 伺服器磁碟監控指令碼分享(含報警郵件)伺服器指令碼
- 一條關於swap爭用的報警郵件分析(二)
- 一條關於swap爭用的報警郵件分析(一)
- Laravel 郵件配置Laravel
- sql 郵件配置SQL
- docker部署Prometheus+AlertManager實現郵件告警DockerPrometheus
- 基於Nginx+Keepalived的LB服務監控(郵件報警)Nginx
- Prometheus時序資料庫-報警的計算Prometheus資料庫
- seafile QQ郵件的配置
- Linux下Zabbix5.0 LTS新增MySQL監控,實現郵件報警並執行預處理操作LinuxMySql
- prometheus + consul 服務註冊+報警 最佳實踐Prometheus