blog.zhuohua.store's Archiver

admin 发表于 2020-3-25 21:22

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

笺注:被监控主机的Agent的安装可参考 [url=http://blog.zhuohua.store/viewthread.php?tid=271&extra=page%3D1]Zabbix使用Agent监控CentOS6/Redhat6[/url]


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

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

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

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



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

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

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

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



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

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

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


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

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





######

在主机[color=Blue]c6[/color]中创建监控项:( 监控被监控主机的进程[color=DarkRed]mysqld[/color]否运行中 )
自定义名称: [color=Blue]Check_process_MySQL[/color]
键值: proc.num[[color=DarkRed]mysqld[/color]]
信息类型: 数字(无正负)
[attach]21462[/attach]
本页拖下去:
[attach]21463[/attach]



给主机[color=Blue]c6[/color]的监控项“Check_process_MySQL”创建触发器:(被监控主机的进程mysqld没有运行时就告警)
自定义名称: [color=Blue]Process mysqld is down.[/color]
严重性: 警告
[attach]21464[/attach]

插入表达式:( 监控项 [color=Blue]c6: Check_process_MySQL[/color] )
[attach]21465[/attach]

自动生成的表达式:(触发器的表达式要用到监控项中的键值)
{c6:[color=DarkRed]proc.num[mysqld][/color].last()}=0
[attach]21466[/attach]
本页拖下去:
[attach]21467[/attach]



######

测试:

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


当主机c6的进程mysqld没有运行时,在仪表板上看到的效果:(显示对应触发器的名称)
[color=Blue]Process mysqld is down.[/color]
[attach]21468[/attach]

[attach]21469[/attach]



监测》最新数据:(查看指定问题(触发器)对应的监控项的当前值)
根据监控项的名称使用过滤器进行定位:
[attach]21470[/attach]


[attach]21471[/attach]

[attach]21472[/attach]



###

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


当主机c6的进程mysqld正在运行时,在仪表板上的告警会马上消失,如下图:
[attach]21473[/attach]


监测》最新数据:
再次,查看主机c6的监控项“Check_process_MySQL”的当前值:
[attach]21474[/attach]

[attach]21475[/attach]


查看主机c6的监控项“Check_process_MySQL”的图形:
[attach]21476[/attach]

选择时间范围,查看监控项“Check_process_MySQL”的图形:
[attach]21477[/attach]

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

[attach]21479[/attach]














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

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

[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]#


把脚本的属主和属组改为[color=Blue]zabbix[/color]:
[root@zabbix_client scripts]# chown zabbix.zabbix check_process.sh
[root@zabbix_client scripts]# ll check_process.sh
-rw-r--r-- 1 [color=Purple]zabbix zabbix[/color] 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 [color=Blue]!$[/color]
ll /etc/zabbix/scripts/check_process.sh
[color=Purple]-rwxr-xr-x[/color] 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 [color=DarkRed]httpd[/color]
[color=Purple]6[/color]

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



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

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



######

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

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

插入:
[code]UserParameter=check_process[*],/etc/zabbix/scripts/check_process.sh $1[/code]
效果如下图:
[attach]21480[/attach]


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



######

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

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


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

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


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



######

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



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



######

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


当主机c6的进程httpd正在运行时,在仪表板上看到的效果:(显示对应触发器的名称)
[color=Blue]Process httpd is up.[/color]
[attach]21483[/attach]

[attach]21484[/attach]



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


[attach]21486[/attach]

[attach]21487[/attach]



###

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


当主机c6的进程httpd没有运行时,在仪表板上的告警会马上消失,如下图:
[attach]21488[/attach]


监测》最新数据:
再次,查看主机c6的监控项“Check_process_Apache”的当前值:
[attach]21489[/attach]

[attach]21490[/attach]


查看主机c6的监控项“Check_process_Apache”的图形:
[attach]21491[/attach]

选择时间范围,查看监控项“Check_process_Apache”的图形:
[attach]21492[/attach]

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

[attach]21494[/attach]





相关文章:
[url=http://blog.zhuohua.store/viewthread.php?tid=330&page=1&extra=#pid402]Zabbix使用Agent监控Windows进程+问题[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=272&page=1&extra=#pid275]Zabbix使用Agent监控CentOS7/Redhat7[/url]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.