一.安装 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 即可
评论区