linux两台不同地址的机器udp,使用Zabbix监控位于两台不同的机器上的文件是否一致...

生产上有一需求,要把某个文件同步到另一台备机上,备机启动程序的时候需要引用这个文件,以便能够实现failover。文件同步的方法这里不言,这里主要讨论怎么通过zabbix平台实现对两个位于不同机器上的文件是否一致进行监控,若出现不一致的情况立即告警,需要人为干预。

在网上也搜索了好多帖子,差不多都使用了脚本来实现,感觉都不适合自己。于是曲曲折折走了一段弯路,最开始打算用Python脚本实现的,脚本都准备好了也测试过了。后来看到了calculate item这种方式,只是单纯的通过zabbix就能实现了,所以何乐而不为呢,于是就用这种方案了。现在把最后方案整理一下,与大家分享一下。

一、首先创建合适的基础监控项

我一开始就考虑着使用vfs.file.md5sum和vfs.file.cksum这两个item来实现。后来操作起来发现vfs.file.cksum比较适合,因为vfs.file.cksum的返回值是一串数字,便于下一步计算。

e5de7afba6b723d31f4779c39511c284.png

1.首先在源主机上创建一个item(注意这里面的Key和Type of information参数设置)

9140cbde0e5e010e5d107727bc6aaf7a.png

2.备机上同样的方法创建一个item(这里不贴图了)

二、使用item类型中的Calculated来实现两个监控项之间的比较

用calculate可以对item进行计算,计算方式主要靠一系列的表达式组成。计算后的结果存放在数据库中,也就是说历史数据、趋势数据都会存在数据库中。这就意味着可以对calculate item监控项进行告警配置。详细介绍请点击链接

Key在每个HOST中都是唯一的,不能重复。其表达式如下:

func(|,,,...)

各个参数的含义如下图所示:

6f762407e2e558948db5b6ee09623c6d.png

现在在备机上创建一个calculate item监控项,来比较两个文件是否一致。通过前者的cksum值与后者sksum作差运算

3451d53a6a47d0d00b74c7071d335e58.png

注:如果操作完成后中出现下面提示的错误,需要检查一下Type of information设置:

f338fb21645d3caee5ea1903dcd71332.png

这里解释一下出现这个问题的原因:当前者cksum值比后面大的时候正常显示,而当前值比后面小的时候就会出现上面这种结果,究其原因也就是类型不同其能包含的值也不同。

下面详细介绍一下item参数中的Type of information

Numeric(unsigned):64位无符号的整数

Numeric(float):浮点数类型(从zabbix2.2开始,接收的值大小可以支持如1e+70、1e-70.)

Character:字符(字符串)类型数据限制为255B

Log:日志文件,必须使用的Key为log[]和logrt[]

Text:文本(text)不限制大小

三、创建触发器,测试结果

在备机上创建一个触发器,当结果不为0时产生告警

d5b45299ec86e9dc7e3e99f96c38d383.png

手动操作一下让两个文件不一样时能立刻产生告警:

e8f141f5fb39d02aa87c77525f6ec121.png

目的达成!

更多Zabbix相关教程集合:

ZABBIX 的详细介绍:请点这里

ZABBIX 的下载地址:请点这里

0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值