首页 > 系统相关 >【Linux 从基础到进阶】实时性能监控与调优(Prometheus、Grafana)

【Linux 从基础到进阶】实时性能监控与调优(Prometheus、Grafana)

时间:2024-10-25 09:50:42浏览次数:7  
标签:node 进阶 Grafana Prometheus 调优 监控 告警

实时性能监控与调优(Prometheus、Grafana)

在现代化运维中,实时性能监控和调优是保障系统稳定性和高效性的重要手段。通过实时的性能监控,运维人员可以快速发现系统瓶颈、异常负载和潜在的故障隐患。本文将介绍如何使用PrometheusGrafana进行系统的实时性能监控,并进行性能调优。

1. Prometheus 简介

Prometheus 是一个开源的系统监控和告警工具,擅长处理时间序列数据,通常与可视化工具 Grafana 配合使用。它的核心组件包括:

  • 数据抓取(Scraping):定期从被监控的系统中拉取监控数据。
  • 存储(Storage):时间序列数据被存储在内置的存储引擎中。
  • 查询语言(PromQL):用于处理和分析监控数据的查询语言。
  • 告警(Alerting):通过内置或第三方告警工具触发告警通知。

1.1 Prometheus 架构

Prometheus 由以下几个核心模块组成:

  • Prometheus Server:负责抓取监控数据,存储时间序列。
  • Exporter:Prometheus 的数据抓取器,用于从被监控的系统或服务中导出数据。
  • Alertmanager:处理告警事件并发送通知。
  • Grafana:用于可视化展示监控数据。

2. Grafana 简介

Grafana 是一个开源的、功能强大的可视化工具,支持从多种数据源中展示监控数据。其主要功能包括:

  • 仪表板(Dashboard):可通过不同图表展示各种数据。
  • 多数据源支持:支持包括 Prometheus、Elasticsearch、MySQL 等多种数据源。
  • 告警功能:可以设置基于监控数据的告警规则。

通过结合 PrometheusGrafana,可以实现对系统的全面实时监控与优化。

3. Prometheus 和 Grafana 安装与配置

3.1 Prometheus 安装

首先,安装 Prometheus 服务并进行基本配置。以 Ubuntu 系统为例,以下是安装步骤:

1. 下载 Prometheus
wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz
tar -xvf prometheus-2.32.1.linux-amd64.tar.gz
cd prometheus-2.32.1.linux-amd64
2. 启动 Prometheus

编辑 prometheus.yml 配置文件,定义抓取目标:

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9090']

启动 Prometheus:

./prometheus --config.file=prometheus.yml
3. 验证 Prometheus

访问 Prometheus UI:

http://localhost:9090

3.2 Grafana 安装

1. 安装 Grafana

以 Ubuntu 为例,安装 Grafana:

sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get install -y grafana
2. 启动 Grafana
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
3. 访问 Grafana

在浏览器中访问 Grafana 的 web 界面:

http://localhost:3000

默认用户名和密码为 admin/admin,登录后建议立即修改默认密码。

