返回列表 发帖

Zabbix使用Agent监控Linux进程+最新数据

笺注:被监控主机的Agent的安装可参考 Zabbix使用Agent监控CentOS6/Redhat6


被监控主机的zabbix-agent正在运行时:
[root@zabbix_client ~]# service zabbix-agent status
zabbix_agentd (pid  112764) 正在运行...
[root@zabbix_client ~]#

在Zabbix服务器上使用命令zabbix_get检测被监控主机的进程是否运行中:(zabbix-agent的进程zabbix_agentd运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[zabbix_agentd]
6
[root@centos8 ~]#

在Zabbix服务器上使用命令zabbix_get检测被监控主机的进程是否运行中:(Apache的进程httpd运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[httpd]
6
[root@centos8 ~]#

在Zabbix服务器上使用命令zabbix_get检测被监控主机的进程是否运行中:(MySQL的进程mysqld运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[mysqld]
1
[root@centos8 ~]#



停止被监控主机的zabbix-agent:
[root@zabbix_client ~]# service zabbix-agent stop
Shutting down Zabbix agent: [确定]
[root@zabbix_client ~]#

在Zabbix服务器上使用命令zabbix_get检测被监控主机的进程是否运行中:(zabbix-agent的进程zabbix_agentd没有运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[zabbix_agentd]
zabbix_get [2263]: Get value error: cannot connect to [[192.168.168.130]:10050]: [111] Connection refused
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[httpd]
zabbix_get [2466]: Get value error: cannot connect to [[192.168.168.130]:10050]: [111] Connection refused
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[mysqld]
zabbix_get [2481]: Get value error: cannot connect to [[192.168.168.130]:10050]: [111] Connection refused
[root@centos8 ~]#



启动被监控主机的zabbix-agent:
[root@zabbix_client ~]# service zabbix-agent start
Starting Zabbix agent: [确定]
[root@zabbix_client ~]#

在Zabbix服务器上使用命令zabbix_get检测被监控主机的进程是否运行中:(Apache的进程httpd没有运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[httpd]
0
[root@centos8 ~]#

在Zabbix服务器上使用命令zabbix_get检测被监控主机的进程是否运行中:(MySQL的进程mysqld没有运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k proc.num[mysqld]
0
[root@centos8 ~]#


键值模板:
proc.num[<name>,<user>,<state>,<cmdline>]  进程数。返回整数


备注:假如只是监控进程,被监控主机无需打开防火墙对应的端口。





######

在主机c6中创建监控项:( 监控被监控主机的进程mysqld否运行中 )
自定义名称: Check_process_MySQL
键值: proc.num[mysqld]
信息类型: 数字(无正负)
图片1.png
本页拖下去:
图片2.png



给主机c6的监控项“Check_process_MySQL”创建触发器:(被监控主机的进程mysqld没有运行时就告警)
自定义名称: Process mysqld is down.
严重性: 警告
图片3.png

插入表达式:( 监控项 c6: Check_process_MySQL )
图片4.png

自动生成的表达式:(触发器的表达式要用到监控项中的键值)
{c6:proc.num[mysqld].last()}=0
图片5.png
本页拖下去:
图片6.png



######

测试:

被监控主机停止自己的MySQL服务:
[root@zabbix_client ~]# service mysql stop
Shutting down MySQL. SUCCESS!
[root@zabbix_client ~]#


当主机c6的进程mysqld没有运行时,在仪表板上看到的效果:(显示对应触发器的名称)
Process mysqld is down.
图片7.png

图片8.png



监测》最新数据:(查看指定问题(触发器)对应的监控项的当前值)
根据监控项的名称使用过滤器进行定位:
图片9.png


图片10.png

图片11.png



###

被监控主机启动自己的MySQL服务:
[root@zabbix_client ~]# service mysql start
Starting MySQL.. SUCCESS!
[root@zabbix_client ~]#


当主机c6的进程mysqld正在运行时,在仪表板上的告警会马上消失,如下图:
图片12.png


监测》最新数据:
再次,查看主机c6的监控项“Check_process_MySQL”的当前值:
图片13.png

图片14.png


查看主机c6的监控项“Check_process_MySQL”的图形:
图片15.png

选择时间范围,查看监控项“Check_process_MySQL”的图形:
图片16.png

无需特意给监控项创建图形,也会以监控项为名称自动创建一个图形:
图片17.png
注释:图形中的数据线是从右往左延伸的。

图片18.png














############
############

在被监控主机上创建检测进程状态的Shell脚本:
[root@zabbix_client ~]# mkdir -p /etc/zabbix/scripts
[root@zabbix_client ~]# cd !$
cd /etc/zabbix/scripts
[root@zabbix_client scripts]#
[root@zabbix_client scripts]# pwd
/etc/zabbix/scripts
[root@zabbix_client scripts]# cat check_process.sh
#!/bin/bash
process_count=$(ps -ef|grep -Ev "grep|$0" |grep -c $1)
echo $process_count


[root@zabbix_client scripts]# ll check_process.sh
-rw-r--r-- 1 root root 87 10月 22 11:31 check_process.sh
[root@zabbix_client scripts]#


把脚本的属主和属组改为zabbix
[root@zabbix_client scripts]# chown zabbix.zabbix check_process.sh
[root@zabbix_client scripts]# ll check_process.sh
-rw-r--r-- 1 zabbix zabbix 87 10月 22 11:31 check_process.sh
[root@zabbix_client scripts]#


更改脚本的权限:
[root@zabbix_client scripts]# cd
[root@zabbix_client ~]#
[root@zabbix_client ~]# chmod a+x /etc/zabbix/scripts/check_process.sh
[root@zabbix_client ~]# ll !$
ll /etc/zabbix/scripts/check_process.sh
-rwxr-xr-x 1 zabbix zabbix 87 10月 22 11:31 /etc/zabbix/scripts/check_process.sh
[root@zabbix_client ~]#



被监控主机本地测试Shell脚本:
[root@zabbix_client ~]# bash /etc/zabbix/scripts/check_process.sh httpd
6

注释:
Apache的进程httpd运行时,返回结果为6
Apache的进程httpd没有运行时,返回结果为0



[root@zabbix_client ~]# bash /etc/zabbix/scripts/check_process.sh mysqld
2

注释:
MySQL的进程mysqld运行时,返回结果为2
MySQL的进程mysqld没有运行时,返回结果为0



######

修改被监控主机的Agent配置文件:
[root@zabbix_client ~]# vi /etc/zabbix/zabbix_agentd.conf

# UnsafeUserParameters=0
修改为:(启用该功能)
UnsafeUserParameters=1

插入:
  1. UserParameter=check_process[*],/etc/zabbix/scripts/check_process.sh $1
复制代码

效果如下图:
图片19.png


保存好配置文件后,重启zabbix-agent:
[root@zabbix_client ~]# service zabbix-agent restart
Shutting down Zabbix agent: [确定]
Starting Zabbix agent: [确定]

[root@zabbix_client ~]#



######

在Zabbix服务器上测试,验证能否远程获取被监控主机的自定义键值:(Apache的进程httpd运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k check_process[httpd]
6
[root@centos8 ~]#

在Zabbix服务器上测试,验证能否远程获取被监控主机的自定义键值:(Apache的进程httpd没有运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k check_process[httpd]
0
[root@centos8 ~]#


在Zabbix服务器上测试,验证能否远程获取被监控主机的自定义键值:(MySQL的进程mysqld运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k check_process[mysql]
2
[root@centos8 ~]#

在Zabbix服务器上测试,验证能否远程获取被监控主机的自定义键值:(MySQL的进程mysqld没有运行时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k check_process[mysql]
0
[root@centos8 ~]#


备注:假如只是监控进程,被监控主机无需打开防火墙对应的端口。



######

在主机c6中创建监控项:( 监控被监控主机的进程httpd否运行中 )
自定义名称: Check_process_Apache
键值: check_process[httpd]
信息类型: 数字(无正负)
图片20.png
备注:
其他地方保持默认,点击页底“添加”按钮;



给主机c6的监控项“Check_process_Apache”创建触发器:(被监控主机的进程httpd正在运行时就告警)
自定义名称: Process httpd is up.
严重性: 一般严重
表达式: {c6:check_process[httpd].last()}<>0
图片21.png
备注:
触发器的表达式要用到监控项中的键值;
其他地方保持默认,点击页底“添加”按钮;



######

测试:
被监控主机启动自己的Apache服务:
[root@zabbix_client ~]# service httpd start
start apache...  done
[root@zabbix_client ~]#


当主机c6的进程httpd正在运行时,在仪表板上看到的效果:(显示对应触发器的名称)
Process httpd is up.
图片22.png

图片23.png



监测》最新数据:(查看指定问题(触发器)对应的监控项的当前值)
根据监控项的名称使用过滤器进行定位:(可以输入关键字进行模糊查询)
图片24.png


图片25.png

图片26.png



###

被监控主机停止自己的Apache服务:
[root@zabbix_client ~]# service httpd stop
stop apache...  done
[root@zabbix_client ~]#


当主机c6的进程httpd没有运行时,在仪表板上的告警会马上消失,如下图:
图片27.png


监测》最新数据:
再次,查看主机c6的监控项“Check_process_Apache”的当前值:
图片28.png

图片29.png


查看主机c6的监控项“Check_process_Apache”的图形:
图片30.png

选择时间范围,查看监控项“Check_process_Apache”的图形:
图片31.png

无需特意给监控项创建图形,也会以监控项为名称自动创建一个图形:
图片32.png
注释:图形中的数据线是从右往左延伸的。

图片33.png





相关文章:
Zabbix使用Agent监控Windows进程+问题
Zabbix使用Agent监控CentOS7/Redhat7

返回列表