
Zabbix + локальная LLM: практический обзор интеграции (часть 4)
В финальной части серии автор делится результатами внедрения локальной LLM в систему алертов Zabbix, показывая архитектуру, код и полученные метрики.
В статье «Как я Zabbix с LLM дружил в свободное время. Часть 4 – Реализация» автор закрывает цикл публикаций о попытке «умнее» автоматизировать алерты в домашней лаборатории. После анализа задачи (части 1) и выбора модели (части 2) – в качестве фаворита была использована локальная LLM 7B на базе Llama‑Cpp, работающая на сервере с 32 ГБ RAM и RTX 4090 – в третьей части была спроектирована высокоуровневая и детальная архитектура.
В реализации автор построил три основных компонента: 1) Zabbix‑Webhook, который при срабатывании триггера отправляет событие в очередь RabbitMQ; 2) LLM‑сервис, написанный на Python с FastAPI, берёт сообщение из очереди, формирует запрос к модели и получает «умный» текст ответа; 3) Обратный канал, где полученный ответ отправляется обратно в Zabbix через API, создавая дополнительный тикет или уточняющий комментарий.
Для снижения нагрузки использованы батч‑обработки (пакет по 5 запросов) и кэширование выводов в Redis. По результатам тестов средняя задержка обработки одного алерта составила 1,8 сек, а точность классификации проблем – 87 % (по сравнению с 62 % у базовой системы). Автор также делится готовыми скриптами, Docker‑compose‑файлом и рекомендациями по масштабированию. Ссылка на репозиторий GitHub и ссылки на части 1‑3 включены в конце статьи.
Для разработчиков мониторинга это реальный пример, как добавить LLM‑поддержку без облачных сервисов и без «франкенштейна». Интеграция через вебхуки и очередь позволяет гибко масштабировать и контролировать расходы. Главное – помнить о ресурсных затратах модели и необходимости кэшировать ответы, иначе latency может превысить допустимые пределы SLA.


