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

​Prometheus+Grafana监控系统配置与部署全解

前言:

        随着企业数字化转型的深入,系统稳定性已成为业务连续性的重要保障。传统监控工具往往存在配置复杂、扩展性差等问题。Prometheus作为云原生时代的主流监控解决方案,以其强大的数据采集能力和灵活的查询语言获得广泛认可。结合Grafana的优秀可视化功能,可以构建出一套功能完善、易于维护的监控体系。本文将从实战角度出发,系统讲解监控系统各组件的部署配置流程,帮助读者快速掌握企业级监控系统的搭建技能。

目录

1.1 监控系统组件概述

1.2 Prometheus部署流程

1.3 Node Exporter配置

1.4 Grafana安装与数据源配置

1.5 仪表板模板导入与管理

1.6 MySQL监控专项配置

1.7 告警系统配置

1.8 故障排查与优化

总结


1.1 监控系统组件概述

  • Prometheus核心功能:负责采集和存储时序数据,通过exporter监控Linux、MySQL等目标。

  • Node Exporter作用:暴露主机级硬件和操作系统指标(如CPU、内存、磁盘),默认端口9100。

  • Grafana定位:可视化平台,通过导入仪表板模板展示Prometheus收集的数据,默认端口3000。

  • 组件关系:Node Exporter采集数据 → Prometheus拉取数据 → Grafana可视化展示。

1.2 Prometheus部署流程

安装步骤

  1. 解压安装包:tar xf prometheus-*.tar.gz

  2. 移动至系统目录:mv prometheus-* /usr/local/prom

  3. 创建软链接:ln -s /usr/local/prom/prometheus /usr/bin/

  4. 启动服务(指定配置文件):

     nohup /usr/local/prom/prometheus --config.file=/usr/local/prom/prometheus.yml &

关键配置文件解析

  • 默认监控目标:prometheus.yml中定义job监控自身9090端口

  • 配置项说明:

     scrape_configs:- job_name: 'prometheus'  # 任务名称static_configs:- targets: ['localhost:9090']  # 监控目标地址

1.3 Node Exporter配置

部署流程

  1. 启动Node Exporter:

     nohup ./node_exporter --web.listen-address :9100 &
  2. 修改Prometheus配置,添加监控任务:

     - job_name: 'node'static_configs:- targets: ['localhost:9100']  # Node Exporter地址
  3. 重启Prometheus服务使配置生效。

指标验证方法

  • 访问Prometheus UI(9090端口)http://192.168.72.176:9090,查询node_cpu_seconds_total验证数据采集

  • 直接访问Node Exporter(9100端口)http://192.168.72.176:9100/metrics获取原始指标数据

1.4 Grafana安装与数据源配置

安装方式

  • RPM包安装:rpm -ivh grafana-*.rpm

  • 服务管理:

     systemctl start grafana-server  # 启动服务systemctl enable grafana-server # 设置开机启动

初始化操作

  1. 访问http://<IP>:3000,初始账号密码admin/admin

  2. 汉化设置:

    • 管理 → 通用 → 语言 → 选择中文

  3. 添加Prometheus数据源:

    • 名称:Prometheus

    • URL:http://localhost:9090

    • 保存并测试连通性

1.5 仪表板模板导入与管理

模板来源

  • 官方仪表板库:https://grafana.com/grafana/dashboards/

  • 常用模板ID:

    • Linux主机监控:1860

    • MySQL监控:7362

导入流程

  1. 导航至"仪表板" → "导入" → 输入模板ID

  2. 选择数据源为已配置的Prometheus

  3. 命名仪表板并保存

模板问题处理

  • 数据未显示:检查数据源是否匹配,指标采集是否正常

  • 面板报错:"Panel plugin not found":需安装对应插件如grafana-piechart-panel

1.6 MySQL监控专项配置

部署mysql_exporter

  1. 启动exporter:

     ./mysqld_exporter --config.my-cnf=./.my.cnf
  2. 配置文件 .my.cnf内容:

     [client]user=rootpassword=your_password