4. 添加 Prometheus 数据源
  • 登录 Grafana 后,进入 “Configuration” -> “Data Sources”。
  • 选择 Prometheus 作为数据源,输入 Prometheus 的地址(如 http://localhost:9090),保存并测试连接。

4. 创建实时监控仪表板

在配置好 Prometheus 数据源后,我们可以开始使用 Grafana 来创建自定义的监控仪表板。

4.1 添加监控面板

  1. 在 Grafana 中,点击 “+” 并选择 “Create” -> “Dashboard”。
  2. 点击 “Add new panel”,选择 “Prometheus” 作为数据源。
  3. 使用 PromQL 查询监控指标。例如,要查看系统的 CPU 使用率,可以输入:
    rate(node_cpu_seconds_total{mode!="idle"}[1m])
    

4.2 常见系统性能指标

  • CPU 使用率

    rate(node_cpu_seconds_total{mode!="idle"}[1m])
    
  • 内存使用情况

    node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes
    
  • 磁盘 I/O 性能

    rate(node_disk_io_time_seconds_total[1m])
    
  • 网络流量

    rate(node_network_receive_bytes_total[1m])
    rate(node_network_transmit_bytes_total[1m])
    

4.3 设置告警

Grafana 可以基于 Prometheus 的监控数据设置告警,步骤如下:

  1. 在面板中,点击 “Alert” -> “Create Alert”.

  2. 定义告警规则,比如当 CPU 使用率超过 80% 时触发告警:

    rate(node_cpu_seconds_total{mode!="idle"}[1m]) > 0.8
    
  3. 配置告警通知方式,可以通过邮件、Slack 等发送告警信息。

5. 性能调优策略

通过实时监控,可以及时发现系统性能瓶颈。常见的性能调优策略包括:

5.1 CPU 调优

  • 确认是否有高负载的进程占用大量 CPU 资源,通过 htoptop 工具确认。
  • 考虑调度策略、进程优先级的优化,必要时添加更多 CPU 核心或调整 CPU 限额。

5.2 内存调优

  • 确保系统内存分配合理,监控缓存、缓冲区占用情况。
  • 如果内存不足,可以考虑增加内存容量或减少不必要的进程负载。

5.3 磁盘 I/O 调优

  • 通过 Prometheus 监控磁盘读写速率,必要时增加磁盘带宽或更换为 SSD。
  • 优化 I/O 密集型应用的读写方式,减小对磁盘的压力。

5.4 网络调优

  • 监控网络带宽使用情况,确认是否有异常流量。
  • 优化网络配置,调整 TCP 参数或网络拓扑,必要时增加网络带宽。

6. 总结

通过结合 Prometheus 和 Grafana,运维人员能够高效地对系统进行实时性能监控和调优。Prometheus 负责收集和存储性能数据,而 Grafana 则提供了强大的可视化能力,使得性能问题一目了然。通过监控 CPU、内存、磁盘、网络等关键资源,可以提前发现潜在的性能瓶颈,并采取有效的调优策略。

标签:node,进阶,Grafana,Prometheus,调优,监控,告警
From: https://blog.csdn.net/weixin_39372311/article/details/143225818

相关文章

  • Vue Router进阶学习
    各位程序员1024节日快乐~VueRouter是Vue.js的官方路由管理器,它和Vue.js的核心深度集成,让构建单页面应用(SPA)变得简单。以下是VueRouter的基本用法VueRouter基本用法安装VueRouter首先,你需要安装VueRouter。如果你使用的是npm,可以使用以下命令:npminstal......
  • 20个基础到进阶版的OpenCV4.9.0趣味项目(C++版)(八)——石头、剪刀、布识别手势识别(传统方
    20个基础到进阶版的OpenCV4.9.0趣味项目(C++版)(八)——石头、剪刀、布识别手势识别(传统方法)文章目录20个基础到进阶版的OpenCV4.9.0趣味项目(C++版)(八)——石头、剪刀、布识别手势识别(传统方法)一、引言二、核心知识1.YCrCb空间转换和提取1)YCrCb色彩空间:2)分割:2.凸包凸包计算......
  • DAY42 ||完全背包理论 | 518. 零钱兑换 II | 377. 组合总和 Ⅳ|70. 爬楼梯 (进阶)
    完全背包理论什么是完全背包:有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。完全背包和01背包问题唯一不同的地方就是,每种物品有无限件。不......
  • Cursor零基础小白教程系列「进阶」 - Cursor 智能代码补全详解(Tab)
    最适合小白零基础的Cursor教程网站lookai.top相同作者,最新文章会在网站更新,欢迎收藏书签Cursor智能代码补全详解(Tab)概述Cursor的智能代码补全,也就是快捷键Tab,是其最强大和独特的AI辅助编程工具之一。本教程将详细介绍Tab功能的使用方法,通过掌握Tab功能,您将显著提......
  • 昇思MindSpore进阶教程--Diffusion扩散模型(下)
    大家好,我是刘明,明志科技创始人,华为昇思MindSpore布道师。技术上主攻前端开发、鸿蒙开发和AI算法研究。努力为大家带来持续的技术分享,如果你也喜欢我的文章,就点个关注吧数据准备与处理在这里我们定义一个正则数据集。数据集可以来自简单的真实数据集的图像组成,如Fashio......
  • 【python学习记录篇】09.Python函数进阶,上难度了上难度了
    小白学习纪实,跨专业学python的第九天~没想到python也要学函数......真是干的漂亮......    9.1函数    9.1.1函数的意义    在生活中,试想一下我们用手洗衣服的时候,我们需要接水,放入脏衣服,放入洗衣液,然后一件件用手搓,每次洗衣服的时候都要这样干,很......
  • CMDB平台(进阶篇):企业级CMDB的高阶教程
    企业IT架构日益复杂,配置项数量庞大且关系错综复杂。为了有效管理这些配置项,确保IT服务的稳定性和可靠性,配置管理数据库(ConfigurationManagementDatabase,简称CMDB)系统应运而生。本文将深入探讨企业搭建CMDB系统所需具备的要素,以及实践路径,旨在为企业提供有益的参考和指导。 ......
  • 网管平台(进阶篇):网管系统的正确使用“姿势”
    在信息化高速发展的今天,企业网络已成为业务运营的核心支撑。为了有效管理这一复杂且不断扩展的网络环境,网管系统(网络管理系统)应运而生。正确使用网管系统不仅能够提升网络管理效率,还能显著增强网络的安全性。本文旨在探讨如何正确使用网管系统,以最大化其效益。 一、明确网管系......
  • 黑马程序员Java进阶学习(三)
    异常Java的异常体系异常的基本处理异常的作用异常是什么?异常是代码在编译或者执行的过程中可能出现的错误。异常的代表是谁?分为几类?Exception,分为两类:编译时异常、运行时异常。编译时异常:没有继承RuntimeExcpetion的异常,编译阶段就会出错。运行时异常:继承自Runtim......
  • 【java】抽象类和接口(了解,进阶,到全部掌握)
    各位看官早安午安晚安呀如果您觉得这篇文章对您有帮助的话欢迎您一键三连,小编尽全力做到更好欢迎您分享给更多人哦大家好我们今天来学习Java面向对象的的抽象类和接口,我们大家庭已经来啦~一:抽象类1.1:抽象类概念在面向对象的概念中,所有的对象都是通过类来描绘的,但是......