prometheus 監控報警實踐

本文記錄一次練手項目的過程,主要用來理解prometheus的監控報警流程及配置,使用docker-compose 快速上手,實現微信以及email報警。本文的主要目的,一是記錄, 二時幫助新手來理解報警監控。 項目地址:https://github.com/kekek/prometheus-alert

這個項目監控了docker-compose管理的服務程序 target-go 手動停止后,prometheus 怎樣采集指標 , 上報錯誤,及報警處理。需要了解更多的指標監控, 請查看prometheus 文檔

本項目涉及到的知識點:

1. docker-compose 編排管理docker服務

2. prometheus 指標采集

3. prometheus 報警管理 

文件目錄結構

.
├── alertmanager/
├── docker-compose.yml
├── grafana/
├── mysql/
├── mysql-export/
├── prometheus/
├── readme.md
└── target-go/

  • alertmanager/ : prometheus 的 報警管理器,負責報警信息歸集,發送通知等
  • prometheus/ : docker 啟動的 prometheus 服務, 收集監控信息,根據監控信息發送報警
  • target-go/ : go 啟動的一個web服務,被監控對象,docker-compse中服務名稱為 kingtrader, 在這個項目中,可以通過啟動和停止 kingtrader,該項目來觀察 prometheus的監控和報警結果
  • docker-compose.yml : 通過 docker-compose 管理管理上面的服務

修改配置

  • 啟動docker, clone 倉庫到本地目錄,假如是prom
  git clone https://github.com/kekek/prometheus-alert prom
  • 修改 alertmanager 報警通知相關的配置文件

alertmanager/conf/alertmanager.yml

///////////////////////////// 發送郵件  /////////////////////////////

// 修改發送配置
  smtp_from: '發送人'
  smtp_smarthost: '發送服務器'
  smtp_auth_username: '賬號'
  smtp_auth_password: "密碼"

// 接收者

receivers:
- name: 'manager'
  email_configs:
  - send_resolved: false
    to: 接收人email

///////////////////////////// 發送微信消息  /////////////////////////////
  ## 修改 wechat 
  # wechat_api_url: <string> | default = "https://qyapi.weixin.qq.com/cgi-bin/" 
  # wechat_api_secret: <secret> 
  # wechat_api_corp_id: <string> 

運行并觀察

  • 進入 prom,啟動服務
    cd prom
    docker-compose up 
job="kingtrader"服務啟動狀態 1
指標報警觸發狀態 綠色
  • 停止 kingtrader 再次查看
    docker-compose stop kingtrader
job="kingtrader"服務啟動狀態 0
指標報警觸發狀態 紅色

不出意外的話,過5分鐘就能收到報警信息啦

過程說明

prometheus 會不停的的采集 job=kingtrader 的狀態, 如果根據配置, 如果該值為0 , 則每個采集周期都是發送一條警告信息到 alertmanager去, 由altermanager來處理信息的歸集,過濾, 等, 然后發送報警信息

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。