내 로그 중 일부는 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/hostsFQDN(정규화된 도메인 이름)의 내용을 검사합니다.

보다 구체적으로 말하면, localhost귀하의 IP 항목이 1위인 경우 /etc/hosts해당 항목이 우선적으로 적용됩니다.

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


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

호스트 이름 --fqdn을 실행하여 로컬 컴퓨터에 현재 구성된 FQDN을 확인할 수 있습니다. rsyslog는 로그 메시지를 작성할 때 호스트 이름 --short의 출력을 사용합니다. 로그에 전체 호스트 이름을 포함하려면 파일에 쓰는 지침을 사용하기 전에 파일 시작 부분에 $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() 함수는 로컬 컴퓨터의 FQDN으로 localhost.localdomain을 반환합니다. 그러면 /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) 관련 정보를 선택하는 방법을 정확하게 지정하는 것이 어려울 수 있습니다 . 소스 코드를 다시 읽어보면 시스템 호스트 이름( 명령 출력)을 FQDN으로 rsyslog확인하려는 시도인 것 같습니다.hostname

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

온라인에서도 비슷한 질문을 한 사람이 있었습니다.rsyslog - 사용자 메일링 리스트.

관련 정보