微服务监控和报警(三)-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 = [email protected]
# smtp 密码
password = xxxxxxxx
# 发信邮箱
from_address = [email protected]
# 发信人
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

猜你喜欢

转载自www.cnblogs.com/caofanqi/p/12308454.html