Назад | Перейти на главную страницу

Значение% HOSTNAME% «неизвестно» в шаблоне rsyslog

Суть

Откуда rsyslog получает значение% HOSTNAME% и при каких условиях ожидаемым значением будет "unknown"?

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

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

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

Я знаю, что некоторые из них очень специфичны для Java, но у меня такой вопрос: где rsyslog получает значение% HOSTNAME% и при каких условиях ожидаемым значением будет "unknown"?

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

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

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