返回列表 发帖

Zabbix使用Agent监控Linux文件是否存在

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


被监控主机上的文件:
[root@zabbix_client ~]# ll /zabbix-agent-4.4.5-2.el6.x86_64.rpm
-rwxr-xr-x. 1 root root 432920 2月   8 11:01 /zabbix-agent-4.4.5-2.el6.x86_64.rpm
[root@zabbix_client ~]#

[root@zabbix_client ~]# ll /Dir1/安装日志.log.syslog
-rw-r--r--. 1 root root 3482 7月   5 2018 /Dir1/安装日志.log.syslog
[root@zabbix_client ~]#

[root@zabbix_client ~]# ll /Dir1/lnmp-install.log
-rw-r--r--. 1 root root 2547268 2月   8 11:11 /Dir1/lnmp-install.log
[root@zabbix_client ~]#


在Zabbix服务器上使用命令zabbix_get检测被监控主机的文件是否存在:(文件存在时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.exists[/zabbix-agent-4.4.5-2.el6.x86_64.rpm]
1
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.exists[/Dir1/安装日志.log.syslog]
1
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.exists[/Dir1/lnmp-install.log]
1
[root@centos8 ~]#


键值模板:
vfs.file.exists[file]       
检查文件是否存在。返回 0 - 未找到文件;1 - 常规文件或链接(软/硬)存在



笺注:
在Zabbix服务器上无法使用命令zabbix_get检测被监控主机的目录/root下的文件是否存在:
[root@zabbix_client ~]# ll /root/zabbix-agent-4.4.5-2.el6.x86_64.rpm
-rwxr-xr-x. 1 root root 432920 2月  21 2020 /root/zabbix-agent-4.4.5-2.el6.x86_64.rpm
[root@zabbix_client ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.exists[/root/zabbix-agent-4.4.5-2.el6.x86_64.rpm]
ZBX_NOTSUPPORTED: Cannot obtain file information: [13] Permission denied
[root@centos8 ~]#





################## Zabbix添加被监控主机:

配置》主机》创建主机  (主机名称无需与被监控主机的真实主机名一致;群组可以随便选;IP地址那里要输入被监控主机的IP地址;端口为10050)
图片1.png
页面太长,紧接的是下半部分:
图片2.png


主机Linux_server_01添加成功:
图片3.png
注释:假如只是监控文件是否存在,主机可以使用模板,也可以不使用。



######

在主机Linux_server_01中创建监控项:(监控被监控主机的文件/Dir1/lnmp-install.log是否存在)
自定义名称: Check_file_exists /Dir1/lnmp-install.log
键值: vfs.file.exists[/Dir1/lnmp-install.log]
信息类型: 数字(无正负)
图片5.png
本页拖下去:
图片6.png



给主机Linux_server_01的监控项“Check_file_exists /Dir1/lnmp-install.log”创建触发器:(被监控主机的文件/Dir1/lnmp-install.log不存在时就告警)
自定义名称: File /Dir1/lnmp-install.log is not exit.
严重性: 严重
图片7.png

插入表达式:( 监控项 Linux_server_01: Check_file_exists /Dir1/lnmp-install.log )
图片8.png

自动生成的表达式:(触发器的表达式要用到监控项中的键值)
{Linux_server_01:vfs.file.exists[/Dir1/lnmp-install.log].last()}=0
图片9.png
本页拖下去:
图片10.png



######

测试:

被监控主机重命名指定的文件:
[root@zabbix_client ~]# mv /Dir1/lnmp-install.log /Dir1/lnmp-install.log.bak
[root@zabbix_client ~]#


在Zabbix服务器上使用命令zabbix_get检测被监控主机的文件是否存在:(文件不存在时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.exists[/Dir1/lnmp-install.log]
0
[root@centos8 ~]#


当主机Linux_server_01的文件/Dir1/lnmp-install.log不存在时,在仪表板上看到的效果:(显示对应触发器的名称)
File /Dir1/lnmp-install.log is not exit.
图片11.png

图片12.png



######

被监控主机再次重命名指定的文件:
[root@zabbix_client ~]# mv /Dir1/lnmp-install.log.bak /Dir1/lnmp-install.log
[root@zabbix_client ~]#

在Zabbix服务器上使用命令zabbix_get检测被监控主机的文件是否存在:(文件存在时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.exists["/Dir1/lnmp-install.log"]
1
[root@centos8 ~]#


当主机Linux_server_01的文件/Dir1/lnmp-install.log存在时,在仪表板上的告警会马上消失,如下图:
图片13.png





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

在Zabbix服务器上使用Shell脚本远程检测被监控主机的文件/Dir1/lnmp-install.log是否存在:
[root@centos8 ~]# cat /Scripts/check.sh
#!/bin/bash
/usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.exists["/Dir1/lnmp-install.log"]
[root@centos8 ~]#

设置脚本权限:
[root@centos8 ~]# chmod a+x /Scripts/check.sh
[root@centos8 ~]#
[root@centos8 ~]# ll /Scripts/check.sh
-rwxr-xr-x 1 root root 110 10月 28 20:44 /Scripts/check.sh
[root@centos8 ~]#

测试脚本/Scripts/check.sh:(文件存在时)
[root@centos8 ~]# bash /Scripts/check.sh
1
[root@centos8 ~]#

测试脚本/Scripts/check.sh:(文件不存在时)
[root@centos8 ~]# bash /Scripts/check.sh
0
[root@centos8 ~]#



###

修改Zabbix服务器的Agent配置文件:
[root@centos8 ~]# find / -name "zabbix_agentd.conf"
/root/zabbix-4.4.5/conf/zabbix_agentd.conf
/usr/local/zabbix/etc/zabbix_agentd.conf
[root@centos8 ~]#

[root@centos8 ~]# vi /usr/local/zabbix/etc/zabbix_agentd.conf
# UnsafeUserParameters=0
修改为:(启用该功能)
UnsafeUserParameters=1

插入:
UserParameter=Command_1,/Scripts/check.sh

如下图:
图片14.png


保存好配置文件后,重启一下Zabbix本机的客户端和服务端:
pkill -9 -U zabbix
/usr/local/zabbix/sbin/zabbix_agentd
/usr/local/zabbix/sbin/zabbix_server


在Zabbix服务器测试,验证能否获取本机(127.0.0.1)的键值:(被监控主机的文件/Dir1/lnmp-install.log存在时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k Command_1
1
[root@centos8 ~]#

在Zabbix服务器测试,验证能否获取本机(127.0.0.1)的键值:(被监控主机的文件/Dir1/lnmp-install.log不存在时)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k Command_1
0
[root@centos8 ~]#





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

附加,其他一些监控项的键值模板:

agent.ping   Zabbix客户端可达性检查。返回 1 - 可达

被监控主机的zabbix-agent正常运行时的效果:
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k agent.ping
1

被监控主机停止zabbix-agent后的效果:
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k agent.ping
zabbix_get [3554]: Get value error: cannot connect to [[192.168.168.130]:10050]: [111] Connection refused


###

system.uname   显示被监控主机的系统信息。返回字符串

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k system.uname
Linux zabbix_client 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:29:05 UTC 2017 x86_64


###

agent.hostname   显示被监控主机的主机名。返回字符串

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k agent.hostname
zabbix_client


###

system.users.num   显示被监控主机已登录的用户数量。返回整数

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k system.users.num
5


###

vfs.file.md5sum[file]   对被监控主机指定的文件进行MD5校验。返回字符串(即该文件的MD5哈希值)

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.md5sum[/zabbix-agent-4.4.5-2.el6.x86_64.rpm]
a6890ba48cb45101ef40296d70ea16c3

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.md5sum[/Dir1/安装日志.log.syslog]
84ed0c8ab3c15f05fe3647aa228f7d49

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k vfs.file.md5sum["/Dir1/lnmp-install.log"]
f7969703785fd69f7801b52a54a73ff0

注释:每次文件的内容更改后,返回值都会变的;不更改就一直一样。





相关文章:
Zabbix使用Agent监控Windows文件是否存在
Zabbix5.0.12_监控Linux文件是否存在

返回列表