Мониторинг Apache в Zabbix

Справочник системного администратора

В данной статье рассмотрим возможность мониторинга ваших веб-серверов на базе 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, после чего проверяем работу триггеров.