1

У меня есть 2 устройства VOIP в моей сети (ht502 и ht704), которые оба могут отправлять свои данные журнала в виде данных системного журнала. Приемник немного малины на Raspbian.

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

Я включил syslog (раскомментировав следующие строки в /etc/rsyslog.conf):

$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514

Я создал два файла в /etc/rsyslog.d/ следующим образом.

ht704.conf
$template NetworkLog, "/var/log/ht704.log"
:fromhost-ip, isequal, "192.168.11.160" -?NetworkLog

ht502.conf
$template NetworkLog, "/var/log/ht502.log"
:fromhost-ip, isequal, "192.168.11.162" -?NetworkLog

Обратите внимание на соответствующие разные IP-адреса.

И перезапустил серию:

service rsyslog restart

Однако оказывается, что все выходные данные находятся в файле /var/log/ht502.log .

Пример:

Nov  7 19:05:39 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] NAT::checkNAT: detected NAT environment for account 1
Nov  7 19:05:39 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] NAT::addPortMapping(STUN), iport = 49260
Nov  7 19:05:39 HT704 [00: 0B:82:65:DD:1C] [1.0.5.10]:System uptime: 1846
Nov  7 19:05:39 HT704 [00: 0B:82:65:DD:1C] [1.0.5.10]:System memory: 13213696/724992/0/794624
Nov  7 19:05:40 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] SIPClientTransaction::sendRequest: Request 15 is sent
Nov  7 19:05:40 HT-502 [00: 0B:82:42:31:62]: [1.0.14.1] SIPStack(0)::run: Active transactions: 2

Кроме того, я просто заметил, что сообщения от VOIP-устройств также неожиданно обнаруживаются в /var/log/messages и /var/log/syslog . Я не думаю, что они должны появиться там. Или они должны?

Есть идеи, чего не хватает?

1 ответ1

1

TL; DR:

Ваши шаблоны забивают друг друга (хотя они, кажется, не наследуются другими файлами .conf , они конфликтуют - ваше предположение так же хорошо, как и мое).

Переименуйте NetworkLog в уникальное имя для файла.

Добавьте & ~ в качестве последней строки в ht704.conf и ht502.conf

Альтернативный (очиститель):

создайте один файл .conf в /etc/rsyslog.d/ содержащий следующее:

:fromhost-ip, isequal, "192.168.11.160" /var/log/ht704.log & ~ :fromhost-ip, isequal, "192.168.11.162" /var/log/ht502.log & ~ с примером форматирования:

$template RFC3164fmt,"<%PRI%>%TIMESTAMP% %HOSTNAME% %syslogtag%%msg%" :fromhost-ip, isequal, "192.168.11.160" /var/log/ht704.log;RFC3164fmt :fromhost-ip, isequal, "192.168.11.162" /var/log/ht502.log;RFC3164fmt & ~

Длинная версия:

Недавно я столкнулся с трудностями, чтобы понять приоритет и синтаксис этих файлов, и нашел этот вопрос во время поиска в Google. Я хотел бы дать ссылку на документацию, но мне было очень трудно разобрать, и, похоже, здесь уже есть стимул для ее улучшения: https://github.com/rsyslog/rsyslog-doc. В результате большинство совет приходит из эмпирических данных(вещи, которые я пробовал).

изображение - справка для rsyslog docs

TIL:

FILENAME в /etc/rsyslog.d работают с алфавитным приоритетом [зависит от параметров сортировки](то есть, почему значение по умолчанию называется 50-default.conf). В качестве примера я пытался создать несколько выходных файлов с различным форматированием на основе одного и того же правила / условия ( :fromhost-ip, т.д.); ответ состоял в том, чтобы первый прочитанный файл (в алфавитном / групповом порядке) делал все что угодно и исключал STOP ( & ~), одновременно представляя другой вывод во второй файл (в алфавитном порядке / в сопоставлении) И **, включая STOP ( & ~). Первый файл в этом примере назывался 10-ddwrt.conf а второй - 15-ddwrt.conf .

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .