Отправка логов с OpenWRT/LEDE в syslog и обработка событий
Вдогонку к статье о syslog-ng решил сделать дополнение о том, как завернуть логи с OpenWRT и настроить реакцию на соответствие какому-нибудь фильтру. Дома у меня есть два Xiaomi MiWifi 3G (оказалось крайне доступным и достойным по характеристикам устройством), три штуки Netgear WNR3500L, которые в текущий момент работают в качестве гигабитных свичей в разных частях квартиры и Nexx 3020 для экспериментов. Одним словом, правило для сохранения логов должно быть общее для всех этих устройств, чтобы не писать шесть отдельных конфигурационных файлов. Начать я решил со своего основного Xiaomi роутера с хостнеймом gw01, на котором стоит OpenWRT 18.06.
Теги: админское, docker, logging
Про централизованный сбор логов
За последнее время случилось несколько событий, которые привели меня к необходимости централизованного сбора логов в своей домашней сети.
Что и зачем собирать?
- Периодически ночью отваливается интернет от билайна, хотелось бы видеть, что в этот момент происходит с роутером.
- Есть десяток IoT устройств, построенных на ESP8266, которые с прошивкой ESPEasy умеют отправлять логи по сети.
- Жена на новый год подарила управляемый гигабитный коммутатор, почему бы не снимать логи и с него, если уж будет такая возможность?
- Есть сервер умного дома, работающий на отдельной OrangePI Zero.
- Есть около полутора десятков докер и lxc контейнеров с различными службами и pet-проектами, в том числе и этот блог.
Хотелось бы хранить все эти логи в одном месте, чтобы облегчить их анализ, ротацию, архивирование и бекап. Как обрабатывать подобную информацию - это уже отдельная задача, но для начала эту информацию нужно собрать.
Теги: админское, docker, logging
В ротейт мне логи! Про минимализм, busybox и логирование.
Так как я довольно много пишу на шелле, передо мной уже довольно давно встала проблема логирования в скриптах. После просмотра километровых логов начинает рябить в глазах, сложно выделить важные моменты при быстром скроллинге, например, какой-нибудь warning или внезапный error. Одним словом, терпение закончилось и я решил написать свой велосипед, по возможности функциональный, лёгкий и с минимумом зависимостей - всё, как я люблю.
Традиционный список хотелок:
- Минимальные зависимостии размер
- Уровни логирования (debug/info/warinig)
- Отключаемая подсветка разными цветами разных типов событий
- Работоспособность под OpenWRT, Android, Alpine и т.п.
- Возможность переопределять параметры переменными в основном скрипте
- Возможность передать в FATAL сразу код завершения
- Настраиваемый формат даты
- Разделитель (очень полезно для отделения частей лога)
- Краткий синтаксис вызова (не люблю длинные имена модулей)
Теги: logging, shell, busybox, minimalism