Настройте сервер syslog-ng для усечения сообщений, ретранслируемых только в 1 пункт назначения из нескольких пунктов назначения. - PullRequest
0 голосов
/ 17 мая 2019

Мой существующий сервер syslog-ng PE 5 (да, старый) использует несколько операторов журнала для локальной записи всех журналов, а также для передачи некоторых сообщений внешним службам сканирования журналов на нашем предприятии.

Оператородин из этих внешних ретрансляторов-адресатов запросил, чтобы мы урезали каждое передаваемое им сообщение журнала до определенной максимальной длины.

Я не хочу уменьшать глобальное значение для длины сообщения.Я только хочу ограничить размер, отправляемый этому одному месту назначения.

Я предполагаю, что это будет переключатель или флаг в операторе журнала.Я посмотрел документы для переписывания правил и не вижу ничего очевидного.

Как вы решили эту проблему?

1 Ответ

0 голосов
/ 20 мая 2019

хотя это не так просто, как установить флаг, я могу придумать 3-4 возможных решения.Однако не все из них работают с PE 5.

Если вы хотите выполнить обновление:

  1. Более новые версии syslog-ng (PE 7 / OSE 3.1x) имеют Функция шаблона substr () , которая делает именно то, что вам нужно, так что вы можете использовать ее в шаблоне назначения, который отправляет журналы на сканер.
  2. Если вы устанавливаете последнюю версию syslog-ng (PE 7.12+ / OSE 3.15+) и вам нужна более сложная обработка, вы можете написать пользовательскую шаблонную функцию в Python для нарезки и нарезки сообщений.

Если вы хотите придерживаться старых версий:

  1. Поскольку вы уже записываете сообщения журнала в файл, вы можете создать новый источник файлов в syslog-ng, прочитать сообщения из файла и установить log-msg-size ()Опция этого источника до предела, в котором вы хотите усечь сообщения (IIRC, syslog-ng будет усекать сообщение и сбрасывать лишнее, но вы должны проверить, что оно не создает второе сообщение из усеченной части).Проблема с этим решением - IIRC в том, что источник файлов в PE 5 не может следовать за несколькими файлами, поэтому, если вы используете макросы даты или аналогичные в именах файлов / каталогов, это проблема.PE 6+ и более новые версии OSE могут использовать подстановочные знаки в источниках файлов.
  2. Если все остальное не удается, вы можете попытаться использовать назначение программы для написания сценария, который каким-либо образом обрабатывает сообщения.

Лично я бы порекомендовал какой-то апгрейд (PE 5 древний и EOL).Если вы не можете выполнить обновление до последней версии PE, простейшим решением может быть установка ретранслятора OSE, поэтому ваш сервер PE 5 отправляет журналы в OSE, которая может использовать функцию шаблона substr () для обрезания сообщений и отправки их вваш журнал сканер.

HTH, Роберт

...