MikroTik: log,warning log buffer full, disk logging throttled
Архитектура подсистемы логирования RouterOS и троттлинг флеш-памяти
В операционной системе RouterOS подсистема логирования оперирует буферами в оперативной памяти (Memory Buffer) и операциями ввода-вывода на постоянный накопитель (Flash/NAND/eMMC). Встроенная Flash-память маршрутизаторов (особенно серии hEX, hAP, RB3011) имеет низкую скорость произвольной записи и ограниченный ресурс циклов перезаписи (P/E cycles). Когда объем входящих логов (например, детальный лог фаервола или IPsec debug) превышает скорость сброса данных на диск, внутренний буфер переполняется. Ядро активирует защитный механизм дискового троттлинга (I/O Throttling) и фиксирует событие log,warning log buffer full, disk logging throttled. Часть сообщений принудительно отбрасывается во избежание деградации накопителя.
Бизнес-риски
Ускоренная деградация и выход из строя чипа Flash-памяти (устройство падает в Kernel Panic / Error 24 / NAND Failure), потеря записей аудита безопасности при расследовании инцидентов, зависание процессов WinBox и WebFig.
Сравнение типов накопителей логов в RouterOS
| Действие (Action) | Расположение | Влияние на ресурс оборудования |
|---|---|---|
memory | ОЗУ (RAM) | Нулевой износ накопителя, данные теряются при перезагрузке. |
disk | NAND / Flash | Критический износ: непрерывная запись «убивает» память за несколько месяцев. |
remote | Внешний Syslog (UDP 514) | Безопасно, не расходует ресурс Flash, хранение терабайтов логов. |
Пошаговое устранение переполнения буфера логов
Сценарий 1: Отключение записи высокоинтенсивных топиков на Flash-память
Категорически запрещено направлять события firewall, ipsec, raw и debug в действие disk:
# Проверка текущих правил логирования
/system logging print
# Перевод агрессивных топиков исключительно в память (RAM)
/system logging set [find topics~"firewall"] action=memory
/system logging set [find topics~"ipsec"] action=memory
# Увеличение размера буфера оперативной памяти (до 2000-5000 строк)
/system logging action set memory memory-lines=2048Сценарий 2: Настройка отправки логов на удаленный Syslog-сервер
Для долговременного хранения логов без вреда для маршрутизатора настройте экспорт по протоколу Syslog (порт UDP 514) на внешний сервер (Graylog / ELK / rsyslog):
# Создание удаленного действия (Remote Syslog Action)
/system logging action add name="RSYSLOG_SERVER" target=remote remote=192.168.1.50 remote-port=514 \
src-address=0.0.0.0 bsd-syslog=yes syslog-facility=daemon
# Привязка правил логирования безопасности к удаленному серверу
/system logging add topics=firewall action=RSYSLOG_SERVER
/system logging add topics=critical,warning action=RSYSLOG_SERVERСценарий 3: Настройка префикса и фильтрации спама в правилах Firewall
Если логирование включено в правилах фаервола, ограничьте частоту срабатывания (Rate Limit / Threshold):
# Логирование только первых 5 пакетов в минуту для защиты от флуда
/ip firewall filter add chain=input action=log log-prefix="FW-DROP: " \
connection-state=invalid limit=5,10:packet comment="Rate-limited log for dropped traffic"Типовые ошибки администраторов
- Оставление правила 'action=log' на входящем интерфейсе без лимита пакетов: Во время внешней DDoS-атаки или сканирования портов роутер тратит 100% ресурсов на запись сообщений на диск и зависает.
- Установка параметра disk-lines=100000 на бюджетных моделях (hEX, hAP lite): Приводит к быстрому исчерпанию резервных секторов NAND-памяти и необратимой поломке устройства.
Инженеры ITSTM настроят отказоустойчивый кластер ELK/Graylog, экспорт NetFlow/Syslog с маршрутизаторов и мониторинг ИБ.
Частые вопросы (FAQ)
Как оценить текущий износ Flash-памяти на MikroTik?
В CLI выполните команду /system resource print. Обратите внимание на параметр bad-blocks. Если он больше 0% и непрерывно растет, накопитель поврежден и роутер требует срочной замены.
Что произойдет с маршрутизатором, если диск полностью забьется логами?
При переполнении диска роутер не сможет сохранять конфигурацию, сертификаты и файлы баз данных. После первой же перезагрузки устройство может сброситься в заводские настройки (Default Config) или уйти в Bootloop.
Можно ли записывать логи на подключенную USB-флешку?
Да, в /system logging action для типа disk можно указать путь на внешний USB-накопитель (disk-file-name=usb1/log), что полностью обезопасит внутреннюю память роутера.
Как очистить текущий журнал логов в оперативной памяти?
Команда /system logging action set memory memory-lines=1 с последующим возвратом нужного числа строк (например, 1000) мгновенно очищает буфер ОЗУ.