Fork me on Gitee

Process Exporter 进程监控

1. Process Exporter简介

在Prometheus中,可以借助process-exporter用以检测所选进程的状态信息。

用法:

process-exporter [options] -config.path filename.yml

若选择监控的进城并对其进行分组,可以使用命令行参数或者yaml配置文件。推荐使用-config.path指定配置文件路径。

详细.yml配置文件格式及规则参考https://github.com/ncabatoff/process-exporter

# 若监控主机上所有进程
process_names:
  - name: "{{.Comm}}"
    cmdline:
    - '.+'
# 若监控主机上某个进程
process_names:
 - name: "{{.Matches}}"
   cmdline:
   - 'hadoop'

可用的模板变量如下

{{.Comm}}           包含原始可执行文件的基本名称,即 /proc/<pid>/stat

{{.ExeBase}}        包含可执行文件的基本名称

{{.ExeFull}}        包含可执行文件的标准路径

{{.Username}}       包含有效用户的用户名

{{.Matches}}        包含所有由于应用cmdline正则表达式而产生的匹配项

{{.PID}}            包含过程的PID。请注意,使用PID意味着该组将仅包含一个进程

{{.StartTime}}      包含过程的开始时间。与PID结合使用时,这很有用,因为PID会随着时间的推移而被重用

不建议使用PID或StartTime

2. 安装Process Exporter

# 下载
wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.2/process-exporter-0.7.2.linux-amd64.tar.gz
# 解压并安装
tar -zxvf process-exporter-0.7.2.linux-amd64.tar.gz -C /usr/local
# 重命名
mv process-exporter-0.7.2.linux-amd64/ process_exporter

注册到系统服务

cat > /usr/lib/systemd/system/process_exporter.service << EOF
[Unit]
Description=process_exporter
Documentation=https://github.com/ncabatoff/process-exporter
After=network.target
 
[Service]
Type=simple
ExecStart=/usr/local/process_exporter/process-exporter -config.path=/usr/local/process_exporter/process-conf.yaml
Restart=always
 
[Install]
WantedBy=multi-user.target
EOF

加载并开机自启

systemctl daemon-reload && systemctl enable process_exporter

启动process exporter

systemctl daemon-reload && systemctl enable process_exporter

eg: 监控hadoop进程

vi process-conf.yaml

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

启动process exporter后查看metric信息 http://ip:9256

image-20220614112400680

3. 接入Prometheus

在prometheus配置文件prometheus.yml中,添加process exporter信息

- job_name: Process
  static_configs:
  - targets: ['localhost:9256']

检查prometheus.yml配置文件

 ./promtool check config prometheus.yml
[root@master prometheus-2.18.1]#  ./promtool check config prometheus.yml
Checking prometheus.yml
  SUCCESS: 0 rule files found

重启prometheus

systemctl restart prometheus

image-20220614112748917

4. 接入Grafana图形化展示

点击 + 选择 import。

image-20220614112857058

输入导入的模板id 249,数据源选择Prometheus,点击import导入。

image-20220614113007107

展示process exporter监控到信息

image-20220614113038106

参考博客

  1. Prometheus — Process-exporter进程监控

  2. process exporter 监控进程并告警

posted @ 2022-06-14 11:34  shine-rainbow  阅读(5672)  评论(0编辑  收藏  举报