性能监控-grafana+prometheus+node_exporter

2023-11-05

Prometheus是一个开源的系统监控和报警工具。它由SoundCloud开发并于2012年发布,后来成为了一个独立的开源项目,并得到了广泛的应用和支持。

Prometheus的主要功能包括采集和存储各种系统和应用程序的监控数据,并提供强大的查询语言PromQL来分析和查询数据。它支持多种数据采集方式,包括主动式推送和被动式拉取。同时,Prometheus还提供了灵活的可视化和报警功能,用于监控系统的性能、负载、可用性等指标,并及时发出警报以便及时处理问题。

Prometheus以其可靠性、可扩展性和易于使用而受到广泛的欢迎和应用,被许多云原生应用和容器化环境所采用。它与其他工具和系统的集成也很方便,例如Grafana用于数据可视化、Alertmanager用于报警管理等。总的来说,Prometheus是一个功能强大的监控工具,适用于各种规模和类型的系统和应用。

 下载prometheus

Download | Prometheus

Download | Prometheus

下载prometheus,解压,运行

./prometheus

并访问http://localhost:9090/进入主页

node_exporter

Node Exporter 是一个用于 Prometheus 监控系统的开源项目,用于收集和暴露有关主机操作系统(如 CPU、内存、磁盘、网络等)的相关指标。

Node Exporter 通过运行在受监控主机上的一个独立进程来收集系统资源使用情况。它会访问操作系统的各种接口和文件系统,如 `/proc`、`/sys`、`/procfs` 等,从中收集有关主机的性能指标。

一些 Node Exporter 支持的指标包括:

1. CPU 相关指标:包括 CPU 负载、各个 CPU 核心的使用率、中断次数等。

2. 内存相关指标:包括总内存、可用内存、内存使用率、缓存和缓冲区使用量等。

3. 磁盘相关指标:包括磁盘空间使用率、磁盘 I/O、磁盘队列长度等。

4. 网络相关指标:包括网络流量、连接数、网络错误等。

5. 系统负载和 Uptime 相关指标:包括系统平均负载、开机时间等。

Node Exporter 提供了一个 HTTP 接口,通过该接口可以将收集到的指标以 Prometheus 格式的样式暴露出来,从而使 Prometheus 可以定期抓取和存储这些指标,并进行进一步的分析和可视化。

在实际使用中,通常需要在要监控的主机上部署 Node Exporter,并在 Prometheus 配置文件中添加相应的 job 来监控该主机。这样,Prometheus 就可以通过 Node Exporter 收集并存储主机的指标数据,以供后续查询和监控使用。

服务器安装node_exporter

Exporter是Prometheus的指标数据收集组件。它负责从目标Jobs收集数据,并把收集到的数据转换为Prometheus支持的时序数据格式。 和传统的指标数据收集组件不同的是,他只负责收集,并不向Server端发送数据,而是等待Prometheus Server 主动抓取,node-exporter 默认的抓取url地址:http://ip:9100/metrics

文档:使用节点导出器监控 Linux 主机指标 |普罗 米修斯 (prometheus.io)

在需要监控的服务器上安装node_exporter 

GitHub - prometheus/node_exporter: Exporter for machine metrics

Release 1.6.1 / 2023-06-17 · prometheus/node_exporter (github.com)

wget 对应版本的地址
tar xvfz node_exporter-*.*-amd64.tar.gz
cd node_exporter-*.*-amd64
chmod 777 node_exporter
./node_exporter
 

 后台启动

要在Linux系统中以后台方式运行`./node_exporter`,你可以使用以下命令:


nohup ./node_exporter &
 

在这个命令中,`nohup` 表示忽略掉挂起信号,`&` 表示在后台运行命令。

这样做后,`./node_exporter` 将在后台一直运行,即使你退出当前的终端或者关闭SSH连接,它也会继续运行。你可以通过查看日志文件或进程查看程序的运行状态。

配置Prometheus


1、记事本打开prometheus.yml文件,增加配置

  - job_name: 'linux-exporter'
    metrics_path: /metrics
    static_configs:
    targets: ['服务器IP:9100']

 重新启动prometheus.exe,访问http://localhost:9090/targets
观察对应服务器State状态为UP即为配置成功。

我这里端口没开,所以状态不对。

点进端点显示,metrics就是记录的服务器数据。

expression browser

在graph输入表达式,点击Execute可以看到结果

 

Prometheus 提供了一种名为 PromQL (Prometheus Query ) 的函数式查询语言 语言),允许用户实际选择和聚合时间序列数据 时间。表达式的结果可以显示为图形,查看为 普罗米修斯表达式浏览器中的表格数据,或外部使用的表格数据 系统通过 HTTP API 

查询基础知识 |普罗 米修斯 (prometheus.io)

配置grafana并添加数据源

Grafana | Prometheus
1、进入grafana左侧工具栏点击Data Sources添加数据源

导入模板

模板资源:Dashboards | Grafana Labs

Grafana | Prometheus

模板ID号:12633,选择prometheus数据源。

因项目经常变更服务器,采用grafana及Prometheus本地安装。更换服务器只需在服务器安装node_exporter并配置Prometheus.yml即可实现对服务器的监控。

但是导入模板后,这里并没有显示数据。--后来发现是自己把prometheus里端口写错了,应该写node_Exporter的9100,写成了9090。

修改后数据可以看到了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

