Prometheus通过Process-exporter实现任务进程监控

1.下载process-exporter
wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.10/process-exporter-0.7.10.linux-amd64.tar.gz
2.安装部署process-exporter

在要监控的机器上,安装proces-exporter。

tar -xvf process-exporter-0.7.10.linux-amd64.tar.gz
mv process-exporter-0.7.10.linux-amd64 process-exporter
3.编写配置文件
vim process-name.yaml

注意:该进程监控主要是通过匹配进程中的关键字来实现的,所以需要通过ps -ef | grep "***"来查找你启动进程,然后查找cmdline中的关键信息(可以是一个关键词,也可以是部分路径)来进行信息采集。同时,也可以通过ps -ef | grep '***'查询到目标进程后,执行more /proc/端口号/cmdline查看cmdline内容,然后挑选必要信息填写到config.yaml中。如果改进程不存在,则不会有该进程的数据采集到。

指定一个进程:

process_names:
  - name: "{{.Matches}}"
    cmdline:
    - 'alertlib'

指定多个进程:

process_names:
  - name: "{{.Matches}}"
    cmdline:
    - 'test1'
  - name: "{{.Matches}}"
    cmdline:
    - 'test2'
  - name: "{{.Matches}}"
    cmdline:
    - 'test3'

指定所有进程:

process_names:
 - name: "{{.Comm}}"
    cmdline:
    - '.+'
4.编写启动脚本
vim /usr/lib/systemd/system/process-exporter.service

ExecStart填写安装的process-exporter地址

[Unit]
Description=process_exporter
After=network.target

[Service]
User=root
Type=simple
ExecStart=/opt/soft/process-exporter/process-exporter -config.path /opt/soft/process-exporter/config.yaml
Restart=on-failure

[Install]
WantedBy=multi-user.target
5.启动
systemctl daemon-reload   
systemctl start process-exporter.service
systemctl status process-exporter.service
systemctl enable process-exporter.service  #开机自启
6.验证
curl localhost:9256/metrics

注意:metrics中包含:namedprocess_namegroup_num_procs{groupname=“map[:alertlib]”}即代表启动正确,否则查询config.yaml配置是否正确。

7.配置Prometheus

修改Prometheus配置文件

- job_name: 'process'
	static_configs:
	-targets: ['172.**.**.**:9256']

配置告警规则:

groups:
 - name: dol_alert_process_rule
   rules:
   - alert: Dolphinscheduler Alert ProcessDown # 告警名称
     expr: (namedprocess_namegroup_num_procs{groupname="map[:alertlib]"}) == 0
     for: 1m # 满足告警条件持续时间多久后,才会发送告警
     labels: #标签项
        severity: error
     annotations: # 解析项,详细解释告警信息
         summary: "dolphinscheduler Alert {{ $labels.instance }}  has been down for more than 1 minutes"
         description: "dolphinscheduler Alert has been down, This requires immediate action!"
8.热加载Prometheus报警规则
./promtool check config  prometheus.yml
systemctl reload prometheus.service
9.配置钉钉告警

详情请参考:prometheus配置alertmanager告警-钉钉告警

### 使用 Prometheus Process-Exporter 实现 Top 5 Processes Monitoring Process-Exporter 是一种用于监控 Linux 系统上运行的进程指标的工具,它可以通过自定义配置文件来暴露特定进程的相关指标给 Prometheus 抓取。以下是实现针对前五个进程监控的具体配置方法。 #### 配置过程概述 为了实现对系统中前五个进程监控,需要通过 `process_exporter` 提供的 YAML 配置文件指定过滤条件和抓取逻辑。具体来说,可以利用正则表达式匹配目标进程名称并设置相应的标签[^1]。 #### 示例配置文件 (YAML) 以下是一个完整的 `process-exporter` 配置文件示例: ```yaml --- process_names: - name: "top_process_{{.Comm}}" cmdline: - '^(.*)$' metrics: - mem_rss_bytes - cpu_seconds_total sort_by_metric: true max_procs: 5 ``` 此配置实现了以下几个功能: - **动态命名**:使用 Go 模板语法中的 `.Comm` 自动填充进程名到指标标签中[^2]。 - **命令行参数匹配**:通过正则表达式捕获所有可能的进程命令行字符串。 - **限定数量**:仅保留按内存占用排序后的前五个进程 (`max_procs: 5`)。 - **排序依据**:按照 RSS 内存大小降序排列 (`sort_by_metric: true`) 并选取对应字段作为主要衡量标准[^3]。 #### 启动 Process-Exporter 完成上述配置后,可通过如下方式启动 process-exporter: ```bash ./process-exporter --config.path=/path/to/config.yml ``` 确保路径指向实际保存有上面提到的 YAML 文件的位置。 #### Prometheus Job 定义 最后,在 Prometheus 的 scrape_configs 中增加一个新的 job 来定期拉取这些数据点: ```yaml scrape_configs: - job_name: 'processes_top_five' static_configs: - targets: ['localhost:9256'] labels: instance: myserver ``` 这里假设 process-exporter 默认监听端口为 9256;如果更改过,则需同步调整此处的目标地址。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值