prometheus进程监控-那些你不得不知道的事儿

技术导语: 还在困惑不知道如何进行有效的进程监控么?初学prometheus不好理解process-exporter的配置规则么?好不容易上线使用了,总有些莫名其妙的问题费解得摸不着头脑?本文一一为你解答。

配置模板变量

vi process_name.yml

{{.Comm}} 包含原始可执行文件的基本名称,即第二个字段 /proc/<pid>/stat
{{.ExeBase}} 包含可执行文件的基名
{{.ExeFull}} 包含可执行文件的完全限定路径
{{.Username}} 包含有效用户的用户名
{{.Matches}} map包含应用cmdline regexps产生的所有匹配项

配置案例

上述配置模板的五个变量或许看起来很费解,那么接下来通过mysql进程监控实例来加深理解。

一、展示{{.Matches}}的效果

mysql进程信息如图:
在这里插入图片描述
process配置案例如下:

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

在这里插入图片描述

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

在这里插入图片描述
总结: {{.Matches}}是基于ps进程的显示信息进行关键字匹配,最终显示的分组名称(groupname)也是和关键字一致。

二、展示{{.Comm}}的效果

proc文件内容如下:
cat /proc/1928/stat
在这里插入图片描述
process配置案例如下:

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

在这里插入图片描述

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

在这里插入图片描述
总结: {{.Comm}}是基于/proc/1928/stat文件中的第二个字段信息进行关键字匹配,最终显示的分组名称(groupname)也是和/proc/1928/stat文件中的第二个字段一致。所以表现出来的效果无论关键字是mysql还是mysqld,最终显示的分组(groupname)始终为匹配到的第二个字段:mysqld。

三、展示{{.ExeBase}}的效果

mysql进程信息如图:
在这里插入图片描述
process配置案例如下:

process_names:
  - name: "{{.ExeBase}}" 
    cmdline:
    - 'mysqld'

在这里插入图片描述

process_names:
  - name: "{{.ExeBase}}" 
    cmdline:
    - 'mysql'

在这里插入图片描述
总结: {{.ExeBase}}是基于进程对应的可执行二进制文件名进行关键字匹配,最终显示的分组名称(groupname)也是和可执行的二进制文件名一致。所以表现出来的效果无论关键字是mysql还是mysqld,最终显示的分组(groupname)始终为匹配到的可执行二进制文件名:mysqld。

四、展示{{.ExeFull}}的效果

mysql进程信息如图:
在这里插入图片描述
process配置案例如下:

process_names:
  - name: "{{.ExeFull}}" 
    cmdline:
    - 'mysqld'

在这里插入图片描述

process_names:
  - name: "{{.ExeFull}}" 
    cmdline:
    - 'mysql'

在这里插入图片描述

总结: {{.ExeFull}}是基于可执行文件的完全路径进行关键字匹配,最终显示的分组名称(groupname)也是和完全路径一致。所以表现出来的效果无论关键字是mysql还是mysqld,最终显示的分组(groupname)始终为匹配到的完全路径:/usr/sbin/mysqld。

五、展示{{.Username}}的效果

mysql进程信息如图:
在这里插入图片描述
process配置案例如下:

process_names:
  - name: "{{.Username}}" 
    cmdline:
    - 'mysql'

在这里插入图片描述

总结: {{.Username}}是基于启动进程的用户名进行关键字匹配,最终显示的分组名称(groupname)也是和用户名一致,始终为匹配到的用户名:mysql。

知识点

1、配置文件支持多条件匹配

【配置文件】:

process_names:
  - name: "{{.ExeFull}}" 
    cmdline:
    - 'mysql'
    - 'bin'

【匹配结果】:
在这里插入图片描述

2、配置文件满足多个匹配项时,仅匹配第一个。

【配置文件】:

process_names:
  - name: "{{.ExeFull}}" 
    cmdline:
    - 'mysql'
    - 'bin'
process_names:
  - name: "{{.ExeBase}}" 
    cmdline:
    - 'mysql'

【匹配结果】:
在这里插入图片描述

【配置文件】:

process_names:
  - name: "{{.ExeBase}}" 
    cmdline:
    - 'mysql'
process_names:
  - name: "{{.ExeFull}}" 
    cmdline:
    - 'mysql'
    - 'bin'

【匹配结果】:
在这里插入图片描述
如果您喜欢我的文章,请点击关注哦,后续有更多的干货分享。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值