由于我们常用的node_exporter并不能覆盖所有监控项,这里我们使用Process-exporter
对进程进行监控。
当然,
您也可以使用node_exporter
监控服务的选择,使用systemd收集器
:
--collector.systemd.unit-whitelist=".+" 从systemd中循环正则匹配单元
--collector.systemd.unit-whitelist="(docker|sshd|nginx).service" 白名单,收集目标
1.1 在被监控端做如下配置:
[root@iZuf6ioqjurm6w0x1o7exjZ alertmanager]# more /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/node_exporter/node_exporter --collector.systemd --collector.systemd.unit-whitelist=(docker|sshd|nginx).service
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
1.2 加载配置重启服务
systemctl daemon-reload
systemctl restart node_exporter
1.3 监控端查看Node服务
instance="localhost:9100",job="prometheus",name="docker.service"
——————————————————————————————
前戏结束,如果机器上运行了一些小脚本,想要对其进行监控但又不想用上一些在代码里做信息采集的SDK那么重,比如只是单纯想要监控该脚本是否一直在运行,那么Process-Exporter会是一个现成的好选择。
如名所示,Process-Exporter就是用来监控进程的,其中一项能力,便是监控进程的状态。使用起来也简单。可从宏观角度监控应用的运行状态(譬如监控redis、mysql的进程资源等)
wget https://github.com/ncabatoff/process-exporter/releases/download/v0.5.0/process-exporter-0.5.0.linux-amd64.tar.gz
tar -xvf process-exporter-0.5.0.linux-amd64.tar.gz -C /usr/local/
Process-Exporter的做法是配置需要监控的进程的名称,他会去搜索该进程从而得到其需要的监控信息,其实也就是我们常做的“ps -efl | grep xxx”命令来查看对应的进程。
配置文件一开始是不存在的
,需要我们创建,名字可以自定义:
vim process-name.yaml
process_names:
- name: "{{.Matches}}"
cmdline:
- 'nginx'
- name: "{{.Matches}}"
cmdline:
- 'zombie'
也可以定义全部:
vim conf.yaml
process_names:
- name: "{{.Comm}}"
cmdline:
- '.+'```
./process-exporter -config.path process-name.yaml &
curl http://localhost:9256/metrics