Установка Пульт (Docker)
Система Пульт разворачивается в докер-контейнерах при помощи плагина docker compose. Обязательной внешней СУБД является PostgreSQL (v. 15–16). ClickHouse (v. 23.6.2.18 и более) — опциональное хранилище; его разворачивают при больших объёмах исторических данных мониторинга.
Получить docker-образы компонентов Пульта могут все желающие по запросу в нашем ТГ сообществе
Общая последовательность установки
- Подготовить окружение: сервер, Docker, доступ к registry, сеть и порты.
- Установить и настроить PostgreSQL. При больших объёмах исторических данных — дополнительно ClickHouse.
- Развернуть основные компоненты Пульта:
pult-server,pult-web. - При необходимости установить дополнительные компоненты:
- компоненты сбора данных:
agent2,agent2-loadable-plugins,java-gateway,pult-snmptraps; - прокси:
pult-proxy-pgsql,pult-proxy-sqlite3; - модули:
pult-report-server,pult-session-manager,pult-siem.
- компоненты сбора данных:
После установки web-интерфейс будет доступен по адресу http://<ip>:8080, где <ip> — адрес машины, на которой разворачивается Пульт.
Данные для авторизации в веб-интерфейсе Пульта по умолчанию: Логин: Admin / Пароль: zabbix
Состав docker-установки Пульта
| Наименование | Тип | Обязательность | Назначение | Когда используется |
|---|---|---|---|---|
| pult-server | Компонент Пульта | Обязательный | Основной серверный компонент Пульта. Отвечает за обработку данных мониторинга, событий, триггеров, взаимодействие с базой данных и выполнение серверной логики системы. | Используется всегда. Без pult-server система Пульт не выполняет основную серверную логику. |
| pult-web | Компонент Пульта | Обязательный | Web-интерфейс Пульта для работы пользователей и администраторов с системой мониторинга. | Используется всегда, если требуется доступ к интерфейсу Пульта через браузер. |
| PostgreSQL | Внешняя БД | Обязательная | Основная реляционная база данных, используемая Пультом для хранения конфигурации, служебных данных и данных, необходимых для работы системы. | Используется всегда в составе установки Пульта. Может быть развёрнута отдельно заказчиком или как часть подготовленной инфраструктуры. |
| ClickHouse | Внешнее хранилище данных | Опциональный | Колонночное хранилище для исторических данных, метрик, трендов и больших объёмов данных мониторинга. | Устанавливается при больших объёмах исторических данных, когда требуется отдельное хранилище для их хранения и быстрого анализа. Без ClickHouse Пульт работает с PostgreSQL. |
| agent2 | Компонент мониторинга | Опциональный / зависит от сценария | Агент для сбора метрик с наблюдаемых хостов и передачи данных в систему мониторинга. | Используется, если необходимо собирать метрики с серверов, виртуальных машин или других наблюдаемых узлов через Agent 2. |
| agent2-loadable-plugins | Расширение агента | Опциональный | Набор загружаемых плагинов для расширения возможностей Agent 2. Позволяет подключать дополнительные проверки и сценарии мониторинга. | Используется, если стандартных возможностей agent2 недостаточно и требуются дополнительные плагины. |
| java-gateway | Интеграционный компонент | Опциональный | Компонент для мониторинга Java-приложений через JMX. | Используется, если в инфраструктуре есть Java-приложения, JVM или сервисы, для которых требуется сбор JMX-метрик. |
| pult-proxy-pgsql | Прокси-компонент | Опциональный / зависит от архитектуры | Прокси-компонент Пульта с использованием PostgreSQL. Предназначен для сбора, буферизации и передачи данных мониторинга между наблюдаемой инфраструктурой и сервером Пульта. | Используется в сценариях, где требуется прокси с хранением данных в PostgreSQL, например для более надёжного или промышленного варианта развёртывания. |
| pult-proxy-sqlite3 | Прокси-компонент | Опциональный / зависит от архитектуры | Прокси-компонент Пульта с использованием SQLite. Предназначен для сбора, буферизации и передачи данных мониторинга между наблюдаемой инфраструктурой и сервером Пульта. | Используется в более лёгких сценариях развёртывания прокси, где достаточно локального хранения данных в SQLite. |
| pult-report-server | Компонент отчётности | Опциональный / обязателен при использовании отчётов | Компонент формирования отчётов в Пульте. Отвечает за генерацию отчётных данных и подготовку пользовательских отчётов. | Используется, если в системе требуется функциональность отчётности. Если отчёты не используются, компонент может не запускаться. |
| pult-session-manager | Служебный компонент | Зависит от конфигурации | Компонент управления пользовательскими сессиями. Обеспечивает работу механизмов сессий в web-интерфейсе и связанных сервисах. | Используется в конфигурациях, где управление сессиями вынесено в отдельный сервис. |
| pult-snmptraps | Интеграционный компонент | Опциональный | Компонент для приёма и обработки SNMP trap-событий от сетевого оборудования и других инфраструктурных компонентов. | Используется, если в инфраструктуре применяются SNMP traps для передачи событий в систему мониторинга. |
| pult-siem | Интеграционный компонент | Опциональный / обязателен при интеграции с SIEM | Сервис экспорта событий журнала аудита Пульта во внешнюю SIEM/SOC-систему в формате Syslog RFC 5424 с полезной нагрузкой CEF. | Используется, если требуется передавать события аудита Пульта во внешнюю систему мониторинга безопасности. |
Подготовка каталога и переменных окружения
Создать директорию /opt/pult и перейти в неё:
sudo mkdir -p /opt/pult;
cd /opt/pult;
Создать файл с переменными окружения /opt/pult/.env и задать переменным значения:
sudo nano /opt/pult/.env
#Адрес сервера PostgreSQL
POSTGRES_HOST=<IP-адрес сервера PostgreSQL>
#Порт PostgreSQL
POSTGRES_SERVER_PORT=5432
#Роль PostgreSQL
POSTGRES_USER=pult
#Пароль для выбранной роли PostgreSQL
POSTGRES_PASSWORD=changeme
#Наименование БД в PostgreSQL
POSTGRES_DB=pult
#Адрес сервера Пульта
ZBX_SERVER_HOST=<IP-адрес сервера Пульт>
# --- ClickHouse (только при использовании; см. раздел Базы данных → ClickHouse) ---
#Адрес сервера Clickhouse
CLICKHOUSE_HOST=<IP-адрес сервера Clickhouse>
#наименование БД в Clickhouse
CLICKHOUSE_DB=pult
#Администратор БД pult в Clickhouse
CLICKHOUSE_USER=pult
#Пароль пользователя pult в Clickhouse
CLICKHOUSE_PASSWORD=changeme
#Порт HTTP-интерфейса ClickHouse (для веб-интерфейса и режима HTTP)
CLICKHOUSE_PORT=8123
#Режим записи истории сервером: http или native (для native в STORAGE_URL используйте порт 9000)
ZBX_HISTORY_CLICKHOUSE_CONNECTOR=http
#Типы данных которые должны храниться в Clickhouse
ZBX_HISTORY_CLICKHOUSE_TYPES="dbl,uint,str,text,log"
⚠ Переменные
CLICKHOUSE_*,ZBX_HISTORY_CLICKHOUSE_CONNECTORиZBX_HISTORY_CLICKHOUSE_TYPESзаполняйте только при развёртывании ClickHouse. Режим Native и примеры URL — в разделе ClickHouse. Если пароль для пользователя в Clickhouse содержит спец.символы, задайте его в кодировке URL (пример: парольp@ssw_ordв кодировке URL будет иметь видp%40ssw_ord). Для кодировки пароля в URL можно воспользоваться специальными веб-сервисами, например www.urlencoder.org.
Запуск контейнеров
После подготовки docker-compose.yml (см. разделы по компонентам) загрузить образы и запустить контейнеры:
docker compose pull
docker compose up -d pult-server pult-web
Подготовка окружения
4 элемента
Базы данных
2 элемента
Основные компоненты Пульта
2 элемента
Компоненты сбора данных
4 элемента
Прокси-компоненты
2 элемента
Модули
3 элемента