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

Main

Оценка: 76.39% - 13 Голосов

Общая

В стандартной сборке 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:

graphite1

 После мы можем увидеть в информации о хосте кликабельные графики:

graphite2

 

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

 

Проблемы с отображением графиков
Отсутствие графиков у пользователей без администраторских прав

Пользователи с урезанными правами могут не видеть графики. Для исправления этого необходимо перейти в файл:


/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)

 

  • Просмотров: 16356
Комментарии   
0 #1 Сергей 08.02.2018 10:56
Добрый день!
Очень подробно описано.
А не могли бы добавить несколько строк для Debian 9.X .
Все что описано выше работает на Debian 8.X или Ubuntu.
Можно конечно и from source установить, но это не всегда удобно.
Спасибо.
Цитировать
0 #2 admin 08.02.2018 11:17
Цитирую Сергей:
Добрый день!
Очень подробно описано.
А не могли бы добавить несколько строк для Debian 9.X

Добрый день!
Спасибо!
Боюсь что настройка Graphite в Debian9 не будет рассматриваться, так как есть более удобные в восприятии и более функциональные системы построения графиков. Почитайте тут https://itcrowd.top/icinga-influx-grafana
Цитировать
0 #3 Сергей 08.02.2018 11:24
Спасибо за информацию.
Цитировать
0 #4 admin 08.02.2018 11:28
Цитирую Сергей:
Спасибо за информацию.

Пожалуйста - обращайтесь
Цитировать
0 #5 Иван 09.10.2018 06:03
А на 9 debian возможно установить?
Цитировать
0 #6 admin 09.10.2018 10:10
Цитирую Иван:
А на 9 debian возможно установить?

Думаю что возможно, не рассматривал, так как считаю, что Grafana+Influx удобнее. Описано это тут https://itcrowd.top/icinga-influx-grafana
Цитировать
0 #7 nagios 13.12.2019 15:05
не заработало на ubuntu 18.04
graphite-manage syncdb
вместо этого испоьзовал graphite-manage migrate
имя и пароль сделалось
Цитировать
0 #8 admin 15.12.2019 07:46
Цитирую nagios:
не заработало на ubuntu 18.04
graphite-manage syncdb
вместо этого испоьзовал graphite-manage migrate
имя и пароль сделалось

С момента написания статьи прошло уже довольно много времени. Что-то могло измениться. Мне же больше нравится использовать Grafana - более функционально.
Цитировать
Добавить комментарий