Система мониторинга сервисов NAICE представляет собой совокупность экспортеров метрик сервисов, системы их хранения и системы их визуализации. В качестве системы хранения метрик и представления их в виде временных рядов выступает сервис Prometheus, в качестве системы визуализации метрик в виде дашбордов - сервис Grafana. Экспортеры метрик уникальны для каждого отслеживаемого сервиса.
Помимо обработки метрик система мониторинга также включает в себя сбор логов docker-контейнеров сервисов NAICE и их хранение в Loki. Визуализация логов также доступна в Grafana.
Для разворачивания системы мониторинга используется Ansible-плейбук install-monitoring.yml, который входит в состав архива для установки NAICE.
Установка поддержана на те же операционные системы, что и NAICE (см. v1.0_3.1 Системные требования).
Минимальные системные требования к хосту для мониторинга:
Последовательность действий для установки:
Отредактировать файл 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 для указания адресов доступа к хостам для установки.
---
# Группа хостов для установки системы мониторинга для 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 дашбордов: