8 окт. 2012 г.

Удаленное логирование сообщений роутера (например, Asus-16n)

Полезная фишка есть в сетевом оборудовании - запись своих логов на удаленный сервер. А дальше эти логи могут выгребаться каким-либо скриптом, отсылаться на электронную почту и так далее.

На самом сетевом оборудовании логирование на удаленный сервер настраивается по-разному, но как-правило нужно просто прописать адрес лог-сервера и - возможно - порт.

Заходим на сервер, на котором предполагается хранить логи раутера, и правим /etc/rsyslog.conf
Включаем модули для сбора удаленных логов:

# provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

И дописываем в секцию Rules правило для записи логов роутера в отдельный файл:

###############
#### RULES ####
###############

if $hostname contains 'asus16n' then /var/log/router.log;TraditionalFormat

Теперь все сообщения от источника с именем хоста asus16n будут записываться кроме общей лого-свалки, в отдельный файл /var/log/router.log. Для другого оборудовая скорее всего будут другие ключевые слова для парсинга логов.

Поправка:

В некоторых версиях rsyslog вместо TraditionalFormat нужно писать RSYSLOG_TraditionalFileFormat