当前位置: 首页 > news >正文

Prometheus+Grafana 智能监控告警系统(服务器指标采集、mysql指标采集)

目录

  • 一. 概述
    • 1.1 Grafana介绍
    • 1.2 Grafana结构图
  • 二、 Grafana监控系统之Prometheus+Grafana+node_exporter监控系统搭建(centos8为例)
    • 2.1 Prometheus介绍
    • 2.2 [下载安装prometheus](https://github.com/prometheus/prometheus/releases/)
      • 2.2.1 网址下载prometheus
      • 2.2.2 上传解压
      • 2.2.3创建专用运行用户
      • 2.2.4 配置systemd服务
      • 2.2.5运行Prometheus server
      • 2.2.6验证服务是否正常
  • 三、安装node_exporter插件(服务器指标采集)
    • 3.1 node_exporter介绍
    • 3.2.下载安装node_exporter
      • 3.2.1 网址下载node_exporter
      • 3.2.2 上传解压
      • 3.2.3创建专用运行用户
      • 3.2.4 配置systemd服务
      • 3.2.5运行node_exporter
      • 3.2.6验证服务是否正常
      • 3.2.7Prometheus配置监控node_exporter
        • 3.2.7.1 配置Prometheus抓取任务
        • 3.2.7.2 验证配置并重启Prometheus
        • 3.2.7.3 查看监控目标状态
  • 四、 安装Grafana(监控可视化工具)
    • 4.1 网址下载prometheus
    • 4.2 上传解压
    • 4.3 安装插件
    • 4.4创建专用运行用户
    • 4.5 配置systemd服务
    • 4.6运行Grafana
    • 4.7验证grafana服务是否正常
    • 4.8grafana页面改为中文
      • 4.8.1登录后,点击头像下菜单中->Profile
      • 4.8.2在Preferences一栏下面,找到Language一项
      • 4.8.3选择中文(简体)后点 Save 按钮即可
  • 五、安装mysqld_exporter插件(mysql指标采集)
    • 5.1 mysqld_exporter介绍
    • 5.2.下载安装mysqld_exporter
      • 5.2.1 上传解压并创建 .my.cnf 文件
      • 5.2.2创建专用运行用户
      • 5.2.3 配置systemd服务
      • 5.2.4运行mysqld_exporter
      • 5.2.5验证服务是否正常
      • 5.2.6Prometheus配置监控mysqld_exporter
        • 5.2.6.1 配置Prometheus抓取任务
        • 5.2.6.2 验证配置并重启Prometheus
        • 5.2.6.3 查看监控目标状态
  • 六、Grafana配置Prometheus数据源
    • 6.1 添加数据源
      • 6.1.1登录Grafana(http://服务器IP:3000),点击左侧菜单l 连接> 数据源。
      • 6.1.2在URL字段填写Prometheus的访问地址(如http://192.168.1.100:9090)
    • 6.2 导入仪表盘模板
      • 6.2.1仪表板---》新建---》新建仪表板
      • 6.2.2导入仪表板-----》服务器监控--》8919
      • 6.2.3导入仪表板-----》数据库监控--》7362

一. 概述

1.1 Grafana介绍

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:

  • 展示方式:
    快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;
  • 数据源:
    Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;
  • 通知提醒:
    以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;
  • 混合展示:
    在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;
  • 注释:
    使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;
  • 过滤器:
    Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。
    简单来讲,它是一个多用途的监控工具,同时通过邮件等方式进行有效的预警通知,丰富的直观的可视化界面,多种数据源配置是其优点所在;

1.2 Grafana结构图

在这里插入图片描述

二、 Grafana监控系统之Prometheus+Grafana+node_exporter监控系统搭建(centos8为例)

2.1 Prometheus介绍

Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态;

2.2 下载安装prometheus

2.2.1 网址下载prometheus

https://github.com/prometheus/prometheus/releases/
或者浏览器直接访问
https://github.com/prometheus/prometheus/releases/download/v3.7.2/prometheus-3.7.2.linux-amd64.tar.gz

在这里插入图片描述

2.2.2 上传解压

ll
tar -zvxf prometheus-3.7.2.linux-amd64.tar.gz

在这里插入图片描述

2.2.3创建专用运行用户

# 创建prometheus用户组
groupadd prometheus# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g prometheus -s /sbin/nologin prometheus# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R prometheus:prometheus  /data/jk/prometheus-3.7.2.linux-amd64

在这里插入图片描述

2.2.4 配置systemd服务

# 创建服务配置文件
cat > /etc/systemd/system/prometheus.service <<EOF
[Unit]
Description=Prometheus Monitoring System
Documentation=https://prometheus.io/docs/
# 确保网络启动后再启动服务
After=network.target
[Service]
Type=simple
# 使用专用用户运行
User=prometheus       
# 启动命令:指定配置文件和数据存储路径(默认是./data,建议单独目录便于管理)
ExecStart=/data/jk/prometheus-3.7.2.linux-amd64/prometheus    --config.file=/data/jk/prometheus-3.7.2.linux-amd64/prometheus.yml   --storage.tsdb.path=/data/jk/prometheus-3.7.2.linux-amd64/data
# 失败自动重启
Restart=on-failure
# 重启间隔5秒
RestartSec=5     [Install]
# 加入多用户目标组,实现开机自启
WantedBy=multi-user.target
EOF

在这里插入图片描述

注意:–storage.tsdb.path指定的 /data/jk/prometheus-3.7.2.linux-amd64/data目录需要提前创建并赋予权限:

cd  /data/jk/prometheus-3.7.2.linux-amd64
mkdir data
chown -R prometheus:prometheus  /data/jk/prometheus-3.7.2.linux-amd64

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

2.2.5运行Prometheus server

# 重新加载systemd配置
systemctl daemon-reload
# 启动服务
systemctl start prometheus.service
# 设置开机自启
systemctl enable prometheus.service
# 检查服务状态(确保Active: active (running))
systemctl status prometheus.service
ps -ef|grep prometheus

在这里插入图片描述

2.2.6验证服务是否正常

访问http://服务器IP:9090(默认端口9090),看到Prometheus的Web界面即安装成功

在这里插入图片描述

在这里插入图片描述

三、安装node_exporter插件(服务器指标采集)

3.1 node_exporter介绍

node_exporter是Prometheus生态中专门用于采集服务器硬件和系统指标(如CPU、内存、磁盘、网络)的代理程序,需要安装到每台被监控的服务器上(包括Prometheus所在服务器)。

3.2.下载安装node_exporter

3.2.1 网址下载node_exporter

https://github.com/prometheus/node_exporter/releases
或者浏览器访问下载
https://github.com/prometheus/node_exporter/releases/download/v1.10.2/node_exporter-1.10.2.linux-amd64.tar.gz

在这里插入图片描述

3.2.2 上传解压

ll
tar -zvxf  node_exporter-1.10.2.linux-amd64.tar.gz

在这里插入图片描述

3.2.3创建专用运行用户

# 创建prometheus用户组
groupadd node_exporter# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g node_exporter -s /sbin/nologin node_exporter# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R node_exporter:node_exporter /data/jk/node_exporter-1.10.2.linux-amd64

在这里插入图片描述

3.2.4 配置systemd服务

sudo bash -c 'cat <<EOF > /etc/systemd/system/node_exporter.service   
[Unit]   
Description=Node Exporter   
After=network.target[Service]   
Type=simple   
User=node_exporter   
Group=node_exporter   
WorkingDirectory=/data/jk/node_exporter-1.10.2.linux-amd64   
ExecStart=/data/jk/node_exporter-1.10.2.linux-amd64/node_exporter   
Restart=on-failure   
RestartSec=5s   
LimitNOFILE=65536[Install]   
WantedBy=multi-user.target   
EOF'

在这里插入图片描述

3.2.5运行node_exporter

sudo systemctl daemon-reload          # 重新加载配置   
sudo systemctl start node_exporter    # 启动服务   
sudo systemctl enable node_exporter   # 开机自启   

在这里插入图片描述

3.2.6验证服务是否正常

sudo systemctl status node_exporter   # 检查状态
curl http://localhost:9100/metrics    # 测试指标采集

3.2.7Prometheus配置监控node_exporter

3.2.7.1 配置Prometheus抓取任务

Prometheus通过prometheus.yml配置需要监控的目标(称为“Job”)。我们需要添加对node_exporter的抓取任务:

vim /data/jk/prometheus-3.7.2.linux-amd64/prometheus.yml
3.2.7.2 验证配置并重启Prometheus
http://ip:9090/targets
systemctl restart prometheus
3.2.7.3 查看监控目标状态

访问Prometheus Web界面(http://服务器IP:9090/targets),在“Status”列应看到UP状态,说明Prometheus已成功抓取node_exporter的指标。
在这里插入图片描述

四、 安装Grafana(监控可视化工具)

4.1 网址下载prometheus

https://grafana.com/grafana/download?platform=linux&edition=oss
或者浏览器直接访问
wget https://dl.grafana.com/grafana/release/12.2.1/grafana_12.2.1_18655849634_linux_amd64.tar.gz

在这里插入图片描述

4.2 上传解压

ll
tar -zvxf grafana_12.2.1_18655849634_linux_amd64.tar.gz

在这里插入图片描述

4.3 安装插件

cd /data/jk/grafana-12.2.1/bin
./grafana-server cli plugins install grafana-piechart-panel --pluginsDir /data/jk/grafana-12.2.1/data/plugins

4.4创建专用运行用户

# 创建prometheus用户组
groupadd grafana# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g grafana -s /sbin/nologin grafana# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R grafana:grafana  /data/jk/grafana-12.2.1

在这里插入图片描述

4.5 配置systemd服务

sudo bash -c 'cat <<EOF > /etc/systemd/system/grafana.service   
[Unit]   
Description=Grafana Server   
After=network.target[Service]   
Type=simple   
User=grafana   
Group=grafana   
WorkingDirectory=/data/jk/grafana-12.2.1   
ExecStart=/data/jk/grafana-12.2.1/bin/grafana-server web   
Restart=on-failure   
RestartSec=5s   
LimitNOFILE=65536   
EnvironmentFile=-/etc/default/grafana-server[Install]   
WantedBy=multi-user.target   
EOF'

在这里插入图片描述

4.6运行Grafana

# 重新加载 systemd 配置   
sudo systemctl daemon-reload   
# 启动 Grafana 服务   
sudo systemctl start grafana   
# 设置开机自启   
sudo systemctl enable grafana

在这里插入图片描述

4.7验证grafana服务是否正常

浏览器访问http://服务器IP:3000(默认端口3000),初始用户名/密码为admin/admin(首次登录会提示修改密码)。
在这里插入图片描述

4.8grafana页面改为中文

4.8.1登录后,点击头像下菜单中->Profile

在这里插入图片描述

4.8.2在Preferences一栏下面,找到Language一项

在这里插入图片描述

4.8.3选择中文(简体)后点 Save 按钮即可

在这里插入图片描述

五、安装mysqld_exporter插件(mysql指标采集)

5.1 mysqld_exporter介绍

mysqld_exporter 是 Prometheus 官方推荐的 MySQL 监控导出器(Exporter),用于将 MySQL 数据库的性能指标暴露为 Prometheus 可以抓取的 HTTP 接口。
用途:采集 MySQL / MariaDB 的各种运行时指标(如连接数、慢查询、InnoDB 状态、缓冲池使用等),并以标准格式暴露给 Prometheus。

5.2.下载安装mysqld_exporter

https://github.com/prometheus/mysqld_exporter/releases
或者浏览器访问下载
https://github.com/prometheus/mysqld_exporter/releases/download/v0.17.2/mysqld_exporter-0.17.2.linux-amd64.tar.gz

在这里插入图片描述

5.2.1 上传解压并创建 .my.cnf 文件

ll
tar -zvxf mysqld_exporter-0.17.2.linux-amd64.tar.gz
cd  /data/jk/mysqld_exporter-0.17.2.linux-amd64
vim .my.cnf
cat   .my.cnf
[clent]
user=root
password=root

在这里插入图片描述
在这里插入图片描述
注意事项
配置文件路径:

  • 确保 .my.cnf 文件存在于 /data/jk/mysqld_exporter-0.17.2.linux-amd64/
    目录中。 .my.cnf 内容示例(需包含MySQL连接信息):
[client]
user=mysqld_exporter
password=z4LaaAA11--pa44w0rdhost=127.0.0.1
port=3306

权限控制:确保 .my.cnf 仅对 mysqld_exporter 用户可读:

chmod 600 /data/jk/mysqld_exporter-0.17.2.linux-amd64/.my.cnf
  • mysqld_exporter 默认连接 localhost:3306
  • 如果你要监控远程 MySQL 或非标准端口,可以通过 命令行参数指定地址,而不是写在 .my.cnf 中

数据库创建连用户

 CREATE USER 'mysqld_exporter'@'127.0.0.1' IDENTIFIED BY 'z4LaaAA11--pa44w0rd';GRANT ALL PRIVILEGES ON *.* TO 'mysqld_exporter'@'127.0.0.1' WITH GRANT OPTION;FLUSH PRIVILEGES;

5.2.2创建专用运行用户

# 创建prometheus用户组
groupadd mysqld_exporter# 创建prometheus用户(-s指定不允许登录系统,-g指定用户组)
useradd -g mysqld_exporter -s /sbin/nologin mysqld_exporter# 为Prometheus主目录赋予权限(确保用户有权限访问配置和数据)
chown -R mysqld_exporter:mysqld_exporter  /data/jk/mysqld_exporter-0.17.2.linux-amd64

在这里插入图片描述

5.2.3 配置systemd服务

sudo bash -c 'cat <<EOF > /etc/systemd/system/mysqld_exporter.service   
[Unit]   
Description=MySQLd Exporter   
After=network.target[Service]   
Type=simple   
User=mysqld_exporter   
Group=mysqld_exporter   
WorkingDirectory=/data/jk/mysqld_exporter-0.17.2.linux-amd64   
ExecStart=/data/jk/mysqld_exporter-0.17.2.linux-amd64/mysqld_exporter \\--config.my-cnf=/data/jk/mysqld_exporter-0.17.2.linux-amd64/.my.cnf   
Restart=on-failure   
RestartSec=5s   
LimitNOFILE=65536   
[Install]   
WantedBy=multi-user.target   
EOF'   

在这里插入图片描述

5.2.4运行mysqld_exporter

sudo systemctl daemon-reload            # 重新加载配置   
sudo systemctl start mysqld_exporter    # 启动服务   
sudo systemctl enable mysqld_exporter   # 开机自启   

在这里插入图片描述

5.2.5验证服务是否正常

sudo systemctl status mysqld_exporter   # 检查状态
curl http://localhost:9104/metrics      # 测试指标采集(默认端口9104)

在这里插入图片描述

5.2.6Prometheus配置监控mysqld_exporter

5.2.6.1 配置Prometheus抓取任务

Prometheus通过prometheus.yml配置需要监控的目标(称为“Job”)。我们需要添加对mysqld_exporter 的抓取任务:

vim /data/jk/prometheus-3.7.2.linux-amd64/prometheus.yml
5.2.6.2 验证配置并重启Prometheus
http://ip:9090/targets
systemctl restart prometheus
5.2.6.3 查看监控目标状态

访问Prometheus Web界面(http://服务器IP:9090/targets),在“Status”列应看到UP状态,说明Prometheus已成功抓取mysqld_exporter 的指标。
在这里插入图片描述

六、Grafana配置Prometheus数据源

6.1 添加数据源

6.1.1登录Grafana(http://服务器IP:3000),点击左侧菜单l 连接> 数据源。

在这里插入图片描述

6.1.2在URL字段填写Prometheus的访问地址(如http://192.168.1.100:9090)

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

6.2 导入仪表盘模板

6.2.1仪表板—》新建—》新建仪表板

在这里插入图片描述

6.2.2导入仪表板-----》服务器监控–》8919

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

6.2.3导入仪表板-----》数据库监控–》7362

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

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

http://www.dtcms.com/a/531768.html

相关文章:

  • html5电影网站如何做企业网站流量怎么做
  • <数据集>yolo煤矿安全帽识别数据集<目标检测>
  • excel中加载数据分析工具的步骤
  • 一文厘清:文库 vs 知识库、核心功能清单、开源方案对比
  • 图片转excel vlm 提取手写清单信息 Qwen/Qwen3-VL-235B-A22B-Instruct
  • webrtc代码走读(七)-QOS-FEC-ulpfec rfc5109
  • 第十五章认识Ajax(六)
  • 逻辑回归解释
  • B038基于博途西门子1200PLC物料分拣控制系统仿真
  • 第十二章认识Ajax(三)
  • Spring Boot3零基础教程,安装 docker,笔记67
  • FLOW翻译
  • 第十六章jQuery中的Ajax
  • 实现 AI 流式响应:从等待到实时交互的技术解析
  • 东莞站福公司工资室内设计手绘图 基础入门
  • HTTPS 加密原理介绍
  • 小白python入门 - 9. Python 列表2 ——从基础操作到高级应用
  • 日本生活-东京新干线乘车经验-流程介绍
  • 实现用户角色权限的动态注册路由
  • 推荐几个安全没封的网站网站搭建的人
  • 数据结构:顺序表讲解(总)
  • 1. 简单回顾Numpy神经网络
  • ArkTS 中 @State 底层原理详解
  • Post-training-of-llms TASK05
  • 项目实战复盘:基于仓颉语言的鸿蒙智能导航助手(HarmonyNav)
  • Datawhale AI秋训营|RAG 多模态相关 TASK1 /Task 2 Baseline笔记(待优化)
  • 龙华新区城市建设局网站网页布局是指什么
  • 【系统分析师】高分论文:论需求分析在项目中的应用(智慧市场监管项目)
  • LeetCode128. 最长连续序列
  • go-stream(一些常用命令介绍,以及在go-tcp中使用)