Translate

середу, 4 травня 2016 р.

Grafana. Frontend to Graphite

Місяць тому я писав про налаштування та конфігурацію Graphite та пообіцяв незабаром розповісти про Grafana. І ось лише сьогодні я виконую свою обіцянку.

Справа в тому, що Graphite має не надто зручну панель відображення графіків. Звісно вона володіє необхідним мінімумом, але не більше (наприклад, не можна швидко збільшити регіон графіку). Можливо це і було поштовхом для появи Grafana.

Grafana - це фронтенд для відображення графіків, що має швидкий та зручний інтерфейс. З Graphite він працює через API, проте також, у якості джерела даних може використовувати InfluxDB, KairosDB, Elasticsearch, AWS Cloudwatch і т.п.

Установка графічної панелі Grafana не викликає труднощів, а для налаштування Graphite, як бази метрик, можна скористатись моєю попередньою статею, про яку згадано на початку.

Якщо ви лише тестуєте продукт для інтеграції з власною інфраструктурою - варто одразу спробувати останню бету, що ймовірно стане стейбл на момент вашої фінальної установки. Наступний мажорний реліз Grafana, з версією 3, матиме багато змін, серед яких платформа плагінів Grafana.net, які розширять можливості фронтенду додатковими джерелами данних, панелями відображення та додатками (вміщають в собі пакети джерел данних та панелей). Зовнішній вигляд також зазнав деяких змін та вдосконалень, проведено багато оптимізацій.

Ми будемо розглядати установку останньої стабільного релізу, що на момент написання статті має версію 2.6. Grafana поки що відутня у основних репозиторіях Ubuntu - тому додамо сторонній репозиторій:

# echo 'deb https://packagecloud.io/grafana/stable/debian/ wheezy main' |  sudo tee -a /etc/apt/sources.list

Додамо ключ для роботи з цим репозиторієм:

# curl https://packagecloud.io/gpg.key | apt-key add -

Оновимо списки пакетів та установимо Grafana:

# apt-get update && apt-get install grafana

Також є варіант установки Grafana без додавання нового репозиторію, але в цьому випадку оновлювати пакет прийдеться вручну при випуску кожного нового релізу:

# wget https://grafanarel.s3.amazonaws.com/builds/grafana_2.6.0_amd64.deb
# apt-get install -y adduser libfontconfig
# dpkg -i grafana_2.6.0_amd64.deb

Тут знаходиться інформація про те як встановити останню бету http://docs.grafana.org/v3.0/installation/debian/, а за наступним посиланням можна прочитати повний список змін https://github.com/grafana/grafana/blob/master/CHANGELOG.md

По-замовчуванню, Grafana потребує Sqlite для збереження власних даних, проте ми змінимо цей параметр задля використання PostgreSQL, адже саме її ми використовували для установки фронтенду для Graphite.

Продублюю і тут процес установки PostgreSQL:

# apt-get install postgresql

Створимо базу для Grafana (проте ніхто не забороняє використовувати SQL синтаксис для створення бази):

# sudo -u postgres psql
# createdb -O graphite grafana

Користувач graphite має існувати, адже його було створено нами при установці Graphite. У прикладі вище Grafana буде використовувати того ж користувача graphite для запису в свою базу grafana. Це звісно кожному самому вирішувати як робити правильніше. Про всяк випадок нагадаю як було створено користувача graphite:

# sudo -u postgres psql

> CREATE USER graphite WITH PASSWORD 'p@ssw0rd';
> \q

Редагуємо конфігураційний файл Grafana:

# vim /etc/grafana/grafana.ini

[database]
# Either "mysql", "postgres" or "sqlite3", it's your choice
type = postgres
host = 127.0.0.1:5432
name = grafana
user = graphite
password = p@ssw0rd

Тобто PostgreSQL працює на тому ж хості де і Grafana. В цьому ж конфігураційному файлі у відповідних секціях укажемо domain, root_url, пароль для admin-користувача та секретний ключ:

[server]
protocol = http
http_addr = 127.0.0.1
http_port = 3000
domain = grafana.me
enforce_domain = true
root_url = %(protocol)s://%(domain)s/

[security]
admin_user = admin
admin_password = SecureAdminPass
secret_key = somelongrandomstringkey

За необхідності можна змінити порт, на котрому працює Grafana, адресу, на котрій буде активований цей порт і т.п.

Як і у варіанті з Graphite, всі запити до Grafana ми будемо проксувати через Apache. Звісно, ніхто не забороняє використовувати для цього інші веб-сервери. Якщо Apache не встановлено, встановимо його:

# aptitude install apache2 libapache2-mod-wsgi

Деактивуємо дефолтний хост:

# a2dissite 000-default

Акивуємо модулі:

# a2enmod proxy proxy_http xml2enc

Створюємо новий хост для нашлого інстансу Grafana:

# vim /etc/apache2/sites-available/apache2-grafana

<VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:3000/
    ProxyPassReverse / http://127.0.0.1:3000/
    ServerName grafana.me
</VirtualHost>

# a2ensite apache2-grafana
# service apache2 reload

Домен grafana.me має указувати на цей цільовий хост.

Додаємо в автозапуск Grafana, та нарешті запускаємо її:

# update-rc.d grafana-server defaults 95 10
# service grafana-server start

Авторизуємось в Grafana, з логіном та паролем, що були вказані в grafana.ini:



Налаштовуємо Data Sources. Указуємо адресу Graphite:


Access: proxy. Якщо є необхідність повністю закрити доступ до веб-панелі Graphite, то варто призначити Graphite локальный IP 127.0.0.1 і вже робити проксі на нього. Якщо ж Graphite взагалі на віддаленому хості з вірним доменним іменем - то як варіант можна обрати Access: direct.


Зберігаємо зміни.


Готово! Наразі сворюємо графічні панелі на власний смак! Тиснемо на панелі ліворуч Dashboards -> Home -> New:



Додаємо новий графік у вже автоматично створений рядок:


Обираємо Graphite у якості джерела даних, та створюємо запити, що саме необхідно показувати на координатній площині. Можна накладати графіки, до того ж брати їх із різних джерел, одразу ж прив'язувати до них певні функції. Звісно, що є можливість дати відповідну назву графіку, встановити його ширину та довжину, налаштувати стилі відображення і т.п.:



Трішки погравшись можна створити справді чудові та інформативні панелі:


Для любителів світлих тем оформлення є і така опція:



На цьому можливості Grafana не завершуються. Вона також може створювати плейлисти з готових панелей. Це може бути зручно для демонстрації роботи систем на великих моніторах, що доступні для всіх. До плюсів також можна віднести можливість авторизації по LDAP.

Посилання:
http://docs.grafana.org/
https://www.linode.com/docs/uptime/monitoring/deploy-graphite-with-grafana-on-ubuntu-14-04

Немає коментарів:

Дописати коментар