Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: 本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。

《Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松》

一、概述

本文使用Prometheus+Grafana+Node Exporter搭建Linux主机监控系统:

  • Prometheus 是一个监控系统,可以收集和存储来自各个目标的指标数据。它支持多种数据源,包括 Node Exporter。


添加图片注释,不超过 140 字(可选)


  • Grafana 是一个可视化工具,可以用于可视化 Prometheus 收集到的指标数据。它提供了多种仪表盘和图表类型,可以帮助您快速了解监控数据。


添加图片注释,不超过 140 字(可选)


  • Node Exporter是一个进程,可以收集 Linux 主机的各种指标数据,并将其暴露为 Prometheus 可以抓取的 HTTP 端点。

二、安装

环境准备

以下是本文所需的环境:

  • 一台运行 Linux 的服务器(建议使用 CentOS 或 Ubuntu)
  • Docker
  • Prometheus 和 Grafana
  • Node Exporter

1、安装prometheus

这里我们可以在github上获取最新的版本:https://github.com/prometheus/prometheus

vim prometheus.yml # my global config global:   scrape_interval:     15s # 采集被监控段指标的一个周期   evaluation_interval: 15s # 告警评估的一个周期 # 告警的配置文件 alerting:   alertmanagers:   - static_configs:     - targets:       # - alertmanager:9093 # 告警规则配置 rule_files:   # - "first_rules.yml" # 被监控端的配置,目前只有一个节点,就是prometheus本身 scrape_configs:   - job_name: 'prometheus'     static_configs:     - targets: ['localhost:9090'] docker run -d  -p 9090:9090 \ --name prometheus  \ --restart on-failure  \ -v /data/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus

完全启动后可以,访问Prometheus自带的UI:http://xx.xx.xx.xx:9090/,打开以下页面说明安装成功。


添加图片注释,不超过 140 字(可选)


2、安装grafana

docker  run -d --name=grafana  -p 3000:3000  grafana/grafana

执行后,下载镜像并启动。完成启动完成,打开http://xx.xx.xx.xx:3000,默认用户名/密码:admin/admin


添加图片注释,不超过 140 字(可选)


3、安装node_exporter

cd /usr/local/src/ wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gztar -xvf node_exporter-1.6.1.linux-amd64.tar.gz mv /usr/local/src/node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin vim /usr/lib/systemd/system/node_exporter.service

node_exporter.service文件内容:

[Unit] Description=node_exporter Documentation=https://prometheus.io/ After=network.target [Service] ExecStart=/usr/local/bin/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target systemctl daemon-reload systemctl enable node_exporter systemctl restart node_exporter

启动后打开这个地址:http://xx.xx.xx.xx:9100/


添加图片注释,不超过 140 字(可选)



添加图片注释,不超过 140 字(可选)


以上页面能打开说明安装成功。

如果安装失败可以使用:

systemctl status node_exporter

看看有什么异常。

4、配置prometheus

# 启动后,配置prometheus.yml vim /data/prometheus/prometheus.yml scrape_configs:   # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.   - job_name: 'prometheus'     # metrics_path defaults to '/metrics'     # scheme defaults to 'http'.     static_configs:     - targets: ['xx.xx.xx.xx:9090']   # 新增,采集node_exporter监控数据   - job_name: "Linux-Metrics"     static_configs:     - targets: ['xx.xx.xx.xx:9100'] # 重新启动prometheus systemctl restart prometheus


三、使用

http://xx.xx.xx.xx:3000,默认用户名/密码:admin/admin


添加图片注释,不超过 140 字(可选)


选择 "Add your first data source"


添加图片注释,不超过 140 字(可选)


进入后选择Prometheus


添加图片注释,不超过 140 字(可选)


填写相关信息


添加图片注释,不超过 140 字(可选)


添加Prometheus模板


添加图片注释,不超过 140 字(可选)


输入id号,9276


添加图片注释,不超过 140 字(可选)


然后下拉,选择Prometheus,然后Import


添加图片注释,不超过 140 字(可选)


成功展示来由Prometheus数据


添加图片注释,不超过 140 字(可选)


至此整个Linux主机监控就完成了。

四、补充

1、Dashboard模板

如果不知道使用什么模板可以找个教程使用教程里的就好,如果想进一步了解下模板可以去官网这里搜索相应的模板。https://grafana.com/grafana/dashboards ,里面可以输入关键词搜索,还有相应的下载量排名或评分排名。


添加图片注释,不超过 140 字(可选)


选择一个,点击进入详情页面,可以复制ID


添加图片注释,不超过 140 字(可选)


