내 로그 중 일부는 Localhost를 사용하고 다른 로그는 호스트 이름을 사용하는 이유 - 다른 서버

내 로그 중 일부는 Localhost를 사용하고 다른 로그는 호스트 이름을 사용하는 이유 - 다른 서버

LDAP 로그인과 관련된 내용을 디버깅 중입니다.Ldap SSH 로그인이 작동하지 않음 - 20개 이상의 다른 서버에서 동일한 구성이 작동함 - Ubuntu일부 서버에서는 로그가 localhost를 사용하고 다른 서버에서는 호스트 이름이 있다는 것을 알았습니다. 특히 로그 파일을 중앙 집중화하려는 경우 호스트 이름을 갖는 것이 가장 적합한 것 같습니다.

이것은 어떻게 구성되어 있나요? 호스트 이름을 사용하는 것이 기본값이 아닌 이유는 무엇입니까? 그냥 좀 궁금해졌는데...

예:

Oct 29 11:23:56 daily sshd[20625]: pam_unix(sshd:session): session opened for user LDAPUSERNAME by (uid=0)

또는

Oct 29 10:56:36 localhost sshd[2560]: pam_unix(sshd:auth): check pass; user unknown

업데이트:

user@qa-ops:~$ hostname
qa-ops
user@daily:~$ hostname
daily.domain.com

아마도 호스트 이름에 전체 도메인 이름이 있는 Daily와 관련이 있을까요? 나는 항상 /etc/hostname이 전체 호스트 이름.domain.com 등이 아니라 호스트 이름의 짧은 부분이라고 생각했습니다.

답변1

https://wiki.archlinux.org/index.php/rsyslog#Configure_Hostname

Rsyslog는 glibc 루틴 gethostname() 또는 gethostbyname()을 사용하여 로컬 시스템의 호스트 이름을 결정합니다. BIND 또는 NIS를 사용하지 않는 경우 gethostname() 또는 gethostbyname() 루틴은 /etc/hosts정규화된 도메인 이름(FQDN)의 내용을 확인합니다.

보다 구체적으로 말하면, localhost귀하의 IP 항목이 에서 먼저 나오는 경우 /etc/hosts해당 항목이 우선적으로 적용됩니다.

(이것이 의 줄 files에 있는 첫 번째 값이라고 가정합니다 . 또는 DNS를 사용하여 호스트 이름을 확인할 수 없다고 가정합니다.)hosts:/etc/nsswitch.conf


Arch Wiki 페이지에서는 다음을 설명합니다.

호스트 이름 --fqdn을 실행하여 로컬 시스템의 현재 구성된 FQDN이 무엇인지 확인할 수 있습니다. 호스트 이름 --short의 출력은 로그 메시지를 작성할 때 rsyslog에서 사용됩니다. 로그에 전체 호스트 이름을 포함하려면 파일 시작 부분에 $PreserveFQDN을 추가해야 합니다(파일에 쓰는 지시문을 사용하기 전). 이는 rsyslog가 구성 파일을 읽고 이동 중에 적용한 다음 이후 줄을 읽기 때문입니다.

/etc/hosts 파일에는 FQDN을 IP 주소에 매핑하고 별칭을 FQDN에 매핑하는 여러 줄이 포함되어 있습니다. 아래의 /etc/hosts 파일 예를 참조하십시오.

/etc/호스트

#<ip-address> <hostname.domain.org>   <hostname>
#<ip-address>      <actual FQDN>                       <aliases>
127.0.0.1 localhost.localdomain somehost.localdomain  localhost somehost
::1               localhost.localdomain somehost.localdomain  localhost somehost

localhost.localdomain은 IP 주소 다음의 첫 번째 항목이므로 gethostbyname() 함수는 localhost.localdomain을 로컬 시스템의 FQDN으로 반환합니다. 그런 다음 /var/log/messages 파일은 localhost를 호스트 이름으로 사용합니다.

somehost를 호스트 이름으로 사용합니다. somehost.localdomain을 첫 번째 항목으로 이동합니다.

/etc/호스트

#<ip-address> <hostname.domain.org>                           <hostname>
#<ip-address>      <actual FQDN>                                              <aliases>
127.0.0.1 somehost.localdomain localhost.localdomain  localhost somehost
::1               somehost.localdomain localhost.localdomain  localhost somehost

/etc/hosts다양한 상황에서 해당 정보가 (또는 DNS) 에서 어떻게 선택되는지 정확히 말하기 어려울 수 있습니다 . 소스 코드를 다시 읽어보니 rsyslog시스템 호스트 이름(명령 출력 hostname)을 FQDN으로 확인하려고 시도한 것 같습니다.

내 생각에 이것은 위에서 "gethostname 또는 gethostbyname"이라고 표시된 부분이 실제로는 "gethostname"이라고 말해야 한다는 의미라고 생각합니다.그리고gethostbyname". 따라서 해당 지침은 아마도 개선될 수 있지만 최소한 올바른 위치를 알려줍니다.

에도 매우 비슷한 질문이 있습니다.rsyslog-users 메일링 리스트.

관련 정보