进程是监控平台最常见的监控对象,也是业务纬度最重要的监控场景之一

两种进程监控场景

在实际的业务场景里,主要有两种进程监控方式

  • 进程名+固定端口,如nginx服务,固定监控80端口,nginx+80
  • 进程名+随机端口,如一些对外服务进程,建立链接时监听随机端口

固定端口的进程监控配置

固定端口的进程监控主要是基于配置平台里服务模板或单主机上定义好的进程名及端口,然后由采集器bkmonitorbeat来实现采集上报。

监控原理

bkmonitorbeat进程监控逻辑:
1.CMDB主机-服务实例 配置端口
2.gse server从CMDB同步端口数据
3.gse_agent收到数据写入到本机/var/lib/gse_bkte/host/hostid
4.bkmonitorbeat通过inotify监听/var/lib/gse_bkte/host/hostid文件变化,读取需要监听的进程端口信息
5.对指定的端口从Linux内核通过netlink读取监听状态,将进程端口数据上报
6.上报的数据中,未监听的端口产生告警

实操演示

例:监控nginx模块下主机上的nginx进程,监听的端口为80。

1、在配置平台里创建服务进程

创建服务进程可以通过服务模板或者直接在主机上添加进程两种方式,具体详细指引可见:配置平台如何创建服务实例(添加进程和端口)

请在此添加图片描述

(通过服务模板的方式添加进程信息)

注意“进程名称”必须是OS中实际存在的进程名,"进程启动参数"是第2次的过滤条件,为匹配进程的关键字,其实现原理类似于

ps -ef|grep “进程名称” |grep “进程启动参数”
image.png

进程匹配的原则:

1.优先匹配/proc/${pid}/status中的进程名称

在这里插入图片描述

2.匹配/proc/${pid}/cmdline中的进程名

3.匹配/proc/${pid}/exe中的名称

2、转移主机到nginx模块(确保已安装agent和bkmonitorbeat插件)

如未安装可以查看:节点管理有哪些插件?如何安装插件?

在这里插入图片描述

(转移主机到nginx模块)

3、查看进程监控

在这里插入图片描述

在这里插入图片描述

4、进程端口告警

4.1、进程端口基础告警(进程存活、端口监听)

  • 默认的内置进程端口告警策略
    可以修改直接使用,但是因为内置的告警策略默认监控目标是所有主机,所以建议是单独新建告警策略。
    在这里插入图片描述
  • 新建端口告警策略
    在这里插入图片描述nx80端口监控的策略)

停掉nginx进程,模拟进程挂掉

service nginx stop

当进程挂掉之后,则会收到端口告警,可以根据配置的告警通知方式查收告警。

在这里插入图片描述

4.2、进程指标监控(如进程CPU的使用率)

在这里插入图片描述

在这里插入图片描述

(配置进程指标告警策略)

同理,当触发告警时,可以在告警事件根据告警策略查看相关的告警信息及详情。

附:bkmonitorbeat插件采集的默认指标说明

Linux 采集

在这里插入图片描述

Windows 采集

在这里插入图片描述

文章来源于腾讯云开发者社区,点击查看原文