Яндекс

Развертывание графаны (Grafana)

Развертывание графаны (Grafana) на Astra Linux

(2 Votes)

Grafana — открытая платформа для сбора, мониторинга и визуализации данных. Позволяет анализировать информацию, создавать на её основе графики и дашборды (информационные панели).

Grafana - мощный инструмент для мониторинга. Он способен быстро и просто рисовать любые дашборды по мониторингу любой информации, даже с Zabbix. 

В данной статье, мы поднимем Grafana-server с Postgresql на Astra Linux, а потом выведем заранее загруженные данные из Active Directory в базу данных на дашборд для демонстрации возможностей, а так-же настроем доменную авторизацию на графане.

Стенд:
  • Контроллер домена (ActiveDirectory)
  • entnet-181 (AL 1.8, введена в домен)

Установка

Я предварительно подготовил машину entnet-181 введя ее в домен. По этому приступим к установке и настройке.

Проверив репозиторий, мы обнаружили, что в официальном репозитории Astra Linux, есть пакет grafana (да, не самый последний, но для нашей задачи пойдет).

Произведем установку графаны

sudo apt install -y grafana

После установки, активируем службу графаны и внесем ее в автозагрузку. 

sudo systemctl enable grafana-server

sudo systemctl start grafana-server 

Теперь проверим статус службы. Если видим Active, то все хорошо, переходим дальше.

sudo systemctl status grafana-server

Теперь попробуем зайти на вебморду нашей графаны. Для этого перейдем по адресу в браузере IP:3000

Отлично, на вебморду мы попали, графана работает. Но какой же логин и пароль?) Для тех, кто хочет здесь и сейчас ответ -

Спойлер Логин - admin, Пароль - admin

Но мы пойдем дальше, заглянем в документацию. Можно перейти в нее прямо с нашей веб-морды, внизу под входом есть ссылки, среди них Docs. Либо перейдем через официальный сайт, как я сделал.

Видим сверху Docs, перейдем по ней.

Слева выбираем Grafana Enterprise

Теперь идем в поиск и ищем вход в графану

Теперь у нас есть общая картина, видим что логин и пароль admin

Пробуем войти

При первом входе, предлагает сменить пароль, меняем его.

После всех манипуляций, мы зашли.


Теперь займемся установкой базы данных postgresql

Ставим пакеты базы данных

sudo apt install postgresql postgresql-contrib -y

После успешной установки, нужно перейти в учетную запись postgres и создать базу данных для нашей графаны, а так же учетную запись grafana и накинуть ей пароль и права на базу grafana.

sudo -u postgres

createuser grafana

createdb grafana

psql

GRANT ALL PRIVILEGES ON DATABASE grafana TO grafana;

и выходим из базы данных

\q

Теперь нам нужно указать графане, что у нас есть база данных для нее. Для этого откроем конфигурационный файл grafana.ini и пропишем ей об этом, а так же активируем настройки ldap аутентификации для доменной авторизации.

sudo vim /etc/grafana/grafana.ini

Ищем секцию [database] и в нее прописываем:

[database]
type = postgres
host = 127.0.0.1:5432
name = grafana
user = grafana
password = ВАШ_ПАРОЛЬ
Если у вас сервер базы данных отдельно, то указываем в host IP адрес сервера с базой данных. В name указываем название вашей базы, user - соответственно учетная запись и пароль от нее в password

Ищем секцию [auth.ldap] и в нее прописываем:

[auth.ldap]
enabled = true
config_file = /etc/grafana/ldap.toml
allow_sign_up = true

Сохраняем изменения и перезапускаем службу grafana-server

sudo systemctl restart grafana-server

Теперь нам нужно вписать настройки для ldap авторизации в файл конфиг ldap.toml

sudo vim /etc/grafana/ldap.toml

В открытом файле видим данные. P.s. я уже успел вписать сервер :D

Удаляем все комментарии, чтобы не мешали эстетическому виду.

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

После создания учетной записи, впишем все данные в конфиг ldap.toml

host = "ВАШ_КОНТРОЛЛЕР_ДОМЕНА_IP/DN"
bind_dn = "СЕРВИСНАЯ_УЧЕТНАЯ_ЗАПИСЬ_ИЗ_AD"
bind_password = "ПАРОЛЬ_ОТ_СЕРВИСНОЙ_УЗ"
search_filter = "(sAMAccountName=%s)"
search_base_dn = ["dc=ВАШ_ДОМЕН,dc=ДОМЕН"]

name = "givenName"
surname = "sn"
username = "sAMAccountName"
member_of = "memberOf"
email = "email"

Эти параметры нужно заполнить, единственное я заменил search_filter и username на sAMAccountName

Сохраняем и выходим. Перезапускаем службу grafana-server. Если все сделали правильно, то переходим дальше, если ошибки, смотрим внимательно заполнения данных, доступность учетной записи. Либо смотрим логи /var/log/grafana.

sudo systemctl restart grafana-server

Пробуем залогиниться доменной учетной записью с нашего контроллера домена.

Как видим, мы успешно авторизовались доменной учетной записью. Значит настроили все правильно. В дальнейшем, можно нарезать локальные группы в настройках и подкинуть наших пользователей, а уже определенным группам настраивать определенные дашборды. То есть мы можем разграничить права на дашборды. Если пользователей слишком много, то мы можем в конфиге /etc/grafana/ldap.toml прописать что пользователи получают конкретную роль на графане.

