我有许多实时运行的服务器。每个服务器都有许多应用程序。每个应用程序都有类似的目录/etc/somedir1
,/etc/somedir2
其中每个目录中都有许多.html
文件。应用程序实时级别显示为有多少.html
可用文件。越多越好。文件.html
会不时被删除。144 个或更少的.html
文件被视为关键文件,我将手动添加更多.html
文件。
服务器数量越来越多,以后会比较难。
我希望所有服务器都由一个服务器(如 M/Monit)监控,基于.html
特定目录中剩余的文件数。
M/Monit 看起来很棒,但据我所知,它只能实时监控服务器及其相关服务。
我能想到的一件事是ls | wc -l
然后scp
进入监控服务器。但我不知道如何让它像在其他服务器监控工具中一样显示在监控服务器中。
欢迎任何想法
答案1
为您提供一些选择:
- Nagios + NRPE
编写一个简单的脚本,统计指定目录中*.html文件的数量:
COUNT=`ls“$1”/*.html | wc -l` 如果 [ $COUNT -lt $3 ]; 那么 echo "OK - $1 中的 html 文件数量为 $COUNT" 出口 0 elif [ $COUNT -ge $3 -a $COUNT -lt $5 ]; 然后 echo "警告 - $1 中的 html 文件数量为 $COUNT"" 出口 1 别的 echo "严重 - $1 中的 html 文件数量为 $COUNT"" 出口 2 菲
并使用以下命令调用它nrpe.conf
:
command[number_of_html_files]=/path/to/html_count.sh /etc/somedir1 -w 121 -c 141
- Ganglia + Gmetric:
创建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
它将为您创建一个图表。
答案2
我们考虑过使用 monit,但最终还是选择了功能更强大但配置更困难的 Nagios。Nagios 当然可以做你想做的事,尽管可能需要编写一个发出正确类型退出代码的 shell 脚本。
答案3
如果不知道你用什么进行监控,就很难说。
你可以使用 snmpd 来监控它。你可以告诉它调用一个脚本并将结果作为 snmp 值返回。使用该方法可能是最简单的,特别是如果你已经在它上面设置了 snmpd。
答案4
如果 scp 到所有服务器,然后将 wc 结果存储到文件/数据库/rrd/等中,每 x 分钟运行一次 cronjob。而在监控方面,你只显示文件/数据库/rrd 的结果