prometheus进程监控

插件地址:https://github.com/ncabatoff/process-exporter

1、安装部署

cd /usr/local
wget https://github.com/ncabatoff/process-exporter/releases/download/v0.7.2/process-exporter-0.7.2.linux-amd64.tar.gz
tar -zxvf process-exporter-0.7.2.linux-amd64.tar.gz
mv process-exporter-0.7.2.linux-amd process-exporter

2、创建启动脚本

vi /usr/lib/systemd/system/process-exporter.service
[Unit]
Description=redis_exporter
Documentation=https://github.com/ncabatoff/process-exporter
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/usr/local/process-exporter/process-exporter -config.path /usr/local/process-exporter/process-exporter.yml
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动服务

systemctl daemon-reload
systemctl start redis_exporter
systemctl status redis_exporter
systemctl enable redis_exporter
ss -tulnp | grep 9256

编写配置文件

process_names:

- matcher1
- matcher2

例如:监控所有的服务进程

 process_names:
   - name: "{{.Comm}}"
     cmdline:
       - '.+'

监控进程名为test程序

    process_names:
      - name: "{{.Matches}}"
        cmdline:
        - 'test'

配置模板选项如下:

{{.Comm}} 包含原始可执行文件的basename,/proc//stat 中的换句话说,2nd 字段

{{.ExeBase}} 包含可执行文件的basename

{{.ExeFull}} 包含可执行文件的完全限定路径

{{.Username}} 包含有效用户的用户名

{{.Matches}} 映射包含应用命令行tlb所产生的所有匹配项

       process_names中的每个项目都必须包含一个或多个选择器(comm,exe或cmdline), 如果存在多个选择器,则它们必须全部匹配。 每个选择器都是一个字符串列表,用于与进程的comm,argv [0]匹配;对于cmdline,则是一个适用于命令行的正则表达式。 cmdline regexp使用Go语法。

     对于comm和exe,字符串列表是一个OR,这意味着与任何字符串匹配的任何进程都将添加到该项目的组中。

     对于cmdline,正则表达式列表为AND,表示它们都必须匹配。 正则表达式中的任何捕获组都必须使用?P <name>选项为捕获分配一个名称,该名称用于填充.Matches。

验证

curl localhost:9256/metrics

例如:> ps -ef | grep redis 

redis 771 1 0 Jun05 ? 00:45:49 /usr/bin/redis-server *:6379

{{.Comm}} groupname="redis-server" exe或者sh文件名称
{{.ExeBase}} groupname="redis-server *:6379" /
{{.ExeFull}} groupname="redis-server *:6379" ps中进程完成信息
{{.Username}} groupname="redis" 使用进程所属的用户进行分组
{{.Matches}} groupname="map[:redis]" 表示匹配到关键字"redis"

 

 

 

 

 

 

Grafana图表显示:

process-exporter对应的dashboard为:https://grafana.com/grafana/dashboards/249

计算

namedprocess_namegroup_num_threads

posted @ 2020-09-01 11:23  fat_girl_spring  阅读(1365)  评论(0编辑  收藏  举报