Docker部署Prometheus+Grafana+Alertmanager企业微信机器人告警
00 分钟
2024-6-11
2024-6-12
type
status
date
slug
summary
tags
category
icon
password

需要部署的组件与服务

1.Prometheus (数据监控)

Prometheus 是一款基于时序数据库的开源监控告警系统,非常适合Kubernetes集群的监控。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。Promethus有以下特点:
  • 支持多维数据模型:由度量名和键值对组成的时间序列数据
  • 内置时间序列数据库TSDB
  • 支持PromQL查询语言,可以完成非常复杂的查询分析,对图表展示和告警非常有意义
  • 支持HTTP的Pull方式采集时间序列数据
  • 支持PushGateway采集瞬时任务的数据
  • 支持服务发现和静态配置两种方式发现目标
  • 支持接入Grafana

2.数据采集

node-exporter、alertmanager_exporter、mysqld_exporter等,此类软件是开源的Prometheus数据采集软件。例: Node Exporter 是一个开源的 Prometheus 客户端软件,用于收集和导出 Linux 系统的各种指标数据。 它可以提供关于 CPU 使用率、内存占用、网络流量等方面的数据。 而在本文中,我们将重点关注磁盘 I/O 相关的指标。
 

3.grafana(数据展示)

Grafana是一个用Javascript写的开源的(Dashboard)可视化面板,能齐全的度量仪表盘和图形编辑器和漂亮的布局展示,并且支持Graphite、elasticsearch、zabbix等的数据可视化的实现,可以给你的数据换个皮肤,使你的数据展示更加直观和漂亮。
 

4.Alertmanager(告警推送)

Alertmanager是一个独立的告警模块,接收Prometheus等客户端发来的警报,之后通过分组、删除重复等处理,并将它们通过路由发送给正确的接收器;告警方式可以按照不同的规则发送给不同的模块负责人,Alertmanager支持Email, Slack,等告警方式, 也可以通过webhook接入钉钉等国内IM工具。
 

整体流程

 
Prometheus监控来自----xxxx_Exporter采集到的数据----并展示到grafana形成看板-----同时Prometheus又把生产的告警推送给Alertmanager---再通过Alertmanager推送给我们的企业微信
 

开始部署

1.Prometheus镜像
2.node-exporter镜像
3.alertmanager镜像
notion image
4.webhook-adapter镜像
notion image
5.grafana镜像

镜像全览

notion image
 

2. 部署Prometheus

1.创建配置文件目录

新建prometheus目录,编辑配置文件prometheus.yml
notion image
 

3.在docker中运行Prometheus

  • -d 表示后台运行。
  • -name 给这个运行的容器命名。
  • -restart 重启。
  • p 开放端口,宿主机端口:容器端口。
  • v 挂载点 宿主机路径:容器路径。
1.查看容器是否启动成功
 
notion image

2.网页访问一下

notion image
出现这个界面说明prometheus已经成功运行

2.部署node-exporter

notion image
notion image
这样就可以确认运行成功了

4.查看Prometheus

notion image
:可以看到主机已经添加成功,如果需要添加多个主机,在需要监控的主机中安装node-exporter,并修改Prometheus的配置文件(/data/prometheus/prometheus.yml),添加新加的主机ip和node-exporter端口。

3.部署Grafana

notion image
首次登录默认密码是admin/admin,会要求修改密码
如果忘记了Grafana密码怎么办?,以下以Windows环境为例,Linux命令相同
notion image
上面提示Admin password changed successfully 表示成功
notion image
 
上一篇
Windows 安装使用 Docker Desktop
下一篇
Grafana重置admin密码的2种方法