Мониторинг параметров Apache в Zabbix
Веб-сервер Apache умеет отдавать свои статистические данные и было бы не плохо их мониторить с возможность построения различных наглядных графиков.
Мониторинг осуществляется скриптом apache_v<VERSION>.py из набора Zabbix Data Mining.
Там же есть готовые шаблоны для Zabbix Server'a.
Настройка
Настройка осуществляется через Ansible.
Необходимо указать модуль apache в переменой zdm_modules_enabled, в этом случае будет:
- установлен пакет библиотек python3-requests
Переменные defaults для роли:
- zdm_cnf_apache_version - одна из доступных версий скрипта, подходящая к версии приложения.
- zdm_cnf_apache_server_status_url - адрес страницы с информацией mod_status
- zdm_cnf_apache_allow_redirects - разрешить переход по редиректам
- zdm_cnf_apache_cache_ttl - время хранения результата в кэше.
Скрипт предусматривает кэш, что позволяет сократить количество запросов, а так же снимать элементы данных в одном временном срезе.
Время действия кэша в секундах должно устанавливается чуть меньше чем период опроса элементов.
Необходимо настроить отдачу статистики по определенному адресу:
http.conf
ExtendedStatus on
VirtualHost
<Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from IP.ZABBIX.SEVER.AGENT </Location>
Где IP.ZABBIX.SEVER.AGENT заменяем на IP адрес, с которого будет обращаться Zabbix-Agent (как правило это localhost).
Пример настройки nginx, если тот стоит перед apache'ем:
VirtualHost
location = /server-status { proxy_pass http://<apache_ip>:<port>; access_log off; error_log off; allow IP.ZABBIX.SEVER.AGENT; deny all; }
Перезагрузить:
/etc/init.d/apache reload # or systemctl reload apache2
Apache должен быть скомпилирован с поддержкой модуля статистики mod_status
В Gentoo
/etc/make.conf
APACHE2_MODULES="status ..."
Проверка:
curl http://you.site.com/server-status?autoВы должны получить статистические данные, если этого не произошло, то конфигурация выполнена не правильно.
Элементы данных
Zabbix Agent UserParameter
UserParameter=apache.py[*],/opt/zdm3/apache_v2.4.6.py "$1" "$2" "$3" "$4"
Дополнительную информацию по аргументам скрипта можно получит:
/opt/zdm3/apache_v2.4.6.py -h
Пример данных:
$ zabbix_get -s 127.0.0.1 -k 'apache.py[busyworkers]' 6
Пример графиков:
Обсуждение