В данной статье рассмотрим возможность мониторинга ваших веб-серверов на базе Apache в системе Zabbix.
Для мониторинга Apache в Zabbix необходимо произвести ряд правок в конфигурацию веб-сервера.
1. Открываем для редактирования файл конфигурации Apache. В CentOS это /etc/httpd/conf/httpd.conf, в Debian или Ubuntu – /etc/apache2/apache2.conf.
2. В самый низ конфигурации вставляем следующий код:
ExtendedStatus On
<Location /server-status>
SetHandler server-status
</Location>
3. Сохраняем конфигурацию и перезапускаем Apache. Далее пробуем получить диагностическую информацию перейдя по адресу http://IP-адрес-сервера/server-status
Должно открыться примерно следующее:
Если браузер отобразил страницу с диагностическими сведениями, значит внесенные изменения в конфигурацию успешно работают.
4. Если на третьем шаге у вас все заработало, то пропускаем этот этап и сразу переходим к 5 этапу.
Если же при попытке перейти на страницу server-status у вас выходит 404 ошибка, обратите внимание, не используются ли на вашем сервере конфигурация в файле .htaccess в корневой директории вашего сайта. Откройте этот файл для редактирования и посмотрите включен ли там модуль mod_rewrite, если значение параметра RewiteEngine равно ON, поменяйте временно его на OFF, сохраните изменения и снова попробуйте зайти на страницу server-status. Если страница открылась, значит необходимо подкорректировать настройки .htaccess.
Дело в том, что несмотря на то, что директивы <Location> действуют первыми, обработчик на этом этапе не вызывается, так как в параметре RewriteRule, в .htaccess, устанавливается свой обработчик, например, для запуска PHP-скрипта, поэтому SetHandler в директиве <Location> в конечном итоге не имеет никакого эффекта.
Вернем параметру RewiteEngine значение ON и сразу после него, с новой строки, добавим следующий код:
RewriteCond %{REQUEST_URI} !=/server-status
Сохраняем конфигурацию и пробуем снова обратиться к странице server-status – если все открылось, то переходим к следующему этапу.
5. На данном этапе Apache уже умеет отдавать служебную информацию через страницу server-status, однако доступ к этой странице есть абсолютно у всех. Будет грамотнее, если мы ограничим доступ к этой странице, например, разрешим к ней доступ только для сервера Zabbix.
Для этого снова открываем конфигурацию Apache (httpd.conf или apache2.conf) и переходим в самый конец, где мы с вами вставляли код для обработки сервисной страницы и после строки SetHandler server-status добавим еще несколько параметров – Order allow,deny и Allow from 10.11.96.30, должно получиться так:
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from 10.11.96.30
</Location>
Сохраняем конфигурацию и перезапускаем Apache.
6. Последним действием открываем на Zabbix сервере хост данного сервера и добавляем ему шаблон Apache by HTTP, после чего проверяем работу триггеров.