Установка Docker
Система Пульт разворачивается в докер-контейнерах при помощи плагина docker compose. В качестве СУБД используется Clickhouse (v. 23.6.2.18 и более) и PostgreSQL (v. 15-16). Для скачивания docker-образов компонентов Пульта необходимо воспользоваться учетной записью в репозитории Лаборатории Числитель.
После установки, web-интерфейс будет доступен просто по http://ip:8080, где ip – адрес машины, на которой разворачивается Пульт.
Данные для авторизации в веб-интерфейсе Пульта по умолчанию: Логин: Admin / Пароль: zabbix
Установка Docker
Произвести установку Docker и Docker-compose на выделенном сервере согласно официальной документации в соответствии с выбранной ОС.
Далее добавить администратора в группу docker
sudo usermod -aG docker $USER;
newgrp docker;
После успешной установки необходимо запустить сервис контейнеризации docker и добавить его в автозагрузку:
sudo systemctl enable docker --now;
Установка сервера Пульта
Создать директорию /opt/pult и перейти в нее:
sudo mkdir -p /opt/pult;
cd /opt/pult;
Создать docker-compose.yml файл со следующим содержимым:
services:
pult-server:
image: registry.pult.chislitellab.ru:8123/releases/2.2.0/server-pgsql-redos8:7.4.5
container_name: pult-server
restart: always
environment:
ZBX_HISTORY_CLICKHOUSE_STORAGE_URL: http://${CLICKHOUSE_HOST}:${CLICKHOUSE_PORT}/?database=${CLICKHOUSE_DB}&user=${CLICKHOUSE_USER}&password=${CLICKHOUSE_PASSWORD}
ZBX_HISTORY_CLICKHOUSE_STORAGE_TYPES: ${ZBX_HISTORY_CLICKHOUSE_TYPES}
ZBX_HISTORY_CLICKHOUSE_CHUNK_SIZE: 10000
ZBX_HISTORY_CLICKHOUSE_FLUSH_TIMEOUT: 30
ZBX_HISTORY_CLICKHOUSE_NS_DISABLE: 1
ZBX_CACHESIZE: 2048M
ZBX_VALUECACHESIZE: 1024M
ZBX_TRENDCACHESIZE: 1024M
ZBX_ENABLE_SNMP_TRAPS: true
ZBX_HISTORYCACHESIZE: 256M
ZBX_HISTORYINDEXCACHESIZE: 128M
ZBX_TIMEOUT: 30
DB_SERVER_HOST: ${POSTGRES_HOST}
DB_SERVER_PORT: ${POSTGRES_SERVER_PORT}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
network_mode: host
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
pult-web:
image: registry.pult.chislitellab.ru:8123/releases/2.2.0/web-nginx-pgsql-redos8:7.4.5
container_name: pult-web
restart: always
depends_on:
- "pult-server"
user: root
environment:
ZBX_SERVER_HOST: "${ZBX_SERVER_HOST}"
ZBX_HISTORY_CLICKHOUSE_URL: http://${CLICKHOUSE_HOST}:${CLICKHOUSE_PORT}/?database=${CLICKHOUSE_DB}
ZBX_HISTORY_CLICKHOUSE_USERNAME: default
ZBX_HISTORY_CLICKHOUSE_PASSWORD: default
ZBX_HISTORY_CLICKHOUSE_TYPES: ${ZBX_HISTORY_CLICKHOUSE_TYPES}
DB_SERVER_HOST: ${POSTGRES_HOST}
DB_SERVER_PORT: ${POSTGRES_SERVER_PORT}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
network_mode: host
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
report-server:
restart: always
container_name: pult-report-server
image: registry.pult.chislitellab.ru:8123/releases/2.2.0/report-server-redos8:7.4.5
depends_on:
- "pult-server"
- "pult-web"
volumes:
- ./reports/generated_reports:/app/generated_reports
- ./reports/config.yaml:/app/config.yaml
ports:
- 8088:8080
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "10"
Для управления расширенными параметрами сервера в разделе Environment можно использовать следующие параметры:
ZBX_ALLOWUNSUPPORTEDDBVERSIONS: 0
ZBX_DBTLSCONNECT:
ZBX_DBTLSCAFILE:
ZBX_DBTLSCERTFILE:
ZBX_DBTLSKEYFILE:
ZBX_DBTLSCIPHER:
ZBX_DBTLSCIPHER13:
ZBX_VAULTDBPATH:
ZBX_VAULTPREFIX:
ZBX_VAULTURL: https://127.0.0.1:8200
VAULT_TOKEN:
ZBX_LISTENIP:
ZBX_LISTENPORT: 10051
ZBX_LISTENBACKLOG:
ZBX_STARTREPORTWRITERS: 0
ZBX_WEBSERVICEURL: http://zabbix-web-service:10053/report
ZBX_SERVICEMANAGERSYNCFREQUENCY: 60
ZBX_HISTORYSTORAGEURL:
ZBX_HISTORYSTORAGETYPES: uint,dbl,str,log,text
ZBX_ENABLEGLOBALSCRIPTS: 0
ZBX_STARTPOLLERS: 5
ZBX_STARTIPMIPOLLERS: 0
ZBX_STARTCONNECTORS: 0
ZBX_STARTPREPROCESSORS: 3
ZBX_STARTPOLLERSUNREACHABLE: 1
ZBX_STARTTRAPPERS: 5
ZBX_STARTPINGERS: 1
ZBX_STARTDISCOVERERS: 1
ZBX_STARTHISTORYPOLLERS: 5
ZBX_STARTHTTPPOLLERS: 1
ZBX_STARTODBCPOLLERS: 1
ZBX_STARTTIMERS: 1
ZBX_STARTESCALATORS: 1
ZBX_STARTALERTERS: 3
ZBX_JAVAGATEWAY: zabbix-java-gateway
ZBX_JAVAGATEWAYPORT: 10052
ZBX_STARTJAVAPOLLERS: 5
ZBX_STARTLLDPROCESSORS: 2
ZBX_STATSALLOWEDIP:
ZBX_STARTVMWARECOLLECTORS: 0
ZBX_VMWAREFREQUENCY: 60
ZBX_VMWAREPERFFREQUENCY: 60
ZBX_VMWARECACHESIZE: 8M
ZBX_VMWARETIMEOUT: 10
ZBX_ENABLE_SNMP_TRAPS: false
ZBX_SOURCEIP:
ZBX_SMSDEVICES:
ZBX_HOUSEKEEPINGFREQUENCY: 1
ZBX_MAXHOUSEKEEPERDELETE: 5000
ZBX_PROBLEMHOUSEKEEPINGFREQUENCY: 60
ZBX_SENDERFREQUENCY: 30
ZBX_CACHESIZE: 8M
ZBX_CACHEUPDATEFREQUENCY: 10
ZBX_STARTDBSYNCERS: 4
ZBX_EXPORTFILESIZE: 1G
ZBX_EXPORTTYPE:
ZBX_AUTOHANODENAME: fqdn
ZBX_HANODENAME:
ZBX_AUTONODEADDRESS: fqdn
ZBX_NODEADDRESSPORT: 10051
ZBX_NODEADDRESS: localhost
ZBX_HISTORYCACHESIZE: 16M
ZBX_HISTORYINDEXCACHESIZE: 4M
ZBX_HISTORYSTORAGEDATEINDEX: 0
ZBX_TRENDCACHESIZE: 4M
ZBX_TRENDFUNCTIONCACHESIZE: 4M
ZBX_VALUECACHESIZE: 8M
ZBX_TRAPPERTIMEOUT: 300
ZBX_UNREACHABLEPERIOD: 45
ZBX_UNAVAILABLEDELAY: 60
ZBX_UNREACHABLEDELAY: 15
ZBX_LOGSLOWQUERIES: 3000
ZBX_STARTPROXYPOLLERS: 1
ZBX_PROXYCONFIGFREQUENCY: 10
ZBX_PROXYDATAFREQUENCY: 1
ZBX_TLSLISTEN:
ZBX_TLSCAFILE:
ZBX_TLSCA:
ZBX_TLSCRLFILE:
ZBX_TLSCRL:
ZBX_TLSCERTFILE:
ZBX_TLSCERT:
ZBX_TLSKEYFILE:
ZBX_TLSKEY:
ZBX_TLSCIPHERALL:
ZBX_TLSCIPHERALL13:
ZBX_TLSCIPHERCERT:
ZBX_TLSCIPHERCERT13:
ZBX_TLSCIPHERPSK:
ZBX_TLSCIPHERPSK13:
ZBX_TLS_FRONTENDACCEPT:
ZBX_FRONTENDALLOWEDIP:
ZBX_TLSFRONTENDCERTISSUER:
ZBX_TLSFRONTENDCERTSUBJECT:
ZBX_WEBDRIVERURL:
ZBX_STARTBROWSERPOLLERS: 1
ZBX_STARTSNMPPOLLERS: 1
Для ознакомления с функцией каждого параметра вы можете перейти в раздел Конфигурация.
Установка модуля отчетов
Настройка Модуля отчетов
Создать директорию для модуля отчетов:
sudo mkdir -p /opt/pult/reports/generated_reports
Создать файл с конфигурацией модуля отчетов, внеся соответствующие изменения (ip-адреса для подключения, пароли):
sudo nano /opt/pult/reports/config.yaml
#Настройка подключения к конфигурационной БД
database:
type: 'postgresql'
username: 'pult'
password: 'changeme'
port: 5432
ip: '<IP-адрес сервера Postgres>'
name: 'pult'
#Настройка подключения к API Пульта
pult:
username: 'Admin'
password: 'zabbix'
api_url: 'http://<IP-адерс сервера Пульт>/'
#Количество потоков программы
application:
threads_count: 10
#Настройка пути для скачивания отчетов
web_server:
active: false
ip: ''
port: 8080
report_link: 'http://<IP-адерс сервера Пульта>/generated_reports/'
#Настройка housekeeper для сформированных отчетов (сколько времени хранятся сформированные отчеты)
housekeeper:
active: True
timeout: 3600
older_report_hour: 72
Создать файл с переменными окружения /opt/pult/.env и задать переменным значения:
sudo nano /opt/pult/.env
⚠ Если пароль для пользователя в Clickhouse содержит спец.символы, в файле с переменными окружения необходимо задать его в кодировке URL (пример: пароль p@ssw_ord в кодировке URL будет иметь вид p%40ssw_ord). Для кодировки пароля в URL можно воспользоваться специальными веб-сервисами, например www.urlencoder.org.
#Адрес сервера Clickhouse
CLICKHOUSE_HOST=<IP-адрес сервера Clickhouse>
#наименование БД в Clickhouse
CLICKHOUSE_DB=pult
#Администратор БД pult в Clickhouse
CLICKHOUSE_USER=pult
#Пароль пользователя pult в Clickhouse
CLICKHOUSE_PASSWORD=changeme
#Порт на котором слушает Clickhouse
CLICKHOUSE_PORT=8123
#Типы данных которые должны храниться в Clickhouse
ZBX_HISTORY_CLICKHOUSE_TYPES="dbl,uint,str,text,log"
#Адрес сервера 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-адрес сервера Пульт>
Авторизоваться в docker-репозитарии Лаборатории Числитель:
docker login registry.pult.chislitellab.ru:8123
Загрузить образы docker-контейнеров Пульта
docker compose pull
Запустить docker-контейнеры Пульта:
docker compose up -d pult-server pult-web
docker compose up -d report-server
Активация пользовательских отчетов в веб-интерфейсе Пульта
Для активации пользовательских отчетов следует в web-интерфейсе перейти в раздел «Администрирование» → «Общие» → «Модули»

Далее ввести в поле Имя (1) название модуля "Предзаготовленные отчеты", нажать кнопку Применить (2) и сменить состояние кликнув на него (3).
В случае если указанный модуль будет не найден, попробовать нажать на кнопку "Сканировать директорию" (4).

Состояние модуля станет "Активировано"

В web-интерфейсе в разделе "Отчеты" появится подраздел "Пользовательские отчеты".

Установка прокси Пульта
Актуальный образ Proxy с поддержкой PostgreSQL доступен по адресу https://registry.pult.chislitellab.ru:8123/releases/2.2.0/proxy-pgsql-redos8:7.4.5
Файлы для установки: docker-compose.yml и файл окружения .env должны находиться в корне Вашего каталога с прокси.
Перед запуском создайте каталог для переменных окружения:
mkdir ./zbx_env
Поместите файл .env в созданный каталог ./zbx_env.
После подготовки окружения выполните:
docker-compose up -d
Сервис поднимется в фоне и будет использовать параметры из файла окружения.