0
点赞
收藏
分享

微信扫一扫

Prometheus+Grafana+Alertmanager实现监控系统


1.介绍

监控系统有一下部分组成:

prometheus服务(接收所有exporter发送过来的消息,配置告警规则;默认端口:9090)

grafana可视化界面(将prometheus数据展示出来;默认端口:3000)

exporter代理服务(将server上报的数据转换为prometheus能看懂的格式;nginx-vts默认端口:9913;nginx默认端口:9113)

server服务(上报数据)

alertmanager报警管理器(将告警通过mail或者webhook通知开发者;默认端口:9093)

数据上报流程:

1.server上报数据给exporter;

2.exporter上报数据给prometheus

3.grafana配置连接prometheus读取数据,并且通过UI模板将prometheus数据展示出来

4.prometheus中配置rules,触发rules后向alertmanager推送消息

5.alertmanager收到消息后处理消息

2.安装prometheus

1.下载解压prometheus包
安装包见Prometheus相关文件

2.配置prometheus
修改prometheus.yml,scrape_configs中添加

- job_name: 'prometheus'
    static_configs:
    - targets: ['119.28.102.000:9090']

3.启动prometheus

nohup 解压目录/prometheus --config.file=解压目录/prometheus.yml --web.external-url=http://119.28.102.000:9090 >解压目录/log.log &

3.安装grafana

1.下载grafana包
安装包见Prometheus相关文件

2.安装grafana包

sudo apt-get install -y adduser libfontconfig1
sudo dpkg -i 包名
systemctl daemon-reload

3.启动grafana

systemctl restart grafana-server #重启
systemctl status grafana-server #查看运行状态
systemctl enable grafana-server #设置开机启动

4.配置grafana,设置prometheus数据源

1.访问grafana(ip:3000)

2.选择Configuration(左侧导航栏齿轮图标)>点击Data sources>点击Add data source>搜索并选择Prometheus

Prometheus+Grafana+Alertmanager实现监控系统_服务器

Prometheus+Grafana+Alertmanager实现监控系统_数据_02

3.将Http-URL输入你的Prometheus服务地址(ip:9090),点击最底部的 Save & test

Prometheus+Grafana+Alertmanager实现监控系统_数据_03

5.导入grafana模板展示数据

1.选访问grafana(ip:3000)

2.选择Dashboards(左侧导航栏四个正方形图标)>点击New>点击Import>输入8918>点击Load

Prometheus+Grafana+Alertmanager实现监控系统_数据_04


Prometheus+Grafana+Alertmanager实现监控系统_服务器_05

3.选择Prometheus>点击Import

Prometheus+Grafana+Alertmanager实现监控系统_服务器_06

4.选择Search dashboards(左侧导航栏放大镜图标)就能看到刚刚添加的Dashboards

Prometheus+Grafana+Alertmanager实现监控系统_安装包_07

4.安装Alertmanager

1.下载解压Alertmanager

安装包见Prometheus相关文件

2.配置Prometheus

1.在Prometheus根目录创建rules文件夹,并且新增nginx_rules.yml

groups:
- name: nginx
  rules:

  - alert: nginx_waiting
    expr: nginx_server_connections{instance=~"119.28.102.000:9913", status=~"waiting"}>1
    for: 10s
    labels:
      instance: '{{$labels.instance}}'
      priority: "3"
      type: 'nginx'
    annotations:
      description: '{{ $labels.instance }} nginx waiting连接过大,请前往查看,当前waiting数量:{{$value}}'
      summary: '{{ $labels.instance }} nginx waiting连接过大,请前往查看,当前waiting数量:{{$value}}}'

  - alert: nginx_up
    expr: nginx_up{instance=~"119.28.102.000:9113"}==0
    for: 10s
    labels:
      instance: '{{$labels.instance}}'
      priority: "3"
      type: 'nginx'
    annotations:
      description: '{{ $labels.instance }} nginx 已宕机,请前往查看,{{$value}}}'
      summary: '{{ $labels.instance }} nginx 已宕机,请前往查看,{{$value}}}'

2.修改prometheus.yml

global:
  scrape_interval:     15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
  - static_configs:
    - targets:
       - 119.28.102.000:9093

# 规则文件地址
rule_files:
   - "rules/*.yml"

3.检查规则是否配置成功

重启Prometheus,访问http://119.28.102.000:9090/rules,查看是否存在数据

Prometheus+Grafana+Alertmanager实现监控系统_安装包_08

3.配置Alertmanager

1.修改alertmanager.yml

route:
  group_by: ['alertname']
  group_wait: 10s
  group_interval: 10s
  repeat_interval: 1m
  receiver: 'webhook'                      #定义接受告警组名 
receivers:

- name: 'webhook'
  webhook_configs:
  - url: 'http://119.28.102.000:8082/index/prometheusWebHook' #需要自己实现接口和Cat一样

2.启动alertmanager

nohup 解压地址/alertmanager > 解压地址/log.log &

3.测试

这边配置的规则是监控nginx是否存活,杀死nginx即可


举报

相关推荐

0 条评论