微服務監控和報警(三)-Prometheus配置Grafana圖標監控和報警


1、安裝Grafana

1.1、docker安裝

 1.2、docker-compose.yml

version: "3"
services:
  prometheus:
    image: prom/prometheus:v2.4.3
    container_name: 'prometheus'
    volumes:
    - ./prometheus/:/etc/prometheus/
    ports:
    - '8999:9090'
  grafana:
    image: grafana/grafana:5.2.4
    container_name: 'grafana'
    ports:
    - '3000:3000'
    volumes:
    - ./grafana/config/grafana.ini:/etc/grafana/grafana.ini
    - ./grafana/provisioning/:/etc/grafana/provisioning/
    env_file:
    - ./grafana/config.monitoring
    depends_on:
    - prometheus

1.3、grafana.ini,配置告警發送郵件的地址

#################################### SMTP / Emailing ##########################
# 配置郵件服務器
[smtp]
enabled = true
# 發件服務器
host = smtp.qq.com:465
# smtp賬號
user = xxxxxxxx@qq.com
# smtp 密碼
password = xxxxxxxx
# 發信郵箱
from_address = xxxxxxxx@qq.com
# 發信人
from_name = caofanqi

1.4、datasource.yml 數據源配置為Prometheus

# config file version
apiVersion: 1

deleteDatasources:
- name: Prometheus
  orgId: 1

datasources:
- name: Prometheus
  type: prometheus
  access: proxy
  orgId: 1
  url: http://prometheus:9090
  basicAuth: false
  isDefault: true
  version: 1
  editable: true

1.5、config.monitoring admin登陸密碼配置,是否允許注冊

GF_SECURITY_ADMIN_PASSWORD=password
GF_USERS_ALLOW_SIGN_UP=false

1.6、運行 docker-compose -f docker-compose.yml up 命令

 1.7、訪問http://127.0.0.1:3000/ 如下,安裝完成

2、創建Dashboard 

2.1、登陸grafana,用戶名admin,密碼password,如下,還沒有Dashboard,我們導入dashboard.json文件進行創建,完成后,可以看到這里的統計頁面比Prometheus自帶的好的多,可以通過右上角進行時間維度的修改。

 

   

3、告警渠道設置

Alerting-> Notification channels -> Add channel 

  

可以看到支持的類型有很多,我們選擇Email,填寫要發送的郵箱,點擊測試,郵箱收到了測試郵件

    

4、創建錯誤規則,達到指定要求,發送郵件告警

4.1、在程序中制造錯誤,並不斷訪問

  

這時,通過Grafana可以看到,Rate和Error都明顯升高

 4.2、配置錯誤規則,發送告警信息 Errors -> Edit 

將PromQL修改為如下:

 點擊Alert-> Create Alert  ,進行告警規則設置,我們這里設置,每隔10s評估以下表達式,如果conut出來的值大於1就告警

Notifications,設置通知方式,和信息。我們選擇之前的發送郵件

 

 當如下圖出現碎裂的紅心,說明已經發送告警了

 我們的郵箱收到了郵件,如下

 

 

項目源碼:https://github.com/caofanqi/study-security/tree/dev-prometheus2

 


免責聲明!

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



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