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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

5.导入grafana模板展示数据

1.选访问grafana(ip:3000)

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

在这里插入图片描述
在这里插入图片描述

3.选择Prometheus>点击Import

在这里插入图片描述

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

在这里插入图片描述

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,查看是否存在数据
在这里插入图片描述

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即可

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个比较复杂的问题,需要详细说明。我会尽可能地给您提供一些指导。 首先,您需要了解一些基础知识,如 Kubernetes 和 Prometheus。Kubernetes 是一个容器编排平台,可以帮助您自动管理多个容器应用程序的部署、扩展和故障恢复。Prometheus 是一个开源的监控系统,可以收集和存储应用程序的指标,并支持告警和可视化。 以下是大致的步骤: 1. 部署 Kubernetes 集群,并准备好部署 PrometheusGrafana 的节点。您可以使用各种 Kubernetes 发行版,如 kops、kubeadm 等。 2. 安装和配置 Prometheus。您可以使用 Prometheus 的 Helm Chart 进行部署,并通过 Prometheus Operator 进行管理。在部署 Prometheus 时,您需要配置它来收集应用程序的指标,并将其存储在 Prometheus 存储中。 3. 部署 Grafana。您可以使用 Grafana 的 Helm Chart 进行部署,并配置它来连接到 Prometheus 存储。在 Grafana 中,您可以创建仪表板并可视化 Prometheus 存储中的指标数据。 4. 配置告警。您可以使用 PrometheusAlertmanager 进行告警,并将告警发送到 Slack、Email 等渠道。在配置告警时,您需要定义告警规则,并配置 Alertmanager 来发送告警。 以上是部署 PrometheusGrafana 和告警的大致步骤。由于每个环境的部署和配置都有所不同,所以具体的细节可能会有所不同。我建议您查阅官方文档,并根据您的需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值