Итак, наш сервачок mark.company.com переезжает под OpenVZ в виртуала. Собственно, нужно настроить прием логов от удаленных хостов (коммутаторы Cisco и D-Link, позже, возможно, ещё что добавится).
В Debian Lenny уже по умолчанию установлен rsyslogd, вот и будем его настраивать.
root@mark:~$ grep -v "^#" /etc/rsyslog.conf | grep -v ^\$
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ModLoad imudp
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$IncludeConfig /etc/rsyslog.d/*.conf
# А теперь начинаем правки: определим 2 шаблона, первый из которых, RemoteHost
# определяет имя лог-файла для хоста, который светит в логе своё имя, и второй - для
# машин, которые светят в лог только свой IP.
# Далее, соответственно, определяем, от каких хостов логи пойдут в какой лог-файл на нашем сервере.
$template RemoteHost,"/var/log/remote/%HOSTNAME%.log"
$template RemoteFromHost,"/var/log/remote/%FROMHOST%.log"
:fromhost, isequal, "192.168.20.182" ?RemoteFromHost
:fromhost, isequal, "192.168.20.182" ~
:source, isequal, "office-sw-5" ?RemoteHost
:source, isequal, "office-sw-5" ~
:source, isequal, "shrike" ?RemoteHost
:source, isequal, "shrike" ~
:source, isequal, "germozone-10" ?RemoteHost
:source, isequal, "germozone-10" ~
:source, isequal, "germozone-11" ?RemoteHost
:source, isequal, "germozone-11" ~
:source, isequal, "belun" ?RemoteHost
:source, isequal, "belun" ~
:source, isequal, "torus" ?RemoteHost
:source, isequal, "torus" ~
# Теперь - параметры логгирования самого локалхоста, здесь у меня настройки по умолчанию из конфига.
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
*.emerg *
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
# И наконец, четко определим адрес, на котором rsyslodg будет слушать UDP-порт 514.
# Мы будем принимать логи только от тех хостов, которые находятся в подсети, к которой
# принадлежит адрес 192.168.20.253 (это сеть /24, выделенная для свичей и прочих хитрых железок).
$UDPServerAddress192.168.20.253
$UDPServerRun 514
Предполагается, что на cisco в конфиге уже есть строка
shrike# sh run
[...]
logging 192.168.20.253
[...]
Соответственно, на D-Link DGS-3100:
germozone-11# sh conf run
create syslog host 1 ipaddress 192.168.20.253 severity all
Конфиг rsyslogd создавался на основе статьи http://blog.jasonantman.com/2009/09/rsyslog-on-centos5/