Может ли сервер Syslog распознать клиентскую ОС?

Может ли сервер Syslog распознать клиентскую ОС?

Недавно я настроил центральный сервер syslog. Журналы организованы в файлы, в папки, названные по именам клиентских машин (с использованием DNS), и сканируются с помощью logcheck.

На некоторых клиентских машинах установлено более одной ОС (а именно Linux и Windows), и в итоге получается один и тот же IP-адрес и имя хоста. В результате журналы Windows (сообщения) и журналы Linux оказались в одном файле, что меня и logcheck очень расстроило. Мне интересно хранить журналы для разных ОС отдельно.

Мое решение состояло в том, чтобы заставить syslog прослушивать несколько портов и настроить syslog/rsyslog на клиентских машинах Linux и Windows на использование другого номера порта. Таким образом, я могу легко перенаправлять журналы в соответствующие файлы в соответствии с их источником.

Однако я не совсем уверен в элегантности решения — nmap может определить клиентскую ОС по отпечатку стека TCP/IP.

Есть ли способ настроить Syslog-ng для перенаправления входящих данных в соответствии с ОС клиентской машины?

решение1

Ваш подход с разными портами для машин Linux и Windows совсем не плох.

Альтернативы:

  • использование программы в качестве пункта назначения в syslog-ng (например, вашего пользовательского скрипта, который проверяет текущую ОС клиентской машины и записывает данные в linux.log или windows.log) — медленно и ненадежно.
  • использование match(...) в фильтре syslog-ng для различения строк syslog Linux и Windows (не уверен, что это будет просто и надежно, если только вы не сможете поместить некоторую подстроку маркера в syslog клиента) и использование такого фильтра для выбора целевого файла журнала.

Оба варианта вряд ли можно рекомендовать.

Еще один трюк может заключаться в использовании транспорта tcp для syslog с клиентов linux и udp - с windows. Затем вы можете настроить назначения файлов с фильтром по протоколу.

Связанный контент