返回列表 发帖

Zabbix监控Linux文件是否更改过

笺注:这是在 CentOS8编译安装Zabbix4.4.5 的基础上进行的。


Zabbix本机(Zabbix server)使用的模板Template OS Linux by Zabbix agent,默认就监控本地文件/etc/passwd的内容有没有更改过。



模板Template OS Linux by Zabbix agent自带的监控项:
名称: Checksum of /etc/passwd
键值: vfs.file.cksum[/etc/passwd]
信息类型: 字符
更新间隔: 15m
图片1.png
2022-9-21 10:25


键值模板:
vfs.file.cksum[file]  文件校验,unix标准算法。返回整数

本页拖下去:
图片2.png
2022-9-21 10:25

注释:默认就是已启用。



模板Template OS Linux by Zabbix agent自带的触发器:
名称: /etc/passwd has been changed
严重性: 信息
表达式: {Zabbix server:vfs.file.cksum[/etc/passwd].diff()}>0
图片3.png
2022-9-21 10:26

注释:触发器的表达式要用到监控项中的键值。

本页拖下去:
图片4.png
2022-9-21 10:27

注释:
默认就是已启用。
默认就是允许手动关闭;
这里的“允许手动关闭”,是指允许在仪表板关闭这个问题(触发器);



######

在Zabbix服务器上使用命令zabbix_get对本地文件/etc/passwd进行文件校验:(每次文件的内容更改后,返回值都会变的;不更改就一直一样)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/etc/passwd]
2491050441
[root@centos8 ~]#


添加系统用户就会更改本地文件/etc/passwd的内容:
[root@centos8 ~]# useradd zhuohua
[root@centos8 ~]# tail -1 /etc/passwd
zhuohua:x:1001:1001::/home/zhuohua:/bin/bash
[root@centos8 ~]#


在Zabbix服务器上使用命令zabbix_get对本地文件/etc/passwd进行文件校验:(文件内容更改后,看到返回值变了)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/etc/passwd]
3834533161
[root@centos8 ~]#



在仪表板上可以看到如下的告警:(显示对应触发器的名称)
/etc/passwd has been changed
图片6.png
2022-9-21 10:29


图片7.png
2022-9-21 10:29


备注:这个问题的告警信息在仪表板上的持续时间会超过15分钟。



按上面触发器“/etc/passwd has been changed”的配置,可以在仪表板上手动关闭这个问题:(点击确认下面的“不”)
图片8.png
2022-9-21 10:30


关闭这个问题:
图片9.png
2022-9-21 10:30

本页拖下去:
图片10.png
2022-9-21 10:30



在仪表板上的告警马上消失了,如下图:
图片11.png
2022-9-21 10:31














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

自定义监控本地文件/etc/test.txt的内容有没有更改过:
[root@centos8 ~]# echo 'zhuohua' > /etc/test.txt
[root@centos8 ~]# ll !$
ll /etc/test.txt
-rw-r--r-- 1 root root 8 9月  21 08:55 /etc/test.txt
[root@centos8 ~]#



[root@centos8 ~]# zabbix_get
-bash: zabbix_get: 未找到命令

[root@centos8 ~]# find / -name zabbix_get
/root/zabbix-4.4.5/src/zabbix_get
/root/zabbix-4.4.5/src/zabbix_get/zabbix_get
/usr/local/zabbix/bin/zabbix_get
[root@centos8 ~]#

做个软链接:
[root@centos8 ~]# ln -s /usr/local/zabbix/bin/zabbix_get /usr/sbin
[root@centos8 ~]#

[root@centos8 ~]# ll /usr/sbin/zabbix_get
lrwxrwxrwx 1 root root 32 9月  21 08:56 /usr/sbin/zabbix_get -> /usr/local/zabbix/bin/zabbix_get
[root@centos8 ~]#



在Zabbix服务器上使用命令zabbix_get对本地文件/etc/test.txt进行文件校验:(每次文件的内容更改后,返回值都会变的;不更改就一直一样)
[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/etc/test.txt]
1771315924
[root@centos8 ~]#
[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/etc/test.txt]
1771315924
[root@centos8 ~]#