2、数据对照


添加图片注释,不超过 140 字(可选)


可以看到有些数据与top是一致的,有的不一致。主要是计算的方式不一致,可以选择一个统计图,点击标题


添加图片注释,不超过 140 字(可选)


Edit进入详情。


添加图片注释,不超过 140 字(可选)


比如已用内存它是根据这个计算公式算出来的。这样再对照着top的数据就是一致的了。

3、自定义模板

上面说到可以Edit进入dashboard详情,可以看到这么多的表达式。如果我们想调整这里的数据或过滤条件就可以编辑这些参数了。

当然从Edit进入的是单个统计模块,也可以从这里进入整个dashboard模板。修改这里的json


添加图片注释,不超过 140 字(可选)



添加图片注释,不超过 140 字(可选)


再来说一下这个表达式,这个表达式也就是PromQL 语言。

Grafana Dashboard 中的表达式是 PromQL 语言,它是 Prometheus 的指标查询语言。PromQL 是一种基于 Prometheus 数据模型的查询语言,可以用于查询和过滤 Prometheus 的指标数据。

PromQL 表达式可以用于以下目的:

  • 查询指标数据
  • 过滤指标数据
  • 计算指标数据
  • 对指标数据进行聚合

PromQL 表达式使用以下语法:

[指标名] [操作符] [值]

例如,以下表达式将查询 CPU 使用率的指标数据:

cpu_usage

以下表达式将查询 CPU 使用率的指标数据,并将其限制为 100%:

cpu_usage < 100

以下表达式将计算 CPU 使用率的指标数据的平均值:

avg(cpu_usage)

以下表达式将将 CPU 使用率的指标数据按主机聚合:

by(host) cpu_usage

PromQL 语言具有丰富的功能,可以满足各种监控需求。

以下是一些常用的 PromQL 表达式:

  • 查询指标数据

cpu_usage

  • 过滤指标数据

cpu_usage < 100

  • 计算指标数据

avg(cpu_usage)

  • 对指标数据进行聚合

by(host) cpu_usage

如何简单调试PromQL,可以打开prometheus自带的web ui进入调试

添加图片注释,不超过 140 字(可选)



相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
目录
相关文章
|
2月前
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
146 20
|
2月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
194 7
|
2月前
|
Prometheus 监控 前端开发
Grafana 安装配置教程,让你的 Prometheus 监控数据变得更美观
《Grafana安装配置教程,让你的Prometheus监控数据变得更美观》简介: Grafana是一个开源的度量分析与可视化工具,支持多种数据源(如Prometheus),提供丰富的可视化功能和警报机制。本文详细介绍了Grafana的安装、汉化方法及模板使用,帮助用户轻松创建美观、灵活的数据面板,并实现数据的协作与共享。通过Docker镜像、配置文件修改或替换前端页面等方式实现汉化,让用户更便捷地使用中文界面。此外,还提供了导入JSON格式模板的具体步骤,方便快速搭建仪表盘。
92 2
|
2月前
|
Prometheus Cloud Native Linux
Prometheus+Grafana新手友好教程:从零开始搭建轻松掌握强大的警报系统
本文介绍了使用 Prometheus 和 Grafana 实现邮件报警的方案,包括三种主要方法:1) 使用 Prometheus 的 Alertmanager 组件;2) 使用 Grafana 的内置告警通知功能;3) 使用第三方告警组件如 OneAlert。同时,详细描述了环境准备、Grafana 安装配置及预警设置的步骤,确保用户能够成功搭建并测试邮件报警功能。通过这些配置,用户可以在系统或应用出现异常时及时收到邮件通知,保障系统的稳定运行。
164 1
|
3月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
416 3
|
3月前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
159 2
|
8月前
|
Prometheus 监控 Cloud Native
基于Prometheus和Grafana的监控平台 - 环境搭建
基于Prometheus和Grafana的监控平台 - 环境搭建
|
3月前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
406 0
|
6月前
|
Prometheus 监控 Cloud Native
prometheus学习笔记之Grafana安装与配置
prometheus学习笔记之Grafana安装与配置
|
6月前
|
Prometheus 监控 Cloud Native
自定义grafana_table(数据源Prometheus)
综上所述,自定义 Grafana 表格并将 Prometheus 作为数据源的关键是理解 PromQL 的查询机制、熟悉 Grafana 面板的配置选项,并利用 Grafana 强大的转换和自定义功能使数据展示更为直观和有洞见性。随着对这些工具更深入的了解,您将可以创建出更高级的监控仪表盘,以支持复杂的业务监控需求。
415 1