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

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

这是我想要监控的日志文件:

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

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

问题在于15215125111115这是生成的随机 ID

这是我的脚本,其中 Nagios 正在检查日志档案小路:

可变量:

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

..

检查 = $(/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

我将通过 cron 运行一个单独的脚本,该脚本识别最新的日志文件并为其创建符号链接(命名为“latest.log”之类的名称)。有几种方法可以做到这一点(例如,使用ls -rt | tail或)。find -mtime

如果新的日志文件每天在同一时间创建,则安排它在此之后立即运行。如果不是,则让它每隔 (1 分钟、5 分钟等) 运行一次,检查是否有新的日志文件。

...然后让 check_logfiles 使用该符号链接。

答案2

现在可以在自述文件 - check_logfiles 目录中找到要使用的预定义宏

   $CL_HOSTNAME$ - the hostname without domain.
   $CL_IPADDRESS$ - the IP address of the aforementioned.
   $CL_DATE_YYYY$ - the year (1970...)
   $CL_DATE_MM$ - the month (01..12)
   $CL_DATE_DD$ - the day of month (01..31)
   $CL_DATE_HH$ - the hour (00..23)
   $CL_DATE_MI$ - the minute (00..59)
   $CL_DATE_SS$ - the second (00..59)
   $CL_SERVICEDESC$ - the service description derived from the config file.
   $CL_NSCA_SERVICEDESC$ - dto.
   $CL_NSCA_HOST_ADDRESS$ - the local address 127.0.0.1
   $CL_NSCA_PORT$ - 5667
   $CL_NSCA_TO_SEC$ - 10
   $CL_NSCA_CONFIG_FILE$ - send_nsca.cfg

相关内容