[root@centos8 ~]# echo 'zhuohua168' > /etc/test.txt
[root@centos8 ~]#

[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/etc/test.txt]
2415528430
[root@centos8 ~]#


笺注:
命令zabbix_get无法检测目录/root下的文件有没有更改过:
[root@centos8 ~]# ll /usr/local/zabbix.conf.php
-rw-r--r-- 1 root root 415 9月  21 08:59 /usr/local/zabbix.conf.php
[root@centos8 ~]#
[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/usr/local/zabbix.conf.php]
523213832
[root@centos8 ~]#



[root@centos8 ~]# ll /root/zabbix.conf.php
-rw-r--r-- 1 root root 415 7月  12 2020 /root/zabbix.conf.php
[root@centos8 ~]#

[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/root/zabbix.conf.php]
ZBX_NOTSUPPORTED: Cannot open file: [13] Permission denied
[root@centos8 ~]#


[root@centos8 ~]# chmod 777 /root/zabbix.conf.php
[root@centos8 ~]# ll /root/zabbix.conf.php
-rwxrwxrwx 1 root root 415 7月  12 2020 /root/zabbix.conf.php
[root@centos8 ~]#

[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/root/zabbix.conf.php]
ZBX_NOTSUPPORTED: Cannot open file: [13] Permission denied
[root@centos8 ~]#



创建监控项:(监控本地文件/etc/test.txt的内容有没有更改过)
自定义名称: Checksum of /etc/test.txt
键值: vfs.file.cksum[/etc/test.txt]
信息类型:  字符
更新间隔: 2m  (在仪表板告警的持续时间;这是2分钟)
图片12.png
2022-9-21 10:34

备注:其他地方保持默认,点击页底“添加”按钮。


在监控项中使用过滤器:
图片13.png
2022-9-21 10:35


根据名称中的关键字搜索监控项:
图片14.png
2022-9-21 10:35



新的监控项添加成功后,要看其状态是否为“已启用”:
图片15.png
2022-9-21 10:35


图片16.png
2022-9-21 10:36




给监控项“Checksum of /etc/test.txt”创建触发器:
自定义名称: /etc/test.txt has been changed
严重性: 警告
表达式: {Zabbix server:vfs.file.cksum[/etc/test.txt].diff()}>0
图片17.png
2022-9-21 10:36

注释:触发器的表达式要用到监控项中的键值。

本页拖下去:
图片18.png
2022-9-21 10:36



在触发器中使用过滤器:
图片19.png
2022-9-21 10:37


根据名称中的关键字搜索触发器:
图片20.png
2022-9-21 10:37



新的触发器添加成功后,要看其状态是否为“已启用”:
图片21.png
2022-9-21 10:37


图片22.png
2022-9-21 10:38




######

在Zabbix服务器上使用命令zabbix_get对本地文件/etc/test.txt进行文件校验:(文件内容更改前)
[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/etc/test.txt]
2415528430
[root@centos8 ~]#

[root@centos8 ~]# echo 'zhuohua_new' > /etc/test.txt
[root@centos8 ~]#

在Zabbix服务器上使用命令zabbix_get对本地文件/etc/test.txt进行文件校验:(文件内容更改后)
[root@centos8 ~]# zabbix_get -s 127.0.0.1 -k vfs.file.cksum[/etc/test.txt]
630230514
[root@centos8 ~]#


在仪表板上可以看到如下的告警:(显示对应触发器的名称)
/etc/test.txt has been changed
图片23.png
2022-9-21 10:38


图片24.png
2022-9-21 10:39


备注:
按上面监控项“Checksum of /etc/test.txt”的配置,这个问题的告警信息会在仪表板上持续2分钟后,自动消失。

按上面触发器“/etc/test.txt has been changed”的配置,可以在仪表板上手动关闭这个问题。






相关文章:
Zabbix监控Windows文件是否更改过

Zabbix5.0.12_监控Linux文件是否更改过

返回列表