rsyslog 템플릿에서 %HOSTNAME% 값이 "알 수 없음"입니다.

rsyslog 템플릿에서 %HOSTNAME% 값이 "알 수 없음"입니다.

요점

rsyslog는 %HOSTNAME% 값을 어디에서 가져오며 어떤 조건에서 "알 수 없음"이 예상 값이 됩니까?

EC2 인스턴스에서 rsyslog를 사용하고 있으며 로그를 loggly로 보내려고 합니다. 만약 내가tail -f 날짜, 호스트 이름, 태그, 메시지가 포함된 기본 형식으로 로그를 볼 수 있습니다.

내가 사용한다면logger "message" 콘솔과 loggly 모두에 올바른 로그 항목이 표시됩니다. 그러나 Java 콘솔 애플리케이션이 이벤트를 기록하는 경우 호스트 이름은 콘솔과 Loggly 모두에서 "알 수 없음"입니다.

이상하게도 rsyslog와 log4j의 동일한 구성으로 인해 Tomcat이 호스팅하는 웹 애플리케이션에서 오는 경우 올바른 로그 항목이 생성됩니다.

나는 그 중 일부가 매우 Java와 관련되어 있다는 것을 알고 있지만 내 질문은 다음과 같습니다. rsyslog는 %HOSTNAME% 값을 어디에서 가져오고 어떤 조건에서 "알 수 없음"이 예상 값이 될까요?

답변1

나는 이것을 알아 냈습니다. 호스트 이름을 얻으려면 호스트 이름을 호스트 파일의 IP 주소에 매핑해야 했습니다. 실제로 이런 일이 이미 발생하고 있다고 생각했지만 올바른 호스트 항목을 추가하기 위해 스크립트가 실행될 때 IP 주소를 알 수 없으며 호스트 이름만 파일에 추가됩니다.

올바른 항목을 추가했는데 호스트 이름이 rsyslog 및 loggly에 예상대로 나타납니다.

그동안 로그 형식을 %HOSTNAME%에서 %$myhostname%으로 변경했습니다. 원격 로깅이 아니었기 때문에 $myhostname이 항상 올바른 호스트 이름이었기 때문에 이것은 우리에게 잘 작동했습니다.

관련 정보