在RHEL 6.4上使用Zabbix v2.4
我想跟踪目录不改变的多个系统上文件的校验和,但是文件名有很小的变化。 在我们的例子中,文件名包含软件的内部版本号,而且我们有不同版本的多个站点。 (因此,名称的差异。)
我可以使用内置的正则expression式支持创build一个单一的模板项目,这些模板项目考虑到这些不同的文件名称?
示例文件名称:
Zabbix有内置的正则expression式支持,但是我还没有find一个在项目键中使用的好例子。 正则expression式页面说
在引用时可能导致错误解释的情况下(例如,项目键的参数中的逗号),可以将整个引用放在这样的引号中
这意味着它们可以用在键中,但也许不是我想用它们的方式。
我使用适当的逻辑expression式将自定义的RE定义为“FileName”,以匹配我的文件名(testing签出就好),我的密钥如下所示:
vfs.file.cksum[/path/to/file/@FileName]
但是,当我查看代理日志,它说“检查”vfs.file.cksum [/path/到/文件/ @文件名]“不支持”与“没有这样的文件或目录”,所以它看起来不像关键是扩展/匹配,这意味着我可能误解了如何使用自定义RE的键(或只能在某些关键types)。
根据项目文档 , vfs.file.cksum[]接受一个文件名作为第一个参数(不同于例如logrt[] item),所以正则expression式在这里不起作用。
一种可能的方法是在这里使用一个用户macros ,并定义该项目如下:
vfs.file.cksum[/path/to/file/12{$VERSION}4_file.jar]
然后为每个主机定义适当的{$VERSION}macros。
或者,您可以使用低级别发现来发现您想要的文件,但是这将涉及到编写一个UserParameter,您宁愿避免。 同时,在ZBXNEXT-712上有一个内置文件发现的function请求,您可以投票。