Добавляем в Icinga2 модуль графиков Graphite

Общая
В стандартной сборке Icinga2 и Icingaweb2 отсутствует модуль построения графиков вообще. Это очень не удобно так как собирать информацию о работоспособности того или иного устройства сети становится проблематично. На помощь в данной ситуации приходит модуль Graphite Icinga Web 2 Module, который доступен на GitHub.
Разберём процесс установки модуля в Icingaweb2 под управлением Debian 8.
Установка Graphite и необходимых компонентов
Все необходимые модули доступны в репозиториях поэтому устанавливаем оттуда:
apt-get install graphite-web graphite-carbon libapache2-mod-wsgi
Настройка глубины хранения данных графиков
По умолчанию Carbone хранит данные каждой секунды в течении одного дня, отсюда появляется невозможность смотреть графики глубиной больше дня, что нас не устраивает. Добавим в конфигурационный файл /etc/carbon/storage-schemas.conf
:
[icinga2]
pattern = ^icinga2\.*
retentions = 60:262800
Это позволит хранить данные в течении полугода.
Параметры легко настраиваемые.
Следует учитывать, что если вы уже мониторите устройства и у вас изначально настроено хранение данных по молчанию не больше одного дня, то вам придётся либо удалять базу с графиками, либо перестраивать базу хранения специальной утилитой. База графиков хранится по молчанию в /var/lib/graphite/whisper/. О том, как перестраивать базу данных я расскажу в других статьях.
Настройка часового пояса в Graphite.
По умолчанию часовой пояс установлен на America/Chicago
. Чтобы это изменить необходимо открыть файл /etc/graphite/local_settings.py
, в нем найти строку #TIME_ZONE =
, раскомментировать её и установить нужный часовой пояс. В моем случае это 'Europe/Moscow'.
Настройка модулей
Добавление модуля в Icinga
Добавляем установленный модуль в Icinga:
icinga2 feature enable perfdata
icinga2 feature enable graphite
Перезапуск Icinga2
service icinga2 restart
Настройка Graphite-web
Создаем базу данных Graphite-web и в процессе создаем пользователя для доступа:
graphite-manage syncdb
chown _graphite:_graphite /var/lib/graphite/graphite.db
Активируем модуль WSGI в Apache2:
a2enmod wsgi
Копируем конфигурационный файл в Apache2:
cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available/graphite.conf
Нам необходимо что бы Graphite работал на 8000 порту нашего сервера поэтому меняем порт с 80 на 8000 в:
/etc/apache2/sites-available/graphite.conf
Указываем Apache2 прослушивать 8000 порт в файле /etc/apache2/ports.conf
добавив строку
Listen 8000
Активируем конфигурационный файл:
a2ensite graphite
Перезапускам Apache2:
service apache2 restart
После чего Graphite-web будет доступен на 8000 порту нашего сервера.
Добавляем модуль Graphite в Icingaweb2:
Скачиваем icingaweb2-module-graphite:
wget https://github.com/findmypast/icingaweb2-module-graphite/archive/master.zip
Распаковываем архив в:
/usr/share/icingaweb2/modules
Создаём файл конфигурации:
mkdir /etc/icingaweb2/modules/graphite
nano /etc/icingaweb2/modules/graphite/config.ini
В данный файл помещаем следующие строки:
[graphite]
metric_prefix = icinga2
base_url = http://IP-АДРЕС НАШЕГО СЕРВЕРА:8000/render?
graphite_args_template = "&target=$target$&source=0&width=300&height=120&hideAxes=true&lineWidth=2&hideLegend=true&colorList=002bff&template=solarized-light"
graphite_large_args_template = "&target=$target$&source=0&width=700&height=600&colorList=002bff&lineMode=connected&connectedLimit=&template=solarized-light"
Назначим нужные права на файл:
chown -R www-data:www-data /etc/icingaweb2/modules/graphite/
После чего активируем плагина в icingaweb2:
После мы можем увидеть в информации о хосте кликабельные графики:
Все добавляемые новые хосты так же будут иметь графики. Баз данных под них будут создаваться автоматически.
Проблемы с отображением графиков
Отсутствие графиков у пользователей без администраторских прав
Пользователи с урезанными правами могут не видеть графики. Для исправления этого необходимо перейти в файл:
/usr/share/icingaweb2/modules/graphite/run.php
В котором строку:
$this->registerHook('grapher', '\\Icinga\\Module\\Graphite\\Grapher');
заменить на:
$this->registerHook('grapher', 'Icinga\\Module\\Graphite\\Grapher');
После чего необходимо из под админа добавить права нужному пользователю\группе
Allow access to module graphite (module/graphite)
- Просмотров: 17815
Очень подробно описано.
А не могли бы добавить несколько строк для Debian 9.X .
Все что описано выше работает на Debian 8.X или Ubuntu.
Можно конечно и from source установить, но это не всегда удобно.
Спасибо.
Добрый день!
Спасибо!
Боюсь что настройка Graphite в Debian9 не будет рассматриваться, так как есть более удобные в восприятии и более функциональные системы построения графиков. Почитайте тут https://itcrowd.top/icinga-influx-grafana
Пожалуйста - обращайтесь
Думаю что возможно, не рассматривал, так как считаю, что Grafana+Influx удобнее. Описано это тут https://itcrowd.top/icinga-influx-grafana
graphite-manage syncdb
вместо этого испоьзовал graphite-manage migrate
имя и пароль сделалось
С момента написания статьи прошло уже довольно много времени. Что-то могло измениться. Мне же больше нравится использовать Grafana - более функционально.
RSS лента комментариев этой записи