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
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
4. 接入Grafana图形化展示
点击 + 选择 import。
输入导入的模板id 249
,数据源选择Prometheus,点击import导入。
展示process exporter监控到信息