Prometheus+Grafana部署及企业微信邮件/群消息告警通知配置

发布于:2025-07-12 ⋅ 阅读:(17) ⋅ 点赞:(0)

1. 普罗米修斯

1.1 前置准备

虚拟机系统:ubuntu-22.04.5

CPU:2

内存: 4G

硬盘:100G

1.2 普罗米修斯部署

1.2.1下载普罗米修斯

  1. 下载普罗米修斯https://prometheus.io/download/

或点击这个直接下载https://download.csdn.net/download/m0_58761900/91337074

  1. 解压下载的文件:
tar xf prometheus-3.4.2.linux-amd64.tar.gz -C /usr/local/

  1. 对解压后的文件,重命名
mv prometheus-2.25.0.linux-amd64/ prometheus

  1. 查看版本号
cd prometheus

./prometheus --version

1.2.2 配置prometheus

  1. 查看 prometheus.yml 文件内容

  1. 启动服务
./prometheus --config.file=prometheus.yml

启动选项了解:./prometheus --help
# 指定配置文件
--config.file="prometheus.yml"
# 默认指定监听地址端口,可修改端口
--web.listen-address="0.0.0.0:9090"

1.2.3访问 http://localhost:9090

  1. 访问:http://x.x.x.x:9090

  1. 访问http://x.x.x.x:9090/metrics查看暴露指标

1.2.4 将Prometheus 配置为系统服务

  1. 进入 system目录:
cd /usr/lib/systemd/system
  1. 创建文件:
vim prometheus.service

给文件中写入
[Unit]
  Description=https://prometheus.io
  [Service]
  Restart=on-failure
  ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090
  [Install]                      
  WantedBy=multi-user.target

  1. 生效系统system 文件
systemctl daemon-reload
  1. 启动服务
systemctl start prometheus

1.3 客户端,配置服务发现监控Linux主机及相关服务

1.3.1 安装node_exporter

  1. 下载node_exporter

监控linux常用node_exporter

  1. 解压下载的文件:
tar xf node_exporter-1.9.1.linux-amd64.tar.gz -C /usr/local/

cd /usr/local/

mv node_exporter-1.9.1.linux-amd64/ node_exporter

1.3.2 启动node_exporter

  1. 启动node_exporter,并添加到服务
cd usr/local/node_exporter

./node_exporter &

启动后会监听9100端口

  1. 配置node_exporter为系统服务
vim /usr/lib/systemd/system/node_exporter.service

给文件写入
[Unit]
Description=node_exporter
After=network.target 
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target

  1. 启动node_exporter
systemctl daemon-reload

systemctl start node_exporter

1.3.3 普罗米修斯服务端配置文件添加监控项

cd /usr/local/prometheus

vim prometheus.yml

给文件最后面写入这三行
  - job_name: 'linux'
    static_configs:
    - targets: ['x.x.x.x:9100','x.x.x.x:9100'] # 多个IP用,分开

重启普罗米修斯

systemctl restart prometheus.service

打开普罗米修斯自带的监控页面,Status -> Targets 查看:

1.4 监控mysql(mysqld-exporter)

1.4.1 下载mysqld-exporter

  1. 下载mysql-exporter并解压至usr/local
tar xf mysqld_exporter-0.17.2.linux-amd64.tar.gz -C /usr/local/

mv mysqld_exporter-0.17.2.linux-amd64 mysqld_exporter

vim .my.cnf

给文件中写入
[client]
user=root
password=123456

还需要下载mysql,否则后面会再次重启普罗米修斯会持续报错

1.4.2 启动mysqld-exporter

cd /usr/local/mysqld_exporter

./mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter/.my.cnf" &

ps -ef |grep exporter

ss -lntp |grep pid

启动后会监听9104端口

1.4.3 普罗米修斯配置文件添加监控项后重启

  1. 更新普罗米修斯配置文件
cd /usr/local/prometheus

vim prometheus.yml 

在后面添加上
  - job_name: 'mysql'
    static_configs:
    - targets: ['x.x.x.x:9104']

  1. 重启普罗米修斯
systemctl restart prometheus.service

若此时重启完成后,持续打印错误日志,排查思路:

  1. 检查prometheus.yml 文件是否配置错误(字符、换行等)
  2. 检查mysql相关,mysql 是否安装完成,.my.cnf 文件是否密码错误等

1.4.4 将主机节点监控采集node_exporter加入到服务配置文件里

vi /usr/lib/systemd/system/node_exporter.service


/usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(docker|sshd|nginx).service
# 监控客户端,docker服务,nginx服务,sshd

启动node_exporter

systemctl daemon-reload

systemctl start node_exporter

重启普罗米修斯

systemctl restart prometheus.service

2. Grafana安装+配置

2.1 安装Grafana

2.1.1 下载Grafana

https://grafana.com/grafana/download

sudo apt-get install -y adduser libfontconfig1 musl

wget https://dl.grafana.com/enterprise/release/grafana-enterprise_12.0.2_amd64.deb

sudo dpkg -i grafana-enterprise_12.0.2_amd64.deb

