prometheus中通过node-exporter中的--collector.textfile.directory这一选项参数自定义监控指标

简述node-exporter中该选项参数的作用。

--collector.textfile.directory 是 Node Exporter 的一个命令行选项,用于指定从 textfile 收集器中收集数据的目录。

Node Exporter 会通过各种方式收集主机的度量值,并将这些度量值暴露给 Prometheus。其中之一是 textfile 收集器,它允许您从文本文件中收集指标。这些文本文件通常由其他程序生成,并以固定格式存储在指定的目录中。

使用 --collector.textfile.directory 选项,您可以告诉 Node Exporter 去哪个目录下查找这些文本文件。当 Node Exporter 拉取度量值时,它会扫描该目录下所有符合规则的文件,并将它们解析为度量样本,然后传递给 Prometheus Server。

例如,您可以执行以下命令来启动 Node Exporter 并指定 textfile 目录:

node_exporter --collector.textfile.directory /path/to/textfile/directory

需要注意的是,textfile 收集器并不会自动监控目录中的新文件。相反,它会根据时间表(如 cron 作业)或其他外部机制启动更新。因此,为了确保及时更新数据,请确保您的文本生成进程能够按照预期地更新文本文件。

使用场景

遇到一个需求,需要监控mongoDB中的log日志文件大小,在日志文件过大时需要进行自动报警。

使用流程

1. 环境配置

需要在linux服务器中下载安装prometheus、node-exporter和grafana。

Prometheus是一个开源的系统监控和警报工具,可以收集和处理时间序列数据,并提供查询语言、图形化界面和告警功能。它支持多种数据模型,包括度量值、日志文件和事件等。

Node Exporter是一个Prometheus的客户端,用于监测服务器资源使用情况,例如CPU、内存、磁盘和网络等指标。它能够以Prometheus格式公开指标,并将它们暴露给Prometheus服务器采集。
(由于node-exporter需要监测服务器资源的使用情况,所以不推荐使用docker安装。并且下文中所提到的node-exporter也是直接安装在服务器上的)

Grafana是一个开源的数据可视化和分析平台,支持多种数据源,其中包括Prometheus。它提供了强大的查询和可视化功能,可以创建漂亮的交互式仪表板、图表和报表。Grafana与Prometheus集成得非常紧密,可以轻松地创建仪表板并展示Prometheus中收集到的指标数据。

2. node-exporter启动设置

2.1. 创建node-exporter系统服务

创建系统服务的时候就要设置好node-exporter的启动选项了。
下述代码直接复制粘贴到linux的命令行中即可。
其中--collector.textfile.directory=/root的意思为:在/root目录下的所有以.prom结尾的文件都会被载入node-exporter的监控结果中,并且会一起被prometheus获取到。

cat > /etc/systemd/system/node_exporter.service <<"EOF"
[Unit]
Description=Prometheus node_exporter
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/prometheus/node_exporter/node_exporter --web.listen-address=0.0.0.0:9100 --collector.textfile.directory=/root
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

2.2. 启动 node-exporter

systemctl daemon-reload
systemctl start node_exporter.service
systemctl enable node_exporter.service
systemctl status node_exporter.service

systemctl daemon-reload:重新加载systemd管理的所有服务配置文件,使新添加的或修改过的服务配置文件生效。
systemctl start node_exporter.service:启动名为"node_exporter"的服务。
systemctl enable node_exporter.service:将名为"node_exporter"的服务开机自启动。
systemctl status node_exporter.service:显示名为"node_exporter"的服务的当前状态,包括服务是否正在运行、最近启动时间、进程ID等信息。

到这里就可以获取到/root目录下以.prom结尾文件中的自定义监控指标了。
(这里默认prometheus中已经配置好node-exporter结点了,不再赘述了)

2.3. 示例展示

2.3.1. 创建disk.prom文件

/root目录下创建disk.prom文件,添加下述内容。
在这里插入图片描述

所有自定义生成的指标需要按照如下的方式进行存储:

# HELP disk_free Amount of free space on the disk.
# TYPE disk_free gauge
disk_free{mountpoint="/opt/prometheus/node_exporter"} 123456789

如果没有写help的话,系统会帮助生成一个简单的help描述,但是如果有多个文件中出现相同的指标名称(example_metric),需要保证这些指标的help和type都一致,否则采集将出错. 基本格式也可以参考node_exporter/metrics路径下显示的内容.

2.3.2. 查看node-exporter中是否包含自定义数据

在这里插入图片描述
可见其中包含我们自定义的一个指标。

2.3.3. 查看grafana中展示是否正常

在这里插入图片描述
可见出现了我们想要的指标信息。

3. 补充说明

