[[Мониторинг параметров Apache2 в Zabbix]]

Zabbix

Мониторинг параметров Apache2 в Zabbix

Веб-сервер Apache умеет отдавать свои статистические данные и было бы не плохо их мониторить с возможность построения различных наглядных графиков.

www-servers/apache-2.2.23
net-analyzer/zabbix-2.0.9

Установка скрипта

Создание папки для скриптов:

mkdir /etc/zabbix/scripts/
chown root:zabbix -R /etc/zabbix/scripts/
chmod 750 /etc/zabbix/scripts/

Создадим сам скрипт:

Листинг

Скрипт предусматривает кеш, что позволяет сократить количество реальных обращений к серверу.
Время действия кеша в секундах должно устанавливается чуть меньше чем период опроса элементов.

Установка прав

chown root:zabbix /etc/zabbix/scripts/apache-stats.sh
chmod 550 /etc/zabbix/scripts/apache-stats.sh

Настройка Apache

На клиентской стороне, где размещается сайт необходимо настроить Apache для отдачи своей статистики по определенному адресу.

Сам Apache должен быть скомпилирован с поддержкой модуля статистики (mod_status)
В Gentoo Gentoo

/etc/make.conf

APACHE2_MODULES="status ..."

Глобально включить ExtendedStatus

http.conf

ExtendedStatus on

В настройках хоста добавляем следующее:

VirtualHost

 <Location /apache-stats>
        SetHandler server-status
        Order Deny,Allow
        Deny from all
        Allow from IP.ZABBIX.SEVER.AGENT
 </Location>

Соответственно IP.ZABBIX.SEVER.AGENT заменяем на IP адрес Zabbix Server или Zabbix Agent.

Если перед apache стоит nginx

После настройки нужно не забыть перезагрузить:

/etc/init.d/apache2 reload

На стороне сервера следует проверить что нужные данные отдаются. Для этого можно выполнить команду:

curl http://you.site.com/apache-stats

Проверить работу скрипта для zabbix:

sudo -u zabbix /etc/zabbix/scripts/apache-stats.sh none accesses http://you.site.com/apache-stats

Вы должны получить статистические данные, если этого не произошло, то конфигурация выполнена не правильно.

Если для проверки скрипт запускался с правами root, то он будет владельцем кэш файла - удалите кеш файл после проверок.

Настройка Zabbix сервера

Вызов скрипта через zabbix-agent

Настройка

/etc/zabbix/zabbix_agentd.conf

...

UserParameter=apache2[*],/etc/zabbix/scripts/apache-stats.sh "none" "$1" "$2"
Перезапустить

/etc/init.d/zabbix-agentd restart

Проверка

zabbix_get -s HOST -k "apache2[accesses,http://you.site.com/apache-stats]"

Для контролируемых данных в Zabbix нужно создать соответствующее элементы с типом "Zabbix агент" и ключом типа:

apache2[key,http://you.site.com/apache-stats]

где key - контролируемая метрика, http://you.site.com/apache-stats - адрес страницы статистики.

Используйте макросы что бы определить URL

Готовый Шаблон для мониторинга Apache2 (agent) с уже настроенными элементами и графиками.

Вызов скрипта внешней проверкой

Основная концепция: мониторинг apache производиться на одном хосте с сервером zabbix, с помощью специального скрипта вызываемого внешней проверкой.
На сервере zabbix в конфиге необходимо определить место размещения скриптов для внешней проверки:

/etc/zabbix/zabbix_server.conf

...
# Location of external scripts
ExternalScripts=/etc/zabbix/scripts

Для контролируемых данных в zabbix нужно создать соответствующее элементы с типом "Внешняя проверка" и ключом типа:

apache-stats.sh[key http://you.site.com/apache-stats]

где key - контролируемая метрика, http://you.site.com/apache-stats - адрес страницы статистики.

Используйте макросы что бы определить URL

Готовый Шаблон для мониторинга Apache2 (Внешние проверки) с уже настроенными элементами и графиками.

Результат

Пример графиков:

Обсуждение

Алексей, 2012/12/03 03:24

Спасибо, всё работает!

Единственное, о чём не упомянуто в статье – для функционирования скрипта необходимо включить расширенный статус:

ExtendedStatus On

Автору благодарность.

Anton, 2012/12/20 14:09

Полезная,а главное в нужное время нашлась статья. Спасибо! Как быть в случае мониторинга не всего apache, а собирать статистику по каждому VirtualHost?

Aleksey, 2012/12/20 14:15

mod_status Нет

This setting applies to the entire server, and cannot be enabled or disabled on a virtualhost-by-virtualhost basis. The collection of extended status information can slow down the server.

egor, 2013/12/17 17:17

Спс за статью прикрутил к фряхе все мониторится

мимо_проходил, 2016/04/01 14:42

Если кто-то захочет использовать это в Zabbix > 1.8, то нужно удалить из скрипта первую переменную (RESERVED), и в ключе передавать параметры через запятую

см. https://www.zabbix.com/documentation/2.4/ru/manual/config/items/itemtypes/external

Trider, 2017/09/27 11:29

Что делать вот с такими значениями????????????????? ReqPerSec: .689853 Zabbix'у нужен ноль перед точкой

Ваш комментарий. Вики-синтаксис разрешён:
106 +1 = ?
 
howto/zabbix/zabbix_apache_monitoring.txt · Последние изменения: 2014/05/05 12:03 — lexa
Gentoo Linux Driven by DokuWiki