Prometheus 监控进程

Process-exporter

  process-exporter可以用来检测所选进程的存活状态

下载process-exporter

  下载地址:https://github.com/ncabatoff/process-exporter/releases/tag/v0.4.0  

安装部署process-exporter

1
tar -zxvf process-exporter-0.4.0.linux-amd64.tar.gz -/usr/local/process-exporter

  编写配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat process-exporter.yaml
process_names:
  
  - name: "{{.Matches}}"
    cmdline:
    - 'dbbakup'
  
  - name: "{{.Matches}}"
    cmdline:
    - 'mysql'
  
  - name: "{{.Matches}}"
    cmdline:
    - 'pushgateway'

  

注 cmdline:  所选进程的唯一标识,ps -ef 可以查询到。如果改进程不存在,则不会有该进程的数据采集到。

  编写启动脚本

cat /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=/usr/local/process-exporter
ExecStart=/usr/local/process-exporter/process-exporter -config.path=/usr/local/process-exporter/process-exporter.yaml
Restart=on-failure
  
[Install]
WantedBy=multi-user.target

  

启动process-exporter

1
2
3
systemctl daemon-reload
systemctl start process_exporter
systemctl enable process_exporter

 

验证

1
curl localhost:9256/metrics

 

修改Prometheus配置文件

1
2
3
4
5
增加
 
 - job_name: 'process'
    static_configs:
    - targets: ['172.16.8.187:9256']

  重启Prometheus

  

 

添加告警规则

 

cat process.yml
groups:
- name: process
  rules:
  - alert: backup-mysql-Down
    expr: absent(namedprocess_namegroup_states{groupname="map[:mysql]"})
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: backup slave mysql docker process Down (instance {{ $labels.instance }})
      description: "backup slave mysql process is down\n LABELS = {{ $labels }}"
 
 
  - alert: pushgateway-Down
    expr: absent(namedprocess_namegroup_states{groupname="map[:pushgateway]"})
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: pushgateway process Down (instance {{ $labels.instance }})
      description: "pushgateway process is down\n LABELS = {{ $labels }}"
 
  - alert: dbback-process-Down
    expr: absent(namedprocess_namegroup_states{groupname="map[:dbbakup]"})
    for: 1m
    labels:
      severity: critical
    annotations:
      summary: dbbackup docker process Down (instance {{ $labels.instance }})
      description: "dbbackup docker process is down\n LABELS = {{ $labels }}"

  

 

 

 
posted @   Oops!#  阅读(1387)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2017-05-06 pyDash:一个基于 web 的 Linux 性能监测工具
2017-05-06 dnspython模块安装
2017-05-06 linux文件权限查看及修改-chmod ------入门的一些常识
2017-05-06 在 CentOS7.0 上搭建 Chroot 的 Bind DNS 服务器
点击右上角即可分享
微信分享提示