Удаленная регистрация с Syslogd, я могу изменить имя хоста?
Я использую ddwrt v24-sp2 на трех маршрутизаторах WRT54GL. Все эти маршрутизаторы отправляют информацию о своем системном журнале на тот же удаленный сервер, используя syslogd.
Проблема в том, что в логах имя хоста будет меняться между IP-адресом локальной сети и 127.0.0.1.
Это затрудняет определение того, какое устройство делает что, когда у меня есть несколько событий, перечисленных как localhost, и делает невозможным сценарий событий, происходящих при получении определенных сообщений системного журнала.
Кто-нибудь знает, каким образом я могу отличить, какое сообщение приходит с какого хоста? Есть ли какая-то опция, которую я не видел для тега или дополнительной информации в сообщении. Могу ли я заставить хост отправлять свое имя хоста с каждым сообщением?
Вот пример вывода системного журнала:
06-28-2010 11:43:57 User.Info 10.255.255.2 Jun 28 17:43:58:> Подключение к
*.*.*.*
06-28-2010 11:43:54 User.Info 127.0.0.1 28 июня 17:43:54: > Подключение к
*.*.*.*
06-28-2010 11:43:52 Daemon.Info 10.255.255.1 Jun 28 17:43:53 >chillispot[428]: chilli.c: 1088: перечитать файл конфигурации и выполнить поиск DNS
06-28-2010 11:43:51 Daemon.Info 127.0.0.1 28 июня 17:43:52 >chillispot[623]: chilli.c: 1088: перечитать файл конфигурации и выполнить поиск DNS
06-28-2010 11:43:51 Daemon.Info 10.255.255.3 Jun 28 17:43:51 >chillispot[4185]: chilli.c: 1088: перечитать файл конфигурации и выполнить поиск DNS
Спасибо
Крис
3 ответа
Попробуйте использовать syslog-ng. Я столкнулся с рядом проблем с syslogd на openwrt. Я подозреваю, что вы сталкиваетесь с подобными проблемами. Смотрите мою документацию по использованию syslog-ng с openwrt. Мой сервер журналирования - Ubuntu, на котором запущен rsyslogd.
Кроме того, вы должны иметь возможность вносить необходимые изменения на сервере регистрации, используя syslog-ng, чтобы переписать сообщение журнала на основе отправляющего сервера.
Передача сообщения системного журнала в netcat добавит имя хоста.
Простой способ - передать сообщения с использованием netcat (nc) в файл syslog.conf следующим образом:
*. * "TAB" | nc RemoteLogServer -u 514 -w 1 "
Символ табуляции должен быть вставлен перед символом канала.
Это известная проблема с syslogd. Имена хостов не сохраняются на разных хостах.
http://novosial.org/logging/syslogd-problems/
Как предложено, попробуйте использовать syslog-ng.