SCROLL
Среднее время на прочтение: 3 мин.

Мониторинг веб-сервера 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.

/etc/apache2/mods-enabled/status.conf
<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.

/etc/apache2/sites-enabled/000-default.conf
<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

Обсуждение

0 комментариев

Нет комментариев.