У меня много серверов, работающих вживую. У каждого сервера есть много приложений. У каждого приложения есть каталог вроде /etc/somedir1
, /etc/somedir2
где в каждом из этих каталогов есть много .html
файлы. Уровень приложения в реальном времени отображается как .html
файлы доступны. Чем больше, тем лучше. В .html
файлы будут время от времени удаляться. 144 или меньше .html
файлы считаются критическими, и я добавлю вручную больше .html
файлы.
Количество серверов растет, в будущем будет сложно.
Я хочу, чтобы все эти серверы контролировались одним сервером (например, M / Monit), в зависимости от количества .html
файлы, оставленные в определенных каталогах.
M / Monit выглядит великолепно, но, AFAIK, он отслеживает только сервер в реальном времени и связанные с ним службы.
Одна вещь, о которой я могу думать, это ls | wc -l
а потом scp
к серверу монитора. Но я не знаю, как сделать так, чтобы это отображалось на сервере монитора, как в других инструментах мониторинга сервера.
Любые идеи приветствуются
Мы рассматривали возможность использования monit, но в итоге остановились на более мощном, но сложном в настройке Nagios. Nagios, безусловно, может делать то, что вы хотите, хотя, вероятно, с написанием сценария оболочки, который генерирует правильный тип кодов выхода.
Некоторые варианты для вас:
Напишите простой скрипт для подсчета количества файлов * .html в указанном каталоге:
COUNT=`ls "$1"/*.html | wc -l` if [ $COUNT -lt $3 ]; then echo "OK - The number of html files in $1 is $COUNT" exit 0 elif [ $COUNT -ge $3 -a $COUNT -lt $5 ]; then echo "Warning - The number of html files in $1 is $COUNT"" exit 1 else echo "Critical - The number of html files in $1 is $COUNT"" exit 2 fi
и позвони в nrpe.conf
с участием:
command[number_of_html_files]=/path/to/html_count.sh /etc/somedir1 -w 121 -c 141
Создать 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
он создаст для вас график.
Трудно сказать, не зная, чем вы отслеживаете.
Что вы можете сделать, так это использовать snmpd для отслеживания этого. Вы можете указать ему вызвать сценарий и вернуть результат в виде значения snmp. Использование этого метода, вероятно, будет самым простым, особенно если вы уже настроили на нем snmpd.
как уже упоминали другие, написать для этого плагин nagios было бы тривиально. в качестве альтернативы, если вы не хотите запускать экземпляр nagios, напишите небольшой скрипт на perl / python для просмотра каталогов с помощью inotify, отслеживания количества файлов и выдачи соответствующих сигналов (сигнальные ракеты и т. д.) по мере необходимости.
как, если scp на все серверы, а затем сохранить результаты wc в files / database / rrd / etc. запуск cronjob каждые x минут. а на стороне мониторинга вы просто показываете результаты из файлов / базы данных / rrd