- v1.0_7.1.1 Мониторинг событий доступа и метрики
- v1.0_7.1.2 Мониторинг PostgreSQL
- v1.0_7.1.3 Мониторинг Docker
Общее описание
Система мониторинга сервисов NAICE представляет собой совокупность экспортеров метрик сервисов, системы их хранения и системы их визуализации. В качестве системы хранения метрик и представления их в виде временных рядов выступает сервис Prometheus, в качестве системы визуализации метрик в виде дашбордов - сервис Grafana. Экспортеры метрик уникальны для каждого отслеживаемого сервиса.
Помимо обработки метрик система мониторинга также включает в себя сбор логов docker-контейнеров сервисов NAICE и их хранение в Loki. Визуализация логов также доступна в Grafana.
Установка
Для разворачивания системы мониторинга используется Ansible-плейбук install-monitoring.yml, который входит в состав архива для установки NAICE.
Установка поддержана на те же операционные системы, что и NAICE (см. v1.0_3.1 Системные требования).
Минимальные системные требования к хосту для мониторинга:
- CPU: 1;
- RAM: 2 Гб;
- HDD: 100 Гб.
Разворачивание мониторинга для standalone установки
Последовательность действий для установки:
Отредактировать файл
hosts-monitoring.ymlдля указания адресов доступа к хостам для установки.hosts-monitoring.yml# Группа хостов для установки системы мониторинга для NAICE monitoring: hosts: node_with_monitoring: ansible_host: <IP-адрес хоста для разворачивания системы мониторинга> ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)> nodes_with_naice: hosts: node_with_naice: ansible_host: <IP-адрес хоста, на котором установлен NAICE> ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)> nodes_with_postgres: hosts: node_with_postgres: ansible_host: <IP-адрес хоста, на котором установлен PostgreSQL (при его вынесении отдельно от NAICE)> ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)>Запустить Ansible-плейбук установки мониторинга:
ansible-playbook install-monitoring-logging.yml -i inventory/hosts-monitoring.yml
В результате на хосте node_who_monitor в директории установкии мониторинга (по умолчанию - /etc/docker-naice/monitoring) будут развернуты сервисы мониторинга:
$ docker compose ps -a WARN[0000] /etc/docker-naice/monitoring/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS cadvisor-exporter gcr.io/cadvisor/cadvisor:v0.49.2 "/usr/bin/cadvisor -…" cadvisor-exporter 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:9200->8080/tcp, [::]:9200->8080/tcp grafana grafana/grafana:11.5.0 "/run.sh" grafana 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp grafana_alloy grafana/alloy:v1.6.1 "/bin/alloy run --se…" grafana_alloy 4 minutes ago Up 4 minutes 0.0.0.0:12345->12345/tcp, [::]:12345->12345/tcp loki grafana/loki:3.3.2 "/usr/bin/loki -conf…" loki 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:3100->3100/tcp, [::]:3100->3100/tcp node_exporter prom/node-exporter:v1.8.2 "/bin/node_exporter …" node-exporter 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:9100->9100/tcp, [::]:9100->9100/tcp pgwatch2 cybertec/pgwatch2-postgres:1.14.0 "/pgwatch2/docker-la…" pgwatch2 4 minutes ago Up 4 minutes (healthy) 5432/tcp, 8081/tcp, 9187/tcp, 0.0.0.0:3001->3000/tcp, [::]:3001->3000/tcp, 0.0.0.0:9080->8080/tcp, [::]:9080->8080/tcp prometheus prom/prometheus:v3.1.0 "/bin/prometheus --c…" prometheus 4 minutes ago Up 4 minutes (healthy) 0.0.0.0:9090->9090/tcp, [::]:9090->9090/tcp
Разворачивание мониторинга для установки в кластере
Последовательность действий для установки:
Отредактировать файл
hosts-cluster-monitoring.ymlдля указания адресов доступа к хостам для установки.hosts-cluster-monitoring.yml--- # Группа хостов для установки системы мониторинга для NAICE monitoring: hosts: node_with_monitoring: ansible_host: <IP-адрес хоста для разворачивания системы мониторинга> ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)> nodes_with_naice: hosts: first_node_with_naice: ansible_host: <IP-адрес первого хоста кластера NAICE> ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)> second_node_with_naice: ansible_host: <IP-адрес второго хоста кластера NAICE> ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)> nodes_with_postgres: hosts: first_node_with_postgres: ansible_host: 192.168.0.100 ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)> forwarded_postgresql_port: 5432 name_prefix_for_pgwatch2: "primary_" second_node_with_postgres: ansible_host: 192.168.0.101 ansible_port: <ssh port, по умолчанию 22> ansible_user: <пользователь для подключения к хосту по ssh> ansible_ssh_pass: <пароль пользователя> ansible_become_password: <пароль для повышения привилегий (sudo)> forwarded_postgresql_port: 5432 name_prefix_for_pgwatch2: "secondary_"Запустить Ansible-плейбук установки мониторинга:
ansible-playbook install-monitoring-logging.yml -i inventory/hosts-cluster-monitoring.yml
В результате на хосте node_who_monitor в директории установкии мониторинга (по умолчанию - /etc/docker-naice/monitoring) будут развернуты сервисы мониторинга:
$ docker compose ps -a WARN[0000] /etc/docker-naice/monitoring/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS cadvisor-exporter gcr.io/cadvisor/cadvisor:v0.49.2 "/usr/bin/cadvisor -…" cadvisor-exporter 34 minutes ago Up 12 minutes (healthy) 0.0.0.0:9200->8080/tcp, [::]:9200->8080/tcp grafana grafana/grafana:11.5.0 "/run.sh" grafana 34 minutes ago Up 12 minutes (healthy) 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp loki grafana/loki:3.3.2 "/usr/bin/loki -conf…" loki 34 minutes ago Up 12 minutes (healthy) 0.0.0.0:3100->3100/tcp, [::]:3100->3100/tcp node_exporter prom/node-exporter:v1.8.2 "/bin/node_exporter …" node-exporter 34 minutes ago Up 12 minutes (healthy) 0.0.0.0:9100->9100/tcp, [::]:9100->9100/tcp pgwatch2 cybertec/pgwatch2-postgres:1.14.0 "/pgwatch2/docker-la…" pgwatch2 34 minutes ago Up 12 minutes (healthy) 5432/tcp, 8081/tcp, 9187/tcp, 0.0.0.0:3001->3000/tcp, [::]:3001->3000/tcp, 0.0.0.0:9080->8080/tcp, [::]:9080->8080/tcp prometheus prom/prometheus:v3.1.0 "/bin/prometheus --c…" prometheus 34 minutes ago Up 12 minutes (healthy) 0.0.0.0:9090->9090/tcp, [::]:9090->9090/tcp
Просмотр
Для получения доступа к дашборду Grafana необходимо открыть браузер и перейти по адресу http://<IP-адрес хоста мониторинга>:<порт Grafana>. Номер порта, на котором работает Grafana, задается во время установки сервиса, по умолчанию - 3000.
Логин и пароль пользователя по умолчанию - admin / admin. После авторизации будет предложено изменить пароль по умолчанию. Если в этом нет необходимости, внизу под полями ввода пароля можно нажать кнопку skip.
Чтобы просмотреть доступные дашборды, надо нажать на надпись Dashboards в списке в верней левой части экрана:
Откроется окно со списком доступных дашбордов:
Всего доступно 15 дашбордов:
- Castor Dashboard - метрики, связанные с порталом и портальной авторизацией;
- Docker and system monitoring - состояние контейнеров, которые используются для работы NAICE;
- HTTP 4xx Auth Errors - количество различных ошибок, связанных с недостатком прав, при авторизации администратора в системе NAICE и выполнении запросов;
- JVM (Micrometer) - метрики Java;
- Licensing - метрики, связанные с лицензированием системы;
- Micrometer Spring Throughput - метрики фреймворка Spring Boot;
- MS AD Netlogon - метрики взаимодействия с внешним источником идентификации типа Active Directory при выполнении аутентификации пользователей по протоколу netlogon;
- NATS Server Dashboard - метрики сервиса naice-nats;
- Node Exporter Full - информация о состоянии хоста, на котором работает Eltex-NAICE;
- RADIUS Dashboard - метрики Freeradius-сервера в составе сервиса naice-radius;
- RADIUS Sessions Dashboard - метрики количества успешных/неуспешных аутентификаций/авторизаций по протоколу RADIUS в различных источниках идентификаций;
- Service Logs - логи сервисов NAICE;
- SIEM dashboard - метрики по отправленным событиям в SIEM-системы;
- SMS Gateway Dashboard - метрики по отправленным СМС в рамках портальной авторизации;
- TACACS Dashboard - метрики TACACS-сервера.
