Итак, вот наша установка
Сервер: сервер rsyslog - CentOS 7
Клиент: Cisco Catalyst C6880-X-LE
/etc/rsyslog.conf
с сервера CentOS 7:
$ModLoad imuxsock # обеспечивает поддержку ведения журнала локальной системы (например, с помощью команды logger)
$ModLoad imjournal # предоставляет доступ к журналу systemd
$template TmplAuth, "/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log"
$templateTmplMsg, "/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log"
authpriv.* ?TmplAuth
*.info;mail.none;authpriv.none;cron.none ?TmplMsg
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalВход в систему
$IMJournalStateФайл imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
почта.* -/var/журнал/журнал почты
хрон.* /var/журнал/хрон
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
Почему-то в /var/журнал/client_logs
папке журналы Cisco создают новый файл .log каждый раз, когда на коммутаторе создается новое сообщение журнала. Это явно не идеально, и я хочу, чтобы rsyslog поместил все журналы в один файл, и я планирую позволить logrotate создавать новый файл журнала каждый день.
Вот пример того, что я вижу в /var/журнал/client_logs
каталог
-rw------- 1 root root 184 13 октября 14:30 156598.log
-rw------- 1 root root 164 13 октября 14:30 156599.log
-rw------- 1 root root 186 13 октября 14:30 156600.log
-rw------- 1 root root 162 13 октября 14:30 156601.log
-rw------- 1 root root 184 13 октября 14:30 156602.log
-rw------- 1 root root 164 13 окт 14:35 156603.log
-rw------- 1 root root 186 13 окт 14:35 156604.log
-rw------- 1 root root 162 13 октября 14:35 156605.log
-rw------- 1 root root 184 13 окт 14:35 156606.log
-rw------- 1 root root 164 13 окт 14:35 156607.log
-rw------- 1 root root 186 13 окт 14:35 156608.log
-rw------- 1 root root 162 13 октября 14:35 156609.log
-rw------- 1 root root 184 13 окт 14:35 156610.log
-rw------- 1 root root 162 13 октября 14:39 156611.log
-rw------- 1 root root 164 13 октября 14:41 156612.log
-rw------- 1 root root 186 13 окт 14:41 156613.log
-rw------- 1 root root 162 13 октября 14:41 156614.log
-rw------- 1 root root 184 13 окт 14:41 156615.log
И это продолжается вечно, учитывая, что для каждого нового сообщения, отправляемого с коммутатора Cisco, создается журнал .log. Вот пример содержимого одного из этих лог-файлов
2021-10-13T14:41:10.866435-07:00 X 156613: X-Switch: .13 октября 13:40:44 PST: %LINEPROTO-SW1-5-UPDOWN: линейный протокол на интерфейсе GigabitEthernet195/1/0/11 , изменил состояние на вниз
Я не уверен, связана ли проблема с конфигурацией коммутатора Cisco или моей конфигурацией rsyslog, но я делал это раньше, и у меня никогда не было проблем с созданием новых файлов .log для каждого отдельного сообщения, отправляемого на сервер.
Вот конфиг на стороне коммутатора Cisco
Switch1#показ запуска | включить ведение журнала
регистрация информации о пользователе
логирование перезагрузка отладка
регистрация состояния ссылки на событие по умолчанию
регистрация имени хоста origin-id
хост регистрации 10.1.1.1
ведение журнала синхронно
ведение журнала синхронно
К вашему сведению узел регистрации
оператор — это IP-адрес сервера rsyslog CentOS 7. Все остальные журналы, захваченные с других хостов, в порядке и не создают новые файлы .log для каждого полученного сообщения, но другие системы, отправляющие журналы, не являются коммутаторами Cisco, все они представляют собой различные разновидности Linux (в первую очередь CentOS и RHEL).
Любая идея, почему rsyslog создает новые файлы .log для каждого сообщения, которое он получает от этого коммутатора Cisco Catalyst?