Назад | Перейти на главную страницу

что не так с этой конфигурацией rsyslog?

Я пытаюсь заставить rsyslog войти в следующий пользовательский файл журнала

/var/log/iptables.conf

вместо того syslog.
В Iptables включено ведение журнала, вот пример строки журнала, выводимой из iptables (взято из /var/log/syslog)

Apr 19 04:47:41 local-tester kernel: [221395.082051] iptables-denied: IN=eth1 OUT= MAC=01:00:5e:00:00:fb:00:80:92:87:56:b9:08:00 SRC=192.168.1.4 DST=224.0.0.251 LEN=32 TOS=0x00 PREC=0x00 TTL=1 ID=52488 PROTO=2

Я создал новый файл конфигурации rsyslog /etc/rsyslog.d/iptables.conf и вошел в следующие

# iptables logging
:msg, startswith, "iptables-denied: " /var/log/iptables.log

и перезапущен

sudo /etc/init.d/rsyslog restart

Это не создало /var/log/iptables.log поэтому я создал это вручную

Сообщения журнала Iptables по-прежнему будут /var/log/syslog

Почему я все еще не получаю записи журнала iptables в пользовательском файле журнала: /var/log/iptables.log ?

Relevant info

ОС - Ubuntu 14.04.
.
Если шаблон не совпадал, я попробовал эту конфигурацию *.* /var/log/iptables.log - еще ничего

Сообщения не начинаются с iptables-denied: так как [221395.082051] на самом деле является частью сообщения. Ядро можно настроить для создания сообщений журнала с отметкой времени или без нее, указывающей, сколько секунд после загрузки было создано конкретное сообщение.

Как только сообщение достигнет syslog больше нет сведений о структуре сообщений. Это всего лишь одна длинная строка, которая начинается с числа в квадратных скобках.

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