如何使用Nagios监视生成随机ID的日志文件

时间:2018-11-19 06:01:43

标签: linux bash logging monitoring nagios

这是我要监视的日志文件:

/test/James-2018-11-16_15215125111115-16.15.41.111-appserver0.log

我希望Nagios读取此日志文件,以便我可以监视特定的字符串。

问题出在 15215125111115 上,这是生成的随机ID

这是Nagios在其中检查 Logfile 路径的脚本:

可穿戴设备:

HOSTNAMEIP=$(/bin/hostname -i)
DATE=$(date +%F)

..

  

CHECK = $(/ usr / lib64 / nagios / plugins / check_logfiles / check_logfiles   --tag ='failorder'--logfile = / test / james-$ {date +“%F”} __- $ {HOSTNAMEIP} -appserver0.log   ....

我在nagios中得到以下输出:

could not find logfile /test/James-2018-11-16_-16.15.41.111-appserver0.log

15215125111115 该数字始终是随机生成的,但我不知道如何让nagios进行识别。有没有办法为此添加变量?我尝试添加一个星号“ *”,但这没用。

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

--tag failorder --type rotating::uniform --logfile /test/dummy \
--rotation "james-${date +"%F"}_\d+-${HOSTNAMEIP}-appserver0.log"

如果添加“ -v”,则可以看到内部发生的情况。类型rotating :: uniform告诉check_logfiles轮换方案对于文件名在当前日志和轮换归档之间没有区别。 (您经常发现xyz..log之类的内容)。 check_logfile的作用是查看日志文件应该位于的目录。在/ test / dummy中,它仅使用目录部分。然后,它获取/ test中的所有文件,并将文件名与--rotation参数进行比较。匹配的文件按修改时间排序。因此,check_logfiles知道哪个问题文件最近已更新,最新文件被认为是当前日志文件。在此文件中,check_logfiles搜索criticalpattern。 格哈德