性能监控-grafana+prometheus+node_exporter 的相关文章

  • 每次出现错误时使用 prometheus 创建警报

    我是普罗米修斯和警报系统的新手 我开发了一个微服务并添加了指标代码 以便在出现错误时获取增量总数 现在我正在尝试创建一个警报 以便每当错误增加时 它应该标记出来并发送邮件 但我无法针对这种情况形成正确的查询 我使用了诸如 error tot
  • Grafana 多值浮点 histogram_quantile

    嗨 我正在强制解决 histogram quantile 问题 如果我将变量设置为多值 这样我就可以重复面板 然后我收到错误消息 字符 21 处解析错误 意外字符 我的要求是 histogram quantile percentile av
  • 如何在多地点场景下配置Prometheus?

    我喜欢使用 Prometheus 进行监控和警报 到目前为止 我的所有目标 节点和容器 都与监控服务器位于同一网络上 但现在我面临一个场景 我们将应用程序堆栈 作为一堆 Docker 容器 部署到网络中的多台客户端计算机 几乎所有客户端网络
  • Prometheus AlertManager - 根据路由向不同客户端发送警报

    我有2个服务A and B我想监控 我还有 2 个不同的通知渠道X and Y形式为receivers在 AlertManager 配置文件中 我想发送通知X如果服务A出现故障并想要通知Y如果服务B下跌降落 我怎样才能实现这个我的配置 我的
  • 如何获取prometheus中(当前)建立的TCP连接数(kubernetes监控)

    我在 Linux 中使用此命令来查看 当前 建立的 TCP 连接 netstat ant grep ESTABLISHED wc l 我如何将此命令转换为 PromQL 每个节点 我在 kubernetes 集群中使用带有节点导出器的 pr
  • 无法在 Spring Boot 2(版本 2.0.0.M7)中包含 Prometheus 指标

    无法在 Spring Boot 2 版本 2 0 0 M7 项目中包含 Prometheus 指标 根据千分尺文档 https micrometer io docs ref spring 2 0 prometheus added sprin
  • 使用 Puppet 配置远程规则集

    我正在尝试使普罗米修斯自动化node exporter和我的普罗米修斯服务器 为了node exporter我已经编写了一个模块来安装所有需要的软件包 设置 ipaddress基于facter还有更多 现在我想确保收集到的信息 hostna
  • 禁用对特定主机的警报,同时对所有其他主机发出警报

    我有数百台主机向普罗米修斯服务器报告 我的每个主机有很多出口商 我希望能够列出我不希望收到警报的主机列表 我仍然需要对这些主机进行普罗米修斯监控 我尝试过匹配没有接收器的路线 这不起作用 我究竟做错了什么 或者说 我应该怎么做 我的路线规则
  • 如何链接到grafana表中的外部站点

    如何创建包含外部站点超链接的单元格列 我可以嵌入文本并通过数据源传递它 不幸的是 grafana 不会将纯文本转换为超链接 例如 我可以使用以下文本创建一个单元格 https www google com search q hot dogs
  • 如何在ubuntu中安装最新版本的prometheus/promtool?

    我下载的prometheus版本是2 3 2 wget https github com prometheus prometheus releases download v2 3 2 prometheus 2 3 2 linux amd64
  • 如何使用 re2 正则表达式否定字符串模式?

    我正在使用谷歌re2 https github com google re2 wiki Syntax用于查询目的的正则表达式普罗米修斯 https prometheus io docs prometheus latest querying
  • 使用 Azure AD OAuth 进行 Grafana 角色分配

    我正在尝试使用 Azure AD OAuth 在 Grafana 中为某些用户组分配管理员角色 我可以使用此文档使用 Azure AD 凭据成功登录 使用 Azure Active Directory 设置 OAuth2 https gra
  • 如何获取普罗米修斯中速率的分位数

    我正在看这个article https www robustperception io how does a prometheus histogram work TYPE prometheus http request duration s
  • 获取 Pod 处于挂起状态的平均时间

    我正在尝试使用 prometheus 计算 pod 在 grafana 中处于挂起状态的平均时间 我可以使用此查询生成一个图表 以获取一段时间内处于挂起状态的 Pod 数量 sum kube pod status phase phase P
  • 如何重置grafana的admin密码(由helm安装)

    我的密码曾经有效 但我不记得是否更改过 但是 我无法重置它 我尝试过但没有成功 kubectl get secret namespace default grafana o jsonpath data admin password base
  • 使用 Prometheus 获取总磁盘空间和可用磁盘空间

    我尝试获取 Kubernetes VM 上的总磁盘空间和可用磁盘空间 以便可以显示其已占用空间的百分比 我尝试了名称中包含 文件系统 的各种指标 但没有一个显示正确的总磁盘大小 应该使用哪一个来做到这一点 这是我尝试过的指标列表 node
  • 正则表达式对系列的普罗米修斯评分

    我使用以下查询来根据名称获取一些指标 name bus listener processed 有多个指标与此名称匹配 并且多个应用程序正在发布这些指标 我正在尝试计算此费用 rate name bus listener processed
  • 丢失系列/数据的警报

    我试图了解当指标不再被抓取时如何让 Grafana 提醒我 我在这个例子中使用的指标是mongodb instance uptime seconds 当实例出现故障时 不再生成指标 导致 Prometheus 中指标丢失 此时警报已触发wh
  • 如何使用Prometheus存储Grafana可视化的数据

    在Python的帮助下request get and json loads函数 我能够从 URL 获取数据 数据包含实例列表 其中每个实例都有实例 ID 状态等指标 我的问题是有什么办法可以将这些指标上传到 Prometheus 吗 我研究
  • 在 Vega Lite 中使用二维数组数据代替表格

    我正在尝试从普罗米修斯读取数据 https prometheus io https prometheus io 进入 Vega Lite Prometheus 以二维数组返回其数据 如下所示 1 10 3 6 5 0 9 4 11 2 是否

随机推荐