atomlab |
|
Темы:
4
Сообщения:
16
Участник с: 02 ноября 2010
|
Добрый день. Есть сеть. В ней есть несколько почтовых серверов и сотни свичей и роутеров. Когда логи прилетают от серверов хочу раскидывать по каталогам с доменным именем сервера. Когда логи прилетают от свичей,хочу чтобы в качтсве имени каталога был ip свича. Вот кусок конфига. /etc/syslog-ng/syslog-ng.conf options { ... long_hostnames(off); use_fqdn(yes); use_dns(yes); }; ... #Указываю,что нужно автоматически создавать каталоги и именем устройства из $FULLHOST destination mail_log{ file("/var/log/servers/$FULLHOST/$DAY-$MONTH-$YEAR.log" create_dirs(yes) owner("log") group("log") dir_owner("log") perm(0640) dir_perm(0750) dir_group("log") ); }; #Указываю,что нужно автоматически создавать каталоги и именем устройства из $HOST. Хотя разницы между $FULLHOST не особо заметил. destination device_log{ file("/var/log/devices/$HOST/$DAY-$MONTH-$YEAR.log" create_dirs(yes) owner("log") group("log") dir_owner("log") perm(0640) dir_perm(0750) dir_group("log") ); }; #Фильтр для почтовых серверов filter mail { program ("mail|pop|imap|exim|smtp|dovecot") or facility(mail) and not program ("last|syslog|^$|^[0-9]+$"); }; #Фильтр для цисок всяких и прочего сетевого оборудования filter device { host ("paradyne|zyxel|voip|catalyst|dialup") or program("^[0-9]+$") or facility(local7) ;}; log { source(net); filter(mail); destination(mail_log); }; log { source(net); filter(device); destination(device_log); }; Если use_dns(no),то $HOST и $FULLHOST содержат ip адрес хоста. Не нашел переменной которая бы всегда содержала только ip адрес хоста. Тогда я бы ее мог использовать в destination. Как решить данную задачу? Спасибо. |
atomlab |
|
Темы:
4
Сообщения:
16
Участник с: 02 ноября 2010
|
Нашел ответ.Подсказали на LOR. Переменная $SOURCEIP содержит ip последнего хоста от которого пришло собщение. В данном случае оборудование шлет сообщения напрямую на сервер логов,так что в $SOURCEIP содержиться ip ,который мне нужен. Описание переменных syslog-ng |