Назад | Перейти на главную страницу

Пользовательский мониторинг сервера: мониторинг количества определенных файлов в определенном каталоге

У меня много серверов, работающих вживую. У каждого сервера есть много приложений. У каждого приложения есть каталог вроде /etc/somedir1, /etc/somedir2 где в каждом из этих каталогов есть много .html файлы. Уровень приложения в реальном времени отображается как .html файлы доступны. Чем больше, тем лучше. В .html файлы будут время от времени удаляться. 144 или меньше .html файлы считаются критическими, и я добавлю вручную больше .html файлы.

Количество серверов растет, в будущем будет сложно.

Я хочу, чтобы все эти серверы контролировались одним сервером (например, M / Monit), в зависимости от количества .html файлы, оставленные в определенных каталогах.

M / Monit выглядит великолепно, но, AFAIK, он отслеживает только сервер в реальном времени и связанные с ним службы.

Одна вещь, о которой я могу думать, это ls | wc -l а потом scp к серверу монитора. Но я не знаю, как сделать так, чтобы это отображалось на сервере монитора, как в других инструментах мониторинга сервера.

Любые идеи приветствуются

Мы рассматривали возможность использования monit, но в итоге остановились на более мощном, но сложном в настройке Nagios. Nagios, безусловно, может делать то, что вы хотите, хотя, вероятно, с написанием сценария оболочки, который генерирует правильный тип кодов выхода.

Некоторые варианты для вас:

  • Nagios + nrpe

Напишите простой скрипт для подсчета количества файлов * .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
  • Ганглии + 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

он создаст для вас график.

Трудно сказать, не зная, чем вы отслеживаете.

Что вы можете сделать, так это использовать snmpd для отслеживания этого. Вы можете указать ему вызвать сценарий и вернуть результат в виде значения snmp. Использование этого метода, вероятно, будет самым простым, особенно если вы уже настроили на нем snmpd.

как уже упоминали другие, написать для этого плагин nagios было бы тривиально. в качестве альтернативы, если вы не хотите запускать экземпляр nagios, напишите небольшой скрипт на perl / python для просмотра каталогов с помощью inotify, отслеживания количества файлов и выдачи соответствующих сигналов (сигнальные ракеты и т. д.) по мере необходимости.

как, если scp на все серверы, а затем сохранить результаты wc в files / database / rrd / etc. запуск cronjob каждые x минут. а на стороне мониторинга вы просто показываете результаты из файлов / базы данных / rrd