Перейти к основному содержимому
Версия: 6.1

Zabbix: Установка и настройка конфигурации

Общее описание

Для развертывания инфраструктурных объектов модуля Zabbix используется утилита make_zabbix.py. Она входит в состав пакета zabbix_ko_maker, размещенная в каталоге bin.

Назначение утилиты

  • развертывание базовых сущностей Smart Monitor, необходимых для работы модуля
  • создание шаблонов индексов
  • cоздание паттернов индексов
  • настроек инвентаризации

Требования

  • Python 3.12 и выше
  • Зависимости утилиты ставятся скриптом bin/install_dependencies.sh (создает .venv, устанавливает библиотеку smpy и httpx)
  • Доступ к кластеру Smart Monitor с правами администратора

Структура проекта

./
├── bin/ # Скрипты установки и развертывания
├── core/ # Cлои ресурсно-сервисной модели (далее — РСМ)
├── data/ # Конфигурационные файлы
│ ├── index_templates/ # Шаблоны индексов
│ ├── index-patterns/ # Паттерны индексов
│ ├── sm_*/ # Сущности Smart Monitor
│ └── inv/ # Настройки инвентаризации
├── lookup_csv/ # Список правил для формирования инцидентов
├── templates/ # Шаблоны метрик РСМ
├── update_zabbix_rsm/ # Скрипт для автоматического обновления сервисов РСМ
└── macroses.json # Макросы установки

Форматы конфигурационных файлов

Сущности Smart Monitor (sm_*)

{
"_meta": {
// мета-данные
},
// конфигурация
}

Шаблоны индексов (index_templates)

{
"name": "zabbix_hosts_template",
"index_template": {
// конфигурация шаблона
}
}

Слои РСМ (core/rsm/layers)

{
"title": "Zabbix: метрики",
"description": "описание слоя"
}

Паттерны индексов (index-patterns)

{
"attributes": {
"title": "zabbix_hosts-*"
},
"references": []
}

Инвентаризация (inv)

  • inv/inventories — конфигурации активов
  • inv/relationSettings — связи между активами

Последовательность установки

Шаг 1. Интеграция Smart Monitor Data Collector

Перед началом установки убедитесь, что выполнена интеграция Zabbix с Smart Monitor Data Collector. На этом этапе должны быть настроены все необходимые pipeline, а также добавлены в keystore API-токен ZABBIX_API_TOKEN и пароль пользователя logstash.

Шаг 2. Установка зависимостей утилиты

./bin/install_dependencies.sh

Скрипт создает виртуальное окружение .venv и устанавливает зависимости утилиты (библиотеку smpy и httpx).

Шаг 3. Запуск установки конфигураций

./bin/make_zabbix.py \
--sm_host <SMART_MONITOR_HOST> \
--sm_api_port <SMART_MONITOR_API_PORT> \
--sm_cluster_port <OPENSEARCH_PORT> \
--sm_user <SMART_MONITOR_USER> \
--sm_password '<SMART_MONITOR_PASSWORD>'
ПараметрОбязательныйТипПо умолчаниюОписание
--sm_hostДаstringХост кластера Smart Monitor
--sm_api_portНетint5601Порт frontend API (saved objects, РСМ, inventory)
--sm_cluster_portНетint9200Порт OpenSearch API (index templates, sm_*-объекты)
--sm_userДаstringИмя пользователя
--sm_passwordДаstringПароль пользователя

Пример:

./bin/make_zabbix.py --sm_host sm-host.my_company.ru --sm_api_port 5601 --sm_cluster_port 9200 --sm_user admin --sm_password securepassword
Обратите внимание!

--sm_api_port используется для frontend API, saved objects, РСМ и inventory. --sm_cluster_port используется для OpenSearch API (index templates, sm_*-объекты). Если frontend API и OpenSearch опубликованы на разных серверах, можно явно задать --sm_api_host и --sm_cluster_host.

Шаг 4. Запуск службы Logstash

После успешного развертывания конфигурации выполните запуск службы Logstash:

sudo systemctl start logstash && sudo systemctl status logstash

или, если служба уже запущена:

sudo systemctl restart logstash && sudo systemctl status logstash

Шаг 5. Проверка результата в интерфейсе

После запуска проверьте, что настройки применились:

  1. Шаблоны индексов

    • В разделе Шаблоны: (Навигационное меню - Параметры системы - Управление индексами - Шаблоны) zabbix_index_templates.png
  2. Паттерны индексов

    • В разделе Паттерны индексов: (Навигационное меню - Параметры системы - Настройки модулей - OPENSEARCH - Паттерны индексов) zabbix_index_patterns.png
  3. Справочники

    • В разделе Список справочников: (Навигационное меню - Lookup Manager - Список справочников) zabbix_lookups.png

Шаг 6. Регистрация типа инцидента модуля

После импорта контентного модуля Zabbix выполните скрипт apply_incident_types.py из состава той же утилиты zabbix_ko_maker. Скрипт регистрирует поля карточки инцидента (плейбук расследования) и идемпотентно создает тип инцидента Инцидент IT, после чего навешивает его на задачи модуля.

./bin/apply_incident_types.py \
--sm_host <SMART_MONITOR_HOST> \
--sm_api_port <SMART_MONITOR_API_PORT> \
--sm_user <SMART_MONITOR_USER> \
--sm_password '<SMART_MONITOR_PASSWORD>'

После выполнения проверьте:

  • тип инцидента Инцидент IT появился в разделе Навигационное меню - Incident Manager - Типы инцидента
  • тип доступен в выпадающем списке Тип инцидента в редакторе задачи
  • инцидент-задачи модуля Zabbix получили этот тип
  • карточка инцидента отображает поля плейбука