执行步骤3安装Grafana时,若出现,主目录/usr/share/grafana无法创建时,可以手动创建一下

mkdir -p /usr/share/grafana

chown -R grafana:grafana /usr/share/grafana

然后再次执行步骤3

  1. 安装完成后,查看Grafana 是否启动
systemctl status grafana-server.service 
  1. Grafana配置开机自启动
systemctl enable grafana-server
  1. 检查开机启动列表
systemctl list-unit-files | grep grafana

  1. 启动后访问地址:http://x.x.x.x:3000

初始用户名和密码都是admin

  1. 登录后重置密码

2.1.2 添加prometheus 数据源

Connections -> Data Sources ->add data source -> Prometheus

2.1.3 新增Dashboard Linux 基础数据展示

  1. 下载模板或直接输入模板ID 或者输入JSON都可以

https://grafana.com/grafana/dashboards

比如输入dashboards id如8919

  1. 查看Dashboard

2.1.4 新增Dashboard MySQL数据展示

  1. 设置数据源

  1. 搜索添加Mysql,并配置连接信息

若连接不上,查看mysql 相关日志 tail -f /var/log/mysql/error.log

vi /etc/mysql/mysql.conf.d/mysqld.cnf

修改
[mysqld]
bind-address = 0.0.0.0  # 允许所有IP连接
# skip-networking = 0    # 确保此项被注释

重启mysql

sudo systemctl restart mysql
  1. 导入dashboard,数据源选择下载完成的mysql数据源

链接:https://pan.baidu.com/s/1GBzogDLsYS3IvwH4WbdPLw 提取码:ef6e

参考文章:

https://blog.csdn.net/qq_31725371/article/details/114697770

2.2 普罗米修斯+Grafana 使用

2.2.1 新增监控主机

监控的linux主机配置node_exporter服务:

  1. 将下载的node_exporter包放在 Linux系统的任意目录:

然后解压下载的文件

tar xf node_exporter-1.9.1.linux-amd64.tar.gz -C /usr/local/
cd /usr/local/
mv node_exporter-1.9.1.linux-amd64/ node_exporter
  1. 启动node_exporter,并添加到服务
cd usr/local/node_exporter

./node_exporter &
启动后会监听9100端口
  1. 配置node_exporter为系统服务
vim /usr/lib/systemd/system/node_exporter.service

给文件写入
[Unit]
Description=node_exporter
After=network.target 
[Service]
ExecStart=/usr/local/node_exporter/node_exporter
Restart=on-failure
[Install]
WantedBy=multi-user.target
  1. 启动node_exporter
systemctl daemon-reload

systemctl start node_exporter
  1. 修改prometheus.yml配置
登录系统后台:
cd  /usr/local/prometheus

vim prometheus.yml

给文件写入这三行
  - job_name: 'linux'
    static_configs:
    - targets: ['x.x.x.x:9100','x.x.x.x:9100'] # 更新监控主机,只需要修改这个,多个IP用,分开

  1. 重启普罗米修斯
systemctl restart prometheus.service

访问 http://x.x.x.x:9090/targets,查看监控信息是否更新成功

3. 监控告警通知机制配置

监控告警有多种途径,下面介绍**邮件告警通知和企微群消息告警通知**

3.1 邮件告警通知配置

3.1.1 修改Grafana配置文件

  1. 修改Grafana配置文件
vim /etc/grafana/grafana.ini

搜索找到 smtp部分,配置邮件服务器(也是在内网环境搭建的, hMailServer邮件服务器环境搭建

  1. 重启Grafana服务
systemctl restart grafana-server

3.1.2 配置Grafana邮件通知

点击Alerting → Contact points

点击 Add contact point 添加通知渠道

3.1.3 配置邮件告警规则

定义一个内存使用率大于90%进行告警的策略

  1. 内存信息右键点击Edit,点击New alret rule

**linux部分告警规则**
CPU大于90%规则
100 - (avg by (instance,job)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 90
内存大于90%规则
(1 - (node_memory_MemAvailable_bytes)/node_memory_MemTotal_bytes)* 100 >90
磁盘大于90%规则
100-(node_filesystem_free_bytes{fstype=~"ext4|xfs"}/node_filesystem_size_bytes {fstype=~"ext4|xfs"}*100) > 90
  1. 下面这里创建一个内存大于90%的告警规则

  1. 配置检测时间

  1. 选择3.1.2中配置的邮箱,并设置告警默认msg

3.1.4 告警邮件接收

下面是设置的告警策略所发送的邮件

3.2 企微群消息机器人告警

3.2.1 创建企微群机器人

  1. 企微群设置里面,点击添加创建群机器人:
  2. 复制Webhook地址:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=66bxxxa7-2xxe-xxx-xxxx-xxxxxxx

3.2.2 Grafana配置企微Webhook

3.2.3 配置企微群消息告警规则

基本流程和3.1.3一致, 区别就是,这里选择配置的企微通知策略

3.2.4 企微群机器人发送告警


网站公告

今日签到

点亮在社区的每一天
去签到