对于disk.prom文件,我们可以自己编写一些脚本文件自动更新。

自定义采集,需要自己写crontab定时任务,定时执行。所以仿照刚刚实例中的定时任务格式写就好了,sponge是写入管道传来的数据到文件中。tee也可以,tee会输出内容。

之前碰到过一种现象,就是加入数据正在写入,但是prometheus正好拉取,可能会出现拉取出现问题,这里呢,需要先将自定义指标写入一个临时文件,然后将文件mv一下到正式的文件。

可以参考下面解决方案(可在https://github.com/prometheus/node_exporter中找到)
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Prometheus是一个用于监控和度量系统和应用程序的开源工具,而Process Exporter是一个Prometheus的插件,用于监控进程级别的指标。下面是使用Process Exporter监控进程的基本步骤: 1. 下载和安装Process Exporter 首先需要从Process Exporter的官方网站下载适合自己操作系统的二进制文件,并将其安装到需要监控的主机上。 2. 配置Process Exporter 可以使用命令行参数或配置文件来配置Process Exporter。在配置文件,需要指定要监控的进程的名称或PID,并定义指标的名称和标签。例如,以下是一个简单的配置文件: ``` process_names: - name: "my-process" cmdline: - "/usr/local/bin/my-process" metrics: - name: "my_process_cpu_percent" help: "CPU utilization for my-process" type: "gauge" match: name: "my-process" labels: process_name: "my-process" ``` 在这个例子,我们定义了一个名为“my-process”的进程,并且使用了一个名为“my_process_cpu_percent”的指标监控该进程的CPU利用率。我们还定义了一个标签“process_name”,用于标识该指标来自哪个进程。 3. 运行Process Exporter 运行Process Exporter以开始收集指标。可以使用以下命令来启动Process Exporter: ``` ./process-exporter --config.path=/path/to/config.yml ``` 其“/path/to/config.yml”是你刚刚创建的配置文件的路径。 4. 配置PrometheusPrometheus的配置文件,需要添加一个job来收集Process Exporter提供的指标。例如,以下是一个基本的Prometheus配置文件: ``` global: scrape_interval: 15s scrape_configs: - job_name: 'process-exporter' static_configs: - targets: ['localhost:9256'] ``` 在这个例子,我们定义了一个名为“process-exporter”的job,用于收集Process Exporter提供的指标。我们将目标设置为“localhost:9256”,其“9256”是Process Exporter监听的端口。 5. 重新启动Prometheus 在修改了Prometheus的配置文件后,需要重新启动Prometheus以使更改生效。 6. 查看指标 打开Prometheus的Web界面,可以查看Process Exporter提供的指标。可以使用PromQL查询语言来查询和可视化这些指标。例如,以下是一个查询来查找“my-process”的CPU利用率: ``` my_process_cpu_percent{process_name="my-process"} ``` ### 回答2: Prometheus是一个开源的监控系统,而Process-ExporterPrometheus的一个插件,用于监控系统的进程状态和性能指标。下面是Process-Exporter的使用方法: 1. 下载和安装Process-Exporter:可以从Process-Exporter的GitHub页面下载最新版本的二进制文件,并将它安装在你的系统。 2. 配置Process-Exporter:创建一个配置文件,例如prometheus.yml,并在其指定需要监控的进程和相关参数的配置。这个配置文件可以指定进程的名称、启动命令、以及需要监控指标,如CPU使用率、内存使用量等。将配置文件保存在合适的位置,并确保Process-Exporter可以读取到这个配置文件。 3. 运行Process-Exporter:在终端运行Process-Exporter的二进制文件,并指定配置文件的位置。例如,可以使用命令"process-exporter --config.path=/path/to/config.yml"来启动Process-Exporter。它会读取配置文件,并开始监控指定的进程。 4. 配置Prometheus:打开Prometheus的配置文件prometheus.yml,并添加对Process-Exporter监控指标的配置。例如,可以添加以下内容: ``` scrape_configs: - job_name: 'process-exporter' static_configs: - targets: ['localhost:9091'] ``` 其,'localhost:9091'是Process-Exporter的默认监听地址和端口号。 5. 启动Prometheus:运行Prometheus的二进制文件,并指定配置文件的位置。例如,可以使用命令"prometheus --config.file=/path/to/prometheus.yml"来启动Prometheus。 6. 查看监控数据:打开浏览器,并访问Prometheus的Web界面。可以通过查询指定的Process-Exporter监控指标,并将其可视化展示出来。也可以使用PromQL查询语言,编写自定义的查询语句来获取所需的进程信息。 通过以上步骤,你就可以使用Process-Exporter监控系统的进程状态和性能指标了。它可以帮助你及时发现问题,并做出相应的优化和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值