Домашняя лаборатория с 18 LXC-контейнерами на Proxmox — это тысячи строк логов в час, где критические ошибки тонут в шуме. OpenClaw Logs — это система мониторинга инфраструктуры, которую я построил для сбора, обогащения и анализа логов с каждого контейнера и хоста с алертингом аномалий в Telegram. Стек объединяет Fluent Bit для сбора, кастомный Lua-фильтр обогащения, VictoriaLogs для хранения и AI-агента, непрерывно отслеживающего ошибки и паттерны.
- OpenClaw Logs: проблема
- Обзор архитектуры
- Пайплайн сбора Fluent Bit
- Развёртывание одной командой
- Покрытие инфраструктуры
- VictoriaLogs и LogsQL
- AI-анализ
- Результаты
- Часто задаваемые вопросы
- Почему VictoriaLogs, а не Elasticsearch?
- Как Lua-фильтр обрабатывает разные форматы логов?
- Может ли это масштабироваться за пределы домашней лаборатории?
- Что триггерит Telegram-алерт?
OpenClaw Logs: проблема
Proxmox-хост с 18 контейнерами (DNS-фильтрация, MQTT-брокер, Zigbee-мост, менеджер паролей, reverse proxy, движки автоматизации, инструменты мониторинга) генерирует постоянный поток логов. Без централизованного сбора приходится SSH-иться в каждый контейнер и проверять journalctl, когда что-то ломается. OpenClaw Logs централизует всё в единое хранилище с интеллектуальным алертингом.
Обзор архитектуры
- Сбор: агенты Fluent Bit на каждом хосте, читающие записи systemd journal и пересылающие в центральное хранилище
- Обогащение: кастомный Lua-фильтр, классифицирующий уровни логов, извлекающий структурированные данные из JSON (Pino, Bunyan, Rocket.Chat) и дропающий шум
- Хранение: VictoriaLogs v1.48.0 — специализированная БД для логов с 90-дневным хранением, лимитом 5 ГБ и языком запросов LogsQL
- Визуализация: дашборды Grafana для мониторинга в реальном времени
- Алертинг: AI-агент, запрашивающий логи ошибок каждый heartbeat и отправляющий Telegram-алерты при аномалиях
- Доступ: Cloudflare Tunnel для безопасного удалённого доступа без открытых портов
Это та же архитектура дата-пайплайнов, которую я внедряю для корпоративных систем — собрать, трансформировать, сохранить, проанализировать.
Пайплайн сбора Fluent Bit
Fluent Bit работает на Proxmox-хосте и читает записи systemd journal из всех контейнеров. Кастомный Lua-фильтр обогащения обрабатывает слой трансформации:
- Фильтрация шума: дропает известные шумные приложения (sd-pam, systemd-logind, sshd-session), генерирующие тысячи бесполезных записей
- Классификация уровней: маппинг syslog PRIORITY (0-7) в уровни error/warn/info/debug
- Парсинг JSON-логов: обнаружение JSON-форматированных сообщений и извлечение структурированных полей (msg, level, name, errmsg)
- Поддержка Pino/Bunyan: числовые уровни логов (10=debug, 30=info, 40=warn, 50=error) маппятся автоматически
- Эвристическое повышение: если сообщение содержит ключевые слова «error» или «fatal», но классифицировано как info — уровень повышается
- Обогащение метаданными: каждая запись получает hostname, имя приложения, нормализованный уровень и тип job
Развёртывание одной командой
Добавление нового сервера в мониторинг занимает одну команду:
curl -fsSL https://RAW_URL/install.sh | sudo bash Скрипт установки автоматически:
- Устанавливает Fluent Bit если отсутствует
- Определяет тип окружения (LXC-контейнер или bare metal сервер)
- Генерирует Lua-фильтр обогащения с правильным hostname и типом job
- Настраивает вывод в VictoriaLogs (HTTPS через Cloudflare или прямое локальное подключение)
- Включает и запускает сервис
Без ручной конфигурации, без редактирования файлов. Это автоматизация развёртывания — тот подход, который масштабируется от одного сервера до десятков.
Покрытие инфраструктуры
Система мониторит 18 LXC-контейнеров плюс Proxmox-хост:
- Сеть: AdGuard DNS, Nginx Proxy Manager, Cloudflare Tunnel, Smokeping
- IoT/Умный дом: Zigbee2MQTT, EMQX MQTT-брокер, ioBroker, HyperHDR
- Безопасность: Vaultwarden менеджер паролей
- Автоматизация: n8n workflow-движок
- Медиа: TorrServer, qBittorrent
- Мониторинг: Grafana, PiAlert сетевой сканер, Homepage дашборд
- AI-агенты: инстансы OpenClaw (маркетинг-агент, агент анализа логов)
- Хранение: Samba файловая синхронизация
VictoriaLogs и LogsQL
VictoriaLogs — хранилище логов, специализированная БД, достаточно экономная для домашней лаборатории, но с возможностями запросов для серьёзного анализа:
- LogsQL: SQL-подобный язык запросов для фильтрации, агрегации и анализа логов
- Агрегация статистики: группировка ошибок по hostname, app, level с операциями count/sort
- Политика хранения: 90 дней, максимум 5 ГБ — оптимизировано для масштаба домашней лаборатории
- Веб-интерфейс: встроенный интерфейс запросов по адресу /select/vmui
AI-анализ
AI-агент анализа логов работает непрерывно:
- Мониторинг ошибок: проверка записей level:error каждые 30 минут
- Обнаружение аномалий: выявление резких всплесков ошибок, новых типов ошибок или пропавших хостов
- Отчёты по инфраструктуре: сводки здоровья по всем 18 контейнерам по запросу
- Верификация покрытия: контроль, что все контейнеры отправляют логи (нет «тихих» сбоев)
- Telegram-алерты: мгновенные уведомления о критических проблемах
Это сочетание проактивного мониторинга рисков с AI-анализом — тот же паттерн, который я рекомендую для корпоративной инфраструктуры.
Результаты
- Централизованный сбор логов с 18 контейнеров с развёртыванием одной командой
- Интеллектуальная фильтрация шума с сохранением критических событий
- Парсинг структурированных логов для JSON-приложений (Pino, Bunyan, Rocket.Chat)
- AI-мониторинг в непрерывном режиме с Telegram-алертингом
- Экономное хранение с 90-дневной ретенцией
- Безопасный удалённый доступ через Cloudflare Tunnel
Нужен централизованный мониторинг инфраструктуры? Обсудим архитектуру →
Часто задаваемые вопросы
Почему VictoriaLogs, а не Elasticsearch?
VictoriaLogs создан специально для хранения логов с минимальным потреблением ресурсов — идеально для домашней лаборатории и малой инфраструктуры. Elasticsearch требует значительно больше RAM и CPU для сопоставимых нагрузок. LogsQL даёт нужную мощность запросов без операционных накладных расходов.
Как Lua-фильтр обрабатывает разные форматы логов?
Фильтр сначала пробует парсинг JSON. Если сообщение начинается с «{», извлекаются структурированные поля (msg, level, name). Для не-JSON сообщений используется маппинг syslog PRIORITY. Эвристический слой ловит ключевые слова ошибок в info-классифицированных сообщениях. Это обрабатывает всё — от сырого syslog до Pino JSON и Rocket.Chat.
Может ли это масштабироваться за пределы домашней лаборатории?
Безусловно. VictoriaLogs поддерживает горизонтальное масштабирование. Паттерн сбора Fluent Bit работает идентично для облачных VM. Установщик одной командой работает на любом Debian/Ubuntu сервере. Архитектура построена на корпоративных паттернах, переносимых в продакшн.
Что триггерит Telegram-алерт?
Записи уровня error, резкие всплески количества ошибок, новые типы ошибок и «замолчавшие» хосты (отсутствующие в ожидаемом потоке логов). AI-агент анализирует паттерны, а не просто ключевые слова.
