Добрый день.Есть сеть. В ней есть несколько почтовых серверов и сотни свичей и роутеров.
Когда логи прилетают от серверов хочу раскидывать по каталогам с доменным именем сервера.
Когда логи прилетают от свичей,хочу чтобы в качтсве имени каталога был ip свича.##############################################
/etc/syslog-ng/syslog-ng.confoptions {
...
long_hostnames(off);
use_fqdn(yes);
use_dns(yes);
};...
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") ); };
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(yes) , то все PTR записи ip адресов разрешаются в DNS и заносятся в переменные $HOST и $FULLHOST.
Если use_dns(no),то $HOST и $FULLHOST содержат ip адрес хоста.Не нашел переменной которая бы всегда содержала только ip адрес хоста. Тогда я бы ее мог использовать в destination.
Как решить данную задачу?
Спасибо.
Нашел ответ. Подсказали на LOR.
Переменная $SOURCEIP содержит ip последнего хоста от которого пришло собщение. В данном случае оборудование шлет сообщения напрямую на сервер логов,так что в $SOURCEIP содержиться ip ,который мне нужен.Список переменных syslog-ng
http://www.balabit.com/sites/default/files/documents/syslog-...