Grafana配置要点

  • 导入MySQL专用仪表板(如ID7362

  • 验证指标:

    • 查询mysql_global_status_uptime确认运行时间

    • 检查mysql_version_info获取版本信息

1.7 告警系统配置

Prometheus告警规则

  1. 配置示例(CPU使用率告警):

    groups:
    - name: cpu-alertsrules:- alert: HighCPUUsageexpr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 3for: 2mlabels:severity: warningannotations:summary: "High CPU Usage on {{ $labels.instance }}"description: "CPU usage has been above 5% for the last 2 minutes on instance {{ $labels.instance }}."

告警通道配置

  • 邮件告警修改prometheus.yml:

    # Alertmanager configuration
    alerting:alertmanagers:- static_configs:- targets:- localhost:9093    # Alertmanager地址# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
    rule_files:# - "first_rules.yml"# - "second_rules.yml"- "/usr/local/prom/rules/*.yml"    # 告警规则文件
    
  • 修改alertmanager.yml配置文件

    [root@prometheus alert]# cat alertmanager.yml
    global:smtp_smarthost: 'smtp.gmail.com:587'smtp_from: 'your-alertmanager-email@gmail.com'smtp_auth_username: 'your-alertmanager-email@gmail.com'smtp_auth_password: 'your-email-password'smtp_require_tls: false
    route:group_by: ['alertname']group_wait: 30sgroup_interval: 5mrepeat_interval: 1hreceiver: 'default'
    receivers:- name: 'default'email_configs:- to: 'user1@example.com,user2@example.com'send_resolved: true
    inhibit_rules:- source_match:severity: 'critical'target_match:severity: 'warning'equal: ['alertname', 'dev', 'instance']
  • 启动Alertmanager:

     nohup ./alertmanager --config.file=alertmanager.yml &

告警测试方法

  1. 触发CPU负载:while true; do echo test; done

  2. 在Prometheus UI的"Alerts"页验证状态变为"Pending"→"Firing"

  3. 检查邮件接收情况(配置延迟约1-5分钟)

当CPU负载恢复正常后,会再发一封邮件(配置延迟5分钟左右)

1.8 故障排查与优化

常见问题处理

现象原因解决方案
Grafana面板无数据数据源配置错误检查Prometheus URL及端口
"Panel plugin not found"缺少可视化插件安装对应插件(如grafana-piechart-panel
告警邮件未发送SMTP配置错误验证alertmanager.yml中邮箱参数
指标采集失败exporter未运行检查Node/mysql_exporter进程状态

性能优化建议

  • 大规模集群部署独立Alertmanager,避免Grafana内置告警性能瓶颈

  • 使用irate()替代rate()处理高动态指标,避免峰值平滑

  • 模板开发规范:

    • 指标命名遵循exporter名_指标类型_单位(例:node_cpu_seconds_total

    • 避免单仪表板加载过多面板(超过20个影响性能)

总结:

        通过本文的完整实践指南,我们可以构建出一套涵盖数据采集、存储、展示和告警的完整监控体系。该方案具有以下优势:组件轻量易部署,支持多种数据源采集;Grafana提供丰富的可视化能力,支持模板化快速部署;Alertmanager实现灵活的告警路由和多种通知方式。在实际应用中,建议根据业务特点调整监控指标和告警阈值,并定期进行系统优化和故障演练。这套监控系统不仅能够及时发现系统异常,更能为性能优化和容量规划提供数据支撑,是企业运维体系中不可或缺的重要组成部分。


文章转载自:

http://KHyvjVum.jfjsj.cn
http://ICnxr7Zf.jfjsj.cn
http://mpNE42Ke.jfjsj.cn
http://OxY5pZ3N.jfjsj.cn
http://WnhZZ4UQ.jfjsj.cn
http://L80stp1N.jfjsj.cn
http://BJeyewaU.jfjsj.cn
http://Pb9jyX9r.jfjsj.cn
http://L8i5DPnZ.jfjsj.cn
http://zMV08YPo.jfjsj.cn
http://KJUYuOFA.jfjsj.cn
http://dLjUWI5x.jfjsj.cn
http://tead9cql.jfjsj.cn
http://sjq6bbYC.jfjsj.cn
http://Ufjo7lbB.jfjsj.cn
http://YBioxTER.jfjsj.cn
http://irD0X1wG.jfjsj.cn
http://F2caQIgA.jfjsj.cn
http://z6cYekYg.jfjsj.cn
http://ciX4YsAa.jfjsj.cn
http://bxnR5iMe.jfjsj.cn
http://P0GxlSQG.jfjsj.cn
http://qXqE7vw4.jfjsj.cn
http://4lzcG7hI.jfjsj.cn
http://sJIOrE1d.jfjsj.cn
http://Nagjdu5t.jfjsj.cn
http://iQtYCkE0.jfjsj.cn
http://9mq4Ouq8.jfjsj.cn
http://mzKlEKrn.jfjsj.cn
http://RybwMoWx.jfjsj.cn
http://www.dtcms.com/a/382889.html

相关文章:

  • 电路调试过程中辨认LED正负极并焊接
  • ubuntu24.04 缺少libwebkit2gtk-4.0和libssl.so.1.1
  • eslint-config-encode 使用指南
  • MySQL高阶查询语句与视图实战指南
  • 金融数学与应用数学(金融方向)课程重合度高吗?
  • 知识沉淀过于碎片化如何形成体系化框架
  • 第二十篇|SAMU教育学院的教育数据剖析:制度阈值、能力矩阵与升学网络
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
  • dockercompose和k8s区别
  • HENGSHI SENSE 6.0技术解密:边缘计算+Serverless架构如何重构企业级BI实时性
  • Delphi - IndyHttpServer接收上传文件
  • 1.linux环境配置+ssh远程连接vscode调试(问题:无法联网,无法共享粘贴板,不满足运行vscode服务器的先决条件)
  • unity导入blender动画
  • 【杂谈】-备份革命:解锁AI时代的“死数据“金矿
  • npm 发布流程——从创建组件到发布到 npm 仓库
  • 单变量单步时序预测 | TCN-GRU时间卷积神经网络结合门控循环单元
  • 分布式协议与算法实战-理论篇
  • 《sklearn机器学习——数据预处理》生成多项式特征
  • XLua教程之入门篇
  • java学习笔记----标识符与变量
  • C7.1:谐振和调谐的含义
  • 代码随想录学习(一)——数组理论基础
  • Windows 平台上基于 MCP 构建“文心一言+彩云天气”服务实战
  • leetcode38(二叉树的最大深度)
  • PyTorch实战(7)——循环神经网络
  • 【LeetCode hot100|Week2】滑动窗口,子串
  • Web与Nginx网站服务(改)
  • Qt Designer与事件处理
  • 347. 前 K 个高频元素
  • Qt之快捷键、事件处理、自定义按键——完成记事本项目