自定义服务器监控:监控特定目录中特定文件的数量

我有很多服务器上运行。 每个服务器有很多应用程序 每个应用程序都有类似于/etc/somedir1/etc/somedir2的目录,每个目录中都有许多.html文件。 应用程序生存级别显示为可用的.html文件数量。 越多越好。 .html文件将不时删除。 144或更less的.html文件被认为是关键的,我会手动添加更多.html文件。

服务器数量正在增长,未来将很难。

我想要一台服务器(如M / Monit)监视的所有服务器,基于特定目录中剩余的.html文件数量。

M / Monit看起来不错,但AFAIK,它只监视服务器的生活和相关的服务。

我能想到的一件事是ls | wc -l ls | wc -l然后scp到监视器服务器。 但是我不知道如何使其显示在监视器服务器上,就像其他服务器监视工具一样。

任何想法都欢迎

有些选项适合你:

  • Nagios + nrpe

编写一个简单的脚本来计算指定目录中* .html文件的数量:

 COUNT =`ls“$ 1”/ *。html |  wc -l`
如果[$ COUNT -lt $ 3]; 然后
    回声“确定 -  $ 1中的HTML文件的数量是$ COUNT”
    退出0
 elif [$ COUNT -ge $ 3 -a $ COUNT -lt $ 5]; 然后
    回声“警告 -  $ 1中的HTML文件的数量是$ COUNT”“
    出口1
其他
     echo“Critical  -  $ 1中的html文件的数量是$ COUNT”“
     2号出口
科幻

并在nrpe.conf中用以下方法调用它:

 command[number_of_html_files]=/path/to/html_count.sh /etc/somedir1 -w 121 -c 141 
  • Ganglia + Gmetric:

创build一个html_count_gmetric.sh文件如下:

 /usr/bin/gmetric --name html_count --value `ls "$1"/*.html | wc -l` --type uint32 --unit files 

并把它放到一个cron工作中:

 * * * * * /path/to/html_count_gmetric.sh /etc/somedir1 

它会为你创build一个图表。

我们考虑使用monit,但结束了更强大,但更难以configuration的Nagios。 Nagios当然可以做你想做的,虽然可能写一个shell脚本发出正确types的退出代码。

不知道你在监视什么,这很难说。

你可以做的是使用snmpd来监视它。 你可以告诉它调用一个脚本并返回结果作为一个snmp值。 使用这种方法可能是最简单的,特别是如果你已经build立了snmpd。

正如其他人所说的,为此编写一个nagios插件将是微不足道的。 或者,如果你不想启动一个nagios实例,可以写一个perl / python脚本,用inotify来观察目录,跟踪文件数量并根据需要发出适当的信号(闪光枪等等)。

如果scp到所有服务器,然后将wc结果存储到文件/数据库/ rrd /等。 每x分钟运行一次cronjob。 而在监控方面你只是显示来自files / database / rrd的结果