Задача: скрыть из лога устройства тысячи сообщений от сaps При настроенном CAPsMAN лог заполоняет множество info-сообщений от топика caps. Полезность этих сообщений — довольно условная, поэтому неплохо бы их скрыть или перенаправить в другой приемник логов.
Решение простое:
Узнаем ID топика info:
system logging print
Flags: X - disabled, I - invalid, * - default
# TOPICS ACTION PREFIX
0 * info memory
1 * error memory
2 * warning memory
3 * critical echo
Запрещаем топику caps отправлять данные в info с помощью символа отрицания «!«:
system logging set numbers=0 topics=info,!caps
Проверяем вывод еще раз и видим, что info исключен из caps
system logging print
Flags: X - disabled, I - invalid, * - default
# TOPICS ACTION PREFIX
0 * info memory
!caps
1 * error memory
2 * warning memory
3 * critical echo
В принципе задача решена, мы скрыли сообщения из общего лога. Но если мы очень подозрительные админы и просто так логами не разбрасываемся, то пойдем дальше. Перенаправим лог caps на удаленную машину — сборщик Syslog
Создадим нужный нам Action
system logging action add bsd-syslog=yes name=CapsRemote remote=192.168.88.2 syslog-facility=local5 target=remote
где
- указываем тип — syslog FreeBSD (bsd-syslog=yes)
- называем CapsRemote
- указываем адрес удаленного сервера (remote=192.168.88.2)
- указываем syslog-facility=local5 (потом это пригодится для разбора логов на удаленной машине
- указываем назначение действия — отправлять на удаленный хост (target=remote)
Осталось только создать нужное правило
system logging add topics=caps action=CapsRemote
И заняться разбором логов на нашем удаленном syslog-сборщике (как раз тут может пригодится заданная нами syslog-facility)