侧边栏壁纸
  • 累计撰写 208 篇文章
  • 累计创建 16 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

[Prometheus]使用process-exporter监控业务进程并告警

Wake
2023-10-25 / 0 评论 / 0 点赞 / 1,468 阅读 / 455 字

一.安装 process-exporter

wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.10/process-exporter-0.7.10.linux-amd64.tar.gz
tar -xf process-exporter-0.7.10.linux-amd64.tar.gz
mv process-exporter-0.7.10.linux-amd64  /data/process-exporter
cd /data/process-exporter && mkdir log

二.编辑配置文件

在 /data/process-exporter/上
vim process-conf.yaml

process_names:
  - name: "wake-sshd"
    cmdline:
      - "sshd"

  - name: "wake-nginx"
    cmdline:
      - "nginx"

  - name: "wake-xxxx"
    cmdline:
      - "./xxxx.bin"

三.配置监控规则

新建编辑process_alert.yml文件

groups:
- name: process_rule
  rules:
  - alert: 进程服务告警
    expr: (namedprocess_namegroup_num_procs) == 0
    for: 10s
    labels:
       status: 紧急
    annotations:
       summary: "服务端进程服务挂了,已经超过10秒"
       description: "{{ $labels.groupname }}"

因为我这边有多个环境,所以没有用下面这种方式定义服务名称,让监控指标更加直观一些。

process_names:
  - name: "{{.Matches}}"
    matches:
      - cmdline: "./xxxx.bin"

四.配置 prometheus.yml

#定义告警文件的路径
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
  - "/data/prometheus/rules/process_alert.yml"   

#process-exporter配置
  - job_name: 'wake-process-exporter'
    static_configs:
    - targets: ['127.0.0.1:9256']

这里也是为了多个环境的job_name更直观,更好区分是哪个环境,这里也是分开来写多个job_name

五.配置supervisor配置

[program:process_exporter]
command=/data/process_exporter/process-exporter --config.path=process-conf.yaml ; 运行程序的命令
directory=/data/process_exporter/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/data/process_exporter/log/process_exporter.err.log ; 错误日志文件
stdout_logfile=/data/process_exporter/log/process_exporter.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份


stopsignal=INT

****配置完成后重启prometheus,让新的配置文件生效。

六.配置grafana

这里配置编号 249 即可

0

评论区