Rsyslog не распознает некоторые имена хостов

У меня есть сервер rsyslog, работающий на CentOS (CentOS Linux, выпуск 7.4.1708 (Core)). Мы используем это в основном для сетевых устройств, в основном Cisco. Я отправляю имя хоста со всеми своими событиями регистрации. Мой сервер создает каталог для каждого хоста на основе его имени хоста. Однако многие имена хостов не распознаются, и каталог создается с использованием IP-адреса устройства. Я пытаюсь выяснить, могу ли я изменить свои настройки, чтобы распознать эти отсутствующие имена хостов.

Вот пример правильно функционирующего устройства:

Этот Cisco ASA отправляет имя хоста сразу после отметки времени:

Sep 12 10:04:13 FIREWALL01 : %ASA-6-302016: Teardown UDP connection ...

Эти журналы ASA помещены в каталог с названием «FIREWALL01». Я хочу именно такого поведения.

Неправильное поведение:

Это устройство является маршрутизатором Cisco ISR. Он по-прежнему включает имя хоста, но он появляется позже в журнале событий:

Sep 12 09:33:07 10.X.X.X 38174: ISRROUTER01: Sep 12 14:33:06.233: %BGP-5-ADJCHANGE: neighbor ...

В этом примере я ожидал бы, что rsyslog выбрасывает эти события в каталог с названием «ISRROUTER01», однако он помещает их в каталог с названием «10». .XXX ".

Текущая конфигурация:

Вот мой текущий файл конфигурации /etc/rsyslog.conf:

# Where to place auxiliary files
$WorkDirectory /var/lib/rsyslog

# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on

# Turn off message reception via local log socket;
# local messages are retrieved through imjournal now.
$OmitLocalLogging on

# File to store the position in the journal
$IMJournalStateFile imjournal.state

####  Templates ####

# log every host in its own directory
$template RemoteHost,"/var/log/syslog/%HOSTNAME%/%HOSTNAME%.log"

# Local Logging
$RuleSet local
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log

# use the local RuleSet as default if not specified otherwise
$DefaultRuleset local

# Remote Logging
$RuleSet remote
*.* ?RemoteHost

####  Listeners ####

# bind rulesets to listeners
$InputTCPServerBindRuleset remote
$InputUDPServerBindRuleset remote

# activate listeners
$InputTCPServerRun 514
$UDPServerRun 514

Итак, есть ли у кого-нибудь идеи по поводу изменений конфигурации, которые я мог бы внести, чтобы выбрать имя хоста из нескольких различных типов файлов журнала? Может быть, какой-нибудь шаблон?

Заранее спасибо!

0
задан 12 September 2019 в 18:30
1 ответ

У меня была аналогичная проблема с моим сервером rsyslog. Я собираю сообщения системного журнала со многих устройств Linux box, устройств Cisco и MikroTik и так далее. Похоже, что имена хостов сетевых устройств не разрешаются должным образом и отображаются с их IP-адресами или другими именами, такими как, например, _gateway.

Я придумал поместить все отслеживаемые хосты в /etc/hosts на сервере rsyslog, и проблема была решена. Я лично запускаю локальный DNS-сервер, который в основном достигает того же.

0
ответ дан 30 September 2020 в 11:19

Теги

Похожие вопросы