process_exporter进程监控及告警
监控服务器全部或某些进程是否健康,以及进程所占用资源是否异常使用process_exporter监测器进行进程信息的采集与node_exporter监测器相同,需要监测哪台服务器的进程,就将process_exporter监测器部署在哪台
安装process_exporter
wget Release v0.7.10 · ncabatoff/process-exporter · GitHub 下载
Releases · ncabatoff/process-exporter · GitHub 其他版本访问下载
tar -zxvf process-exporter-0.7.10.linux-amd64.tar.gz -C /data/ 解压至指定目录
mv process-exporter-0.7.10.linux-amd64 process-exporter 改名
process-exporter中的每个项目都给出了用于识别和命名的配方 过程。可选标记定义用于命名的模板 匹配过程;如果未指定,则默认为 。process_namesnamename{{.ExeBase}}
可用的模板变量:
{{.Comm}}包含原始可执行文件的基本名称,即/proc/<pid>/stat 中的第二个字段
{{.ExeBase}}包含可执行文件的基本名称
{{.ExeFull}}包含可执行文件的完全限定路径
{{.Username}}包含有效用户的用户名
{{.Matches}}映射包含应用 cmdline 正则表达式产生的所有匹配项
{{.PID}}包含进程的 PID。请注意,使用 PID 表示组 将只包含一个进程
{{.StartTime}}包含进程的开始时间。这个与PID 结合使用时会很有用,因为 PID 会重复使用
Github文档上不建议使用 PID和StartTime详细介绍请看:
https://gitcode.net/mirrors/ncabatoff/process-exporter?utm_source=csdn_github_accelerator
vim /data/process-exporter/process.yaml 编辑配置文件
#监控全部进程格式
process_names:
- name: "{{.Comm}}"
cmdline:
- '.+'
#监控单独某个进程格式
#process_names:
# - name: "{{.Matches}}"
# cmdline:
# - 'nginx' #全局标识,写了nginx相当于获取进程的方式为`ps -ef | grep nginx`
监控多个进程格式
process_names:
- name: "{{.Matches}}"
cmdline:
- 'nginx' #全局标识,写了nginx相当于获取进程的方式为`ps -ef | grep nginx`
- name: "{{.Matches}}"
cmdline:
- 'mysqld'
- name: "{{.Matches}}"
cmdline:
- 'node_exporter'
./process-exporter --config.path=process.yaml 检查配置文件的命令没有报错则正常
配置systemctl管理
vim /usr/lib/systemd/system/process-exporter.service
[Unit]
Description=Prometheus exporter for processors metrics, written in Go with pluggable metric collectors.
Documentation=https://github.com/ncabatoff/process-exporter
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/data/process-exporter
ExecStart=/data/process-exporter/process-exporter -config.path=/data/process-exporter/process.yaml
Restart=on-failure
[Install]
WantedBy=multi-user.target
systemctl daemon-reload 刷新配置
systemctl start process-exporter 启动 默认端口9256
systemctl enable process-exporter 设置开机自启
process-exporter 部署好了,来到prometheus服务器编辑配置文件
vim prometheus.yml
- job_name: "进程监控服务"
static_configs:
- targets: ["192.168.197.137:9256"]
./promtool check config prometheus.yml 检查配置文件是否正确
systemctl restart prometheus 重启prometheus
配置告警规则(这个告警规则可以和node监控存活共用一个,如需区别添加对应组即可)
vim /data/prometheus/rules/host_monitor.yml
groups:
- name: node-up
rules:
- alert: 监控采集服务
expr: up == 0
for: 10s
labels:
severity: warning
team: node
annotations:
description: "{{ $labels.instance }} 主机监控采集服务已停止运行!"
resolved: "{{ $labels.instance }} 主机监控采集服务已恢复正常"
可以看看告警效果
文章来源地址https://www.toymoban.com/news/detail-547626.html
如果想在grafana查看的话可以添加一个监控面板 推荐使用4202模板
这是只监控了几个进程的截图
监控进程在grafana展示的监控面板无法展示主机名解决办法
在grafana展示面板添加变量引用
up{instance=~"$host"} 标签参数
设置好后可以看到展示的主机名
文章来源:https://www.toymoban.com/news/detail-547626.html
到了这里,关于prometheus进程监控配置告警及解决grafana监控面板不展示主机名问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!