У нас есть около 9-10 устройств, для которых мы хотим направить ведение журнала на наш сервер rsyslog. Однако местных заведений всего 8 (0-7). Как мы можем обойти это ограничение?
Зарегистрируйте название приложения в своих сообщениях. Фильтр по названию приложения вместо объекта. Если ваши приложения не генерируют сообщения системного журнала напрямую, вы можете применить выходной фильтр (например, sed
) массировать вещи, чтобы они выглядели так, как вы хотите.
Взгляните на документацию Rsyslog на условия фильтрации чтобы увидеть, как вы можете настроить это поведение. Основываясь на информации на этой странице, вот пример того, как вы можете поместить сообщения, начинающиеся со строки «application1», в /var/log/application1
:
if $msg startswith 'application1' then /var/log/application1
Вы также можете явно отфильтровать название программы, если ваше приложение устанавливает это правильно:
if $programname == 'application1' then /var/log/application1
Вы можете выполнять всевозможные сложные фильтры в своем rsyslog.conf
; прочтите документацию для получения дополнительной информации и примеров.
РЕДАКТИРОВАТЬ: rsyslog
можно использовать шаблоны для создания отдельных файлов для каждого сервера. Примерно следующее должно поместить все сообщения журнала в отдельные файлы для каждого имени хоста. (Это взято из справочной страницы.)
$template DynFile,"/var/log/system-%HOSTNAME%.log
*.* ?DynFile
Следующее похоже, но не регистрирует сообщения отладки. Он также использует имя хоста подключения, а не имя хоста сообщения. (Это основано на том, что я разработал для протоколирования вывода Obi100.)
$template HostFormat,"%timegenerated% %fromhost% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
$template HostFile,"/var/log/system-%fromhost%.log
if $syslogseverity < 7 then -HostFile;HostFormat
Прочтите справочную страницу и документацию, если у вас есть более сложные потребности или вы хотите понять, что делает вышеперечисленное.
Фильтр по имени хоста. (У каждого устройства должно быть собственное имя хоста). Если вы хотите, вы можете прослушивать несколько портов и обрабатывать каждый порт отдельно.
Средства предназначены для обработки таких категорий сообщений, как авторизация, почта, принтер, ftp и т. Д. Поскольку UUCP больше не используется, вы, вероятно, можете использовать его для собственных нужд. Это могут быть другие неиспользуемые объекты в вашей конфигурации. Однако лучше использовать стандартные значения объектов и фильтровать по другим данным.
Есть 24 средства, поскольку они являются именами битов в битовой маске. Это позволяет объединять произвольные наборы объектов в одном журнале. Протокол указан в RFC 5424.
Другое поле - серьезность. Обычно журналы содержат все журналы с заданной серьезностью или выше. (Более строгие приоритеты имеют более низкие значения, поэтому нормальное сравнение меньше или равно выбранному приоритету.) Однако сообщения данного средства могут быть выбраны, как это часто делается для журнала отладки, который собирает сообщения отладки для всех средств.
Вы можете объединить данные по некоторым объектам в одном журнале независимо от исходного устройства. Обычно одно и то же сообщение записывают в несколько файлов журнала.