blog.zhuohua.store's Archiver

admin 发表于 2020-6-2 20:47

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

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


被监控主机上的文件:
[root@zabbix_client ~]# ll /zabbix-agent-4.4.5-2.el6.x86_64.rpm
[color=Purple]-rwxr-xr-x.[/color] 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
[color=Purple]-rw-r--r--.[/color] 1 root root 3482 7月   5 2018 /Dir1/安装日志.log.syslog
[root@zabbix_client ~]#

[root@zabbix_client ~]# ll /Dir1/lnmp-install.log
[color=Purple]-rw-r--r--.[/color] 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 [color=Blue]192.168.168.130[/color] -k vfs.file.exists[[color=DarkRed]/zabbix-agent-4.4.5-2.el6.x86_64.rpm[/color]]
[color=Purple]1[/color]
[root@centos8 ~]#

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

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


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


笺注:
在Zabbix服务器上无法使用命令zabbix_get检测被监控主机的目录/root下的文件是否存在:
[root@zabbix_client ~]# ll /root/zabbix-agent-4.4.5-2.el6.x86_64.rpm
[color=Purple]-rwxr-xr-x.[/color] 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[[color=DarkRed]/root/zabbix-agent-4.4.5-2.el6.x86_64.rpm[/color]]
[color=Red]ZBX_NOTSUPPORTED: Cannot obtain file information: [13] Permission denied[/color]
[root@centos8 ~]#





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

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


主机[color=Blue]Linux_server_01[/color]添加成功:
[attach]21621[/attach]
注释:假如只是监控文件是否存在,主机可以使用模板,也可以不使用。



######

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



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

插入表达式:( 监控项 [color=Blue]Linux_server_01: Check_file_exists /Dir1/lnmp-install.log[/color] )
[attach]21625[/attach]

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



######

测试:

被监控主机重命名指定的文件:
[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[[color=DarkRed]/Dir1/lnmp-install.log[/color]]
[color=Purple]0[/color]
[root@centos8 ~]#


当主机Linux_server_01的文件/Dir1/lnmp-install.log不存在时,在仪表板上看到的效果:(显示对应触发器的名称)
[color=Blue]File /Dir1/lnmp-install.log is not exit.[/color]
[attach]21628[/attach]

[attach]21629[/attach]



######

被监控主机再次重命名指定的文件:
[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["[color=DarkRed]/Dir1/lnmp-install.log[/color]"]
[color=Purple]1[/color]
[root@centos8 ~]#


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





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

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

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

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

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



###

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

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

插入:
UserParameter=[color=DarkRed]Command_1[/color],/Scripts/check.sh

如下图:
[attach]21631[/attach]


保存好配置文件后,重启一下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 [color=Blue]127.0.0.1[/color] -k [color=DarkRed]Command_1[/color]
[color=Purple]1[/color]
[root@centos8 ~]#

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





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

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

[color=DarkRed]agent.ping[/color]   Zabbix客户端可达性检查。返回 1 - 可达

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

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


###

[color=DarkRed]system.uname[/color]   显示被监控主机的系统信息。返回字符串

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


###

[color=DarkRed]agent.hostname[/color]   显示被监控主机的主机名。返回字符串

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


###

[color=DarkRed]system.users.num[/color]   显示被监控主机已登录的用户数量。返回整数

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


###

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

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

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

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

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





相关文章:
[url=http://blog.zhuohua.store/viewthread.php?tid=392&page=1&extra=#pid782]Zabbix使用Agent监控Windows文件是否存在[/url]
[url=http://blog.zhuohua.store/viewthread.php?tid=528&extra=page%3D1]Zabbix5.0.12_监控Linux文件是否存在[/url]

页: [1]

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