Рейтинг:0

rsyslog переписать имя хоста перед ретрансляцией

флаг lb

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

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

В идеале то, что я пытаюсь сделать, резюмируется следующим псевдокодом:

набор правил (имя = "myrule") {
    установить $hostname = "<prefix>-%HOSTNAME%"
    действие (тип = "omfwd" цель = "удаленный-IP")
}

Я буду отвечать как за промежуточный ретранслятор, так и за центральный сервер, но каждый ретранслятор может обслуживать несколько клиентов, поэтому я не думаю, что перезапись может быть выполнена на центральном сервере, но у меня есть полный контроль над обоими уровнями. Каждый клиент подключается через выделенный интерфейс, и я планировал отдельный набор правил, прикрепленный к входу, настроенному для каждого интерфейса, и набор правил, включающий префикс, специфичный для клиента. По этой причине я думаю, что конфигурация должна быть на ретрансляторе, но если есть другой способ, то я готов попробовать все, что соответствует конечной цели - сделать события идентифицируемыми клиентом.

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

Например, каждый ретранслятор подключен к нескольким клиентам через отдельные таблицы маршрутизации, а конечный клиент имеет другое имя хоста, например. site1-sw1 или site2-rtr2. Однако проблема заключается в том, что префикса клиента нет в имени, поскольку это наша ссылка для определения того, к какому клиенту относится устройство. В других системах мы переименовываем эти имена как cust1-site1-sw1 и cust1-site2-rtr2, тем более, что может быть, например, cust2-site2-rtr2. Мы хотим аналогичного поведения в syslog.

Каков правильный способ сделать это?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.