2014-01-14 2 views
0

суть% Значение HOSTNAME% является "неизвестным" в Rsyslog

Где Rsyslog получить значение% HOSTNAME%?
Почему приложение, обслуживаемое Tomcat, имеет правильный% HOSTNAME%, но консольное приложение с той же конфигурацией имеет «неизвестно» как имя хоста?

Мы используем rsyslog для экземпляра EC2, и мы пытаемся отправить наши журналы в логги. Если I tail -f сообщений журнала, я могу видеть журнал в формате по умолчанию, включая дату, имя хоста, тег и сообщение.

Если я использую logger "message", то я вижу правильную запись в журнале как в консоли, так и в логги. Однако, если приложение консоли java регистрирует событие, имя хоста «неизвестно» как в консоли, так и в логах.

Как ни странно, такая же конфигурация rsyslog, syslog4j и log4j приводит к правильной записи в журнале, если она поступает из веб-приложения, размещенного tomcat.

Где rsyslog получает значение% HOSTNAME%? Почему приложение, обслуживаемое Tomcat, имеет правильный% HOSTNAME%, но консольное приложение с той же конфигурацией имеет «неизвестно» как имя хоста?

ответ

0

Если не эта линия в rsyslog.conf добавить его и перезапустить Rsyslog $ ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

+0

Благодаря @ hedi691. У меня уже есть опция конфигурации. –

0

Я понял это. Чтобы получить имя хоста, мне нужно было сопоставить имя хоста ip-адресу в файле hosts. Я действительно думал, что это уже происходит, но в то время, когда сценарий запускается для добавления правильной записи хоста, IP-адрес неизвестен, и только имя хоста добавляется к файлу.

Я добавил правильную запись, и имя хоста отображается как ожидалось в rsyslog и loggly.

В то же время, я изменил формат журнала с% HOSTNAME% на% $ myhostname%. Это сработало для нас, потому что мы не были удаленным протоколированием, поэтому myhostname всегда было правильным именем хоста.

Смежные вопросы