Пример такой записи:

[[servers.group_mappings]]
group_dn = "CN=НАЗВАНИЕ_ГРУППЫ,OU=ОТДЕЛ,DC=ДОМЕН,DC=ДОМЕН"
teams = ["НАЗВАНИЕ_ГРУППЫ_В_ГРАФАНЕ"]
org_role = "Viewer"
Можно создавать много групп, просто создайте еще одну секцию [[server.group_mappings]]
В group_dn = прописываем полный путь до вашей доменной группы, а уже ее накидываете пользователю;
teams = здесь записываем название, которое будет отображаться в графане;
org_role = здесь указываем роль этой группы (есть 3 группы: Admin, Editor, Viewer). Думаю с ролями понятно.

Теперь я создам тестовую таблицу в нашей базе данных ad_users и запишу в нее с помощью python пользователей из ActiveDirectory. Допустим у нас есть контроллер домена и мы хотим анализировать какие-то данные, да и вообще, знать, сколько пользователей зарегистрировано в ActiveDirectory. С помощью скрипта на python, я подключаюсь к ActiveDirectory (той же сервисной учетной записью что и для авторизации), забираю из AD всех пользователей и записываю их в таблицу ad_users базы данных grafana. (Это опционально, показать на таком примере возможности графаны)

Заходим на http://:3000 админом, переходим в Connections слева, в поиске вбиваем postgres и нажимаем на него.

Забиваем данные сервера, база у меня находится там же где и графана, по этому localhost. Если у вас на отельном, то указываем ip адрес.

Host: :5432
Database: НАЗВАНИЕ_БАЗЫ_ДАННЫХ
User: ПОЛЬЗОВАТЕЛЬ_К_БАЗЕ_ДАННЫХ
Password: ПАРОЛЬ_К_УЗ_БАЗЫ_ДАННЫХ
SSL Mode: disable

Если ошибок нет, то получим сообщение об успешном коннекте к базе данных

На данном этапе установка и настройка grafana завершена, но мы пойдем дальше и создадим тестовый дашборд, дабы посмотреть что такое графана и для чего нужна.


Создание дашборда

Слева в меню нажимаем на Dashboards

Ну и соответственно + Create dashboard

Как мы видим, можем создать в дашборде визуализацию, а можем импортировать настройки или целиком дашборд. Да, здесь можно легко выгружать и загружать дашборды. К примеру вы развернули сервер, нарисовали дашборды, а потом решили обновиться или применить дашборд на другом сервере, то это делает в два клика. Все настройки записываются в JSON файл.

Выбираем в качестве источника для визуализации нашу базу данных.

У нас открылась площадка для творчества.

Не пугаемся, тут все интуитивно понятно. Перед глазами пол экрана у нас занимает то, как будет отображаться наш визуал, внизу пол экрана генератор SQL запроса, а так же ряд других настроек, так же мы можем вставить сюда готовый SQL запрос. Справа у нас более тонкие настройки, от выбора что отображать (бублики, шкалы, графики итд) до подсветки текста при наборе какого-то процента определенного поля. К примеру, мы можем вывести таблицу из AD и настроить счетчик (count) этой таблице и настроить, что если счетчик превысит в 100 пользователей, то с 101 строки пойдут строки залитые красным цветом. Настроек очень много.

Давайте переключимся с конструктора SQL запроса на готовый SQL код (Code).

Мы написали простенький SQL запрос и нажимаем кнопку Run query

Сверху мы видим, что он нам показал какой-то график, но так как данные для него не подходят, он пустой. Переключим режим на таблицу.

Уже лучше, но название столбцов не информативное. Давайте изменим наш SQL запрос и добавим AS к полям и оставим только те столбцы, у которых есть данные.

Уже лучше, но давайте добавим еще возможность фильтрации по столбцам, счетчик записей. Все это настроим через правое меню настроек.

Незабываем сохранять наши действия. Кстати, можно отслеживать изменения, а еще самое главное, можно откатываться до определенных версий. К примеру кто-то внес изменения и спустя время, вы увидели, что данные отображаются некорректно, но не помните что и куда вносили. Не проблема, зашли в настройки дашборда, открыли Versions и откатили назад дашборд до изменений. Красота.

По итогу у нас получилась вот такая табличка на нашем дашборде.

Создадим дубликат нашей таблицы и сделаем из этой таблице бублик.

Перепишем немного SQL запрос.

Поиграемся с настройками и выберем не таблицу, а бублик для отображения

По итогу у нас получилось вот такое

Можно заменить наш бублик на текст.

На этом наше знакомство с grafana закончено. Как мы увидели, это очень огромная площадка для творчества. Можно с помощью плагинов, готовых шаблонов построить очень информативный дашборд с уведомлениями. Удачи в построении своей системы мониторинга с помощью Grafana сервера!

Добавить комментарий

Будьте взаимовежливы и корректны.

Все сообщения проходят премодерацию.

Рекламные сообщения и комментарии с ссылками, не несущими смысловую нагрузку по тематике материала будут удаляться.


Комментарии  
  0
Спасибо огромное за информативную статью!
Буде пробовать у себя 8)

На развитие проекта

Вход