GRAFANA
Визуализация и анализ данных производится в Grafana. Переходим по адресу http://servername:81/grafana. Попадаем на страницу авторизации. По умолчанию логин/пароль admin/admin.
Окно авторизации Grafana
Открываем Home -> Dashboards -> Plan-r.
Открытие встроенного дашборда PLAN-R
Данный дашборд является преднастроенным и сразу будет отображать логи с первого включения системы. Будет работать только при условии наличия переменной среды EXTEND_LOGS=true.
Пример вывода дашборда PLAN-R
Для просмотра логов со всех контейнеров нажмите Explore ->Label filters ->Select label (service_name) -> Select value(planr) ->Run Query.
Просмотр логов со всех контейнеров
Для просмотра логов нужного контейнера (например, planr-proxy-1) можно воспользоваться JSON парсером. Для этого нажмите hint: add json parser ->Operations ->Label filters ->Label filter expression ->Label (container_name) ->Value (/planr-proxy-1) ->Run query
Просмотр логов нужного контейнера
Чтобы сохранить логи в файл, нажмите на Downloads и выберите формат сохраняемого файла
Сохранение логов
Чтобы создать нового пользователя, нажмите Administration -> Users and access -> Users -> New user -> Create user
Создание нового пользователя
Добавляем в Grafana LDAP-авторизацию, интеграция с Active Directory https://grafana.com/docs/grafana/next/setup-grafana/configure-security/configure-authentication/ldap/?src=FB&plcmt=footer
Создаем учетную запись в AD, с правами на чтение пользователей, от которой будут выполняться запросы в сторону LDAP.
Следующим шагом создаем файл ldap.toml, на хосте с докером. Он должен находится по пути /opt/dpmm/plan/, а также рядом с файлом docker-compose.
[servers]
# Основные настройки подключения к LDAP/AD серверу
host = "10.10.22.12" # IP-адрес или доменное имя контроллера домена
port = 636 # Порт для LDAPS (защищенное соединение LDAP через SSL). Для подключения без SSL используется 389.
use_ssl = true # Использовать SSL/TLS для шифрования соединения
start_tls = false # Не использовать STARTTLS (уже используем SSL напрямую)
ssl_skip_verify = true # Не проверять SSL сертификат (не рекомендуется для production)
# Учетные данные для подключения к AD
bind_dn = "cn=ldap,cn=Users,dc=dpractices,DC=local" # Учетная запись для подключения к LDAP
bind_password = "password" # Пароль для указанной учетной записи
# Настройки поиска пользователей
search_filter = "(|(sAMAccountName=%s)(displayName=%s))" # Фильтр поиска по логину или имени
search_base_dns = ["DC=dpractices,DC=local"] # Базовый DN для поиска (всё дерево домена)
# Маппинг атрибутов AD на поля пользователя в Grafana
[servers.attributes]
name = "givenName" # Имя пользователя (атрибут givenName в AD)
surname = "sn" # Фамилия (атрибут sn в AD)
username = "sAMAccountName" # Логин (атрибут sAMAccountName в AD)
email = "mail" # Email (атрибут mail в AD)
member_of = "memberOf" # Группы пользователя (атрибут memberOf в AD)
# Настройки привилегий на основе групп AD
[[servers.group_mappings]]
group_dn = "cn=Domain Admins,cn=Users,dc=dpractices,dc=local" # Группа доменных администраторов
org_role = "Admin" # Роль в Grafana: Администратор
grafana_admin = true # Давать права администратора Grafana
# Пример закомментированного маппинга для редакторов
#[[servers.group_mappings]]
#group_dn = "cn=Редакторы графаны,ou=Группы безопасности,dc=dpractices,dc=local"
#org_role = "Editor" # Роль в Grafana: Редактор
# Маппинг для всех остальных пользователей (подстановка *)
[[servers.group_mappings]]
group_dn = "*" # Все пользователи, не попавшие в предыдущие группы
org_role = "Viewer" # Роль в Grafana: Просмотр
После создания файла ldap.toml редактируем docker compose файл, добавляя environment и volumes.
grafana:
image: grafana/grafana:11.1.0
container_name: grafana
restart: *default-restart-policy
environment:
GF_RENDERING_SERVER_URL: http://renderer:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
GF_LOG_FILTERS: rendering:debug
GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s:%(http_port)s/grafana/"
GF_SERVER_SERVE_FROM_SUB_PATH: "true"
GF_ANALYTICS_ENABLED: "false"
GF_ANALYTICS_REPORTING_ENABLED: "false"
GF_ANALYTICS_CHECK_FOR_UPDATES: "false"
GF_ANALYTICS_CHECK_FOR_PLUGIN_UPDATES: "false"
GF_AUTH_LDAP_ENABLED: "true" # параметр, который разрешает или запрещает использование ldap;
GF_AUTH_LDAP_CONFIG_FILE: "/etc/grafana/ldap.toml" # путь до файла, где будут храниться соответствующие настройки;
GF_AUTH_LDAP_ALLOW_SIGN_UP: "true" # Разрешить вход без предварительной регистрации
volumes:
- grafana:/var/lib/grafana
# При использовании portainer указать абсолютный путь до файлов конфигурации.
# например
# - /opt/dppm/planr/logging/grafana/provisioning:/etc/grafana/provisioning
# - ./logging/grafana/provisioning:/etc/grafana/provisioning
- ./logging/grafana/provisioning/:/etc/grafana/provisioning:/etc/grafana/provisioning
- ./logging/grafana/ldap/ldap.toml:/etc/grafana/ldap.toml # примонтированная директория с файлом ldap.toml для настройки
networks: *default-network
profiles : ['logging', 'all']
Чтобы новые настройки вступили в силу, перезапускаем docker compose c Grafana. Для этого, либо используем docker restart grafana, либо сначала запускаем скрипт ./stop.sh, который остановит все контейнеры, а потом запускаем с помощью скрипта ./start.sh.
Проверить работоспособность LDAP-авторизации в Grafana можно по пути Home->Administration->Authentication->LDAP, и диалоговом окне, введя имя юзера из домена Active Directory.
Попробуем зайти в Grafana под учеткой из домена с минимальной ролью - Viewer.
Авторизация по LDAP прошла.