Мониторинг веб-сервера Apache с помощью Zabbix
Веб-сервер Apache может отдавать подробную статистику по работе сервиса, через модуль status_module
. В Zabbix имеется готовый шаблон — https://www.zabbix.com/integrations/apache, который может обрабатывать статистику Apache.
Рассмотрим как настроить веб-сервер Apache для того чтобы Zabbix мог получить доступ к статистике Apache.
Проверим включен ли модуль status_module
.
apachectl -M | grep status_module
Если в выводе видим — status_module (shared)
, значит все в порядке, модуль включен, в противном случае включаем модуль и перезапускаем apache.
a2enmod status
systemctl restart apache2
В файле /etc/apache2/mods-enabled/status.conf
в секции /server-status
указываем разрешение снимать статистику для 127.0.0.1/32
.
<IfModule mod_status.c>
# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Uncomment and change the "192.0.2.0/24" to allow access from other hosts.
<Location /server-status>
SetHandler server-status
Require local
Require ip 127.0.0.1/32
</Location>
# Keep track of extended status information for each request
ExtendedStatus On
# Determine if mod_status displays the first 63 characters of a request or
# the last 63, assuming the request itself is greater than 63 chars.
# Default: Off
#SeeRequestTail On
<IfModule mod_proxy.c>
# Show Proxy LoadBalancer status in mod_status
ProxyStatus On
</IfModule>
</IfModule>
Теперь в файле /etc/apache2/sites-enabled/000-default.conf
нужно в описании виртуального хоста добавить описание доступа к /server-status
.
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
<Location "/server-status">
SetHandler server-status
Require local
Require ip 127.0.0.1/32
</Location>
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
000-default.conf
отключен, то выше описанное нужно добавить в какой либо включенный сайт размещенный на этом сервере.Проверяем конфигурацию apache, если все OK, то перезапускаем службу apache для применения изменений.
apache2ctl configtest
systemctl reload apache2
Для проверки, что apache отдает статистику веб-сервера, можно выполнить команду.
curl http://127.0.0.1/server-status?auto
В случае успеха, запрос должен вернуть в консоль статистику веб-сервера. Можно устанавливать zabbix-agent2 на хост и заводить хост на Zabbix Server и применить шаблон — https://www.zabbix.com/integrations/apache
Обсуждение
Нет комментариев.