Warum verwenden einige meiner Protokolle Localhost und andere Hostnamen - Verschiedene Server

Warum verwenden einige meiner Protokolle Localhost und andere Hostnamen - Verschiedene Server

Ich debugge etwas im Zusammenhang mit LDAP-Logins,LDAP-SSH-Anmeldung funktioniert nicht – Dieselben Konfigurationen funktionierten auf über 20 anderen Servern – Ubuntuund mir ist aufgefallen, dass die Protokolle auf einigen Servern localhost verwenden und auf anderen den Hostnamen. Den Hostnamen zu verwenden, scheint am sinnvollsten zu sein, insbesondere wenn wir die Protokolldateien zentralisieren möchten.

Wie wird das konfiguriert? Warum wird standardmäßig nicht der Hostname verwendet? Das hat mich irgendwie neugierig gemacht ...

Beispiele:

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

Oder

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

Aktualisieren:

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

Vielleicht hat es damit zu tun, dass Daily einen vollständigen Domänennamen im Hostnamen hat? Ich dachte immer, /etc/hostname solle nur der kurze Teil des Hostnamens sein, nicht der vollständige hostname.domain.com usw.

Antwort1

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

Rsyslog verwendet die glibc-Routine gethostname() oder gethostbyname(), um den Hostnamen des lokalen Computers zu ermitteln. Die Routine gethostname() oder gethostbyname() überprüft den Inhalt auf /etc/hostsden vollqualifizierten Domänennamen (FQDN), wenn Sie BIND oder NIS nicht verwenden.

Genauer gesagt, wenn der localhostEintrag für Ihre IP an erster Stelle steht /etc/hosts, hat dieser Vorrang.

(Vorausgesetzt, dies filesist der erste Wert in der hosts:Zeile in /etc/nsswitch.conf. Oder alternativ, dass Ihr Hostname nicht per DNS aufgelöst werden kann.)


Auf der Arch-Wiki-Seite wird Folgendes erklärt:

Sie können den aktuell konfigurierten FQDN des lokalen Computers überprüfen, indem Sie hostname --fqdn ausführen. Die Ausgabe von hostname --short wird von rsyslog beim Schreiben von Protokollnachrichten verwendet. Wenn Sie vollständige Hostnamen in Protokollen haben möchten, müssen Sie $PreserveFQDN am Anfang der Datei hinzufügen (bevor Sie eine Anweisung verwenden, die in Dateien schreibt). Dies liegt daran, dass rsyslog die Konfigurationsdatei liest und sie unterwegs anwendet und dann die späteren Zeilen liest.

Die Datei /etc/hosts enthält eine Reihe von Zeilen, die FQDNs IP-Adressen und Aliase FQDNs zuordnen. Siehe das Beispiel der Datei /etc/hosts unten:

/etc/hosts

#<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 ist das erste Element nach der IP-Adresse, daher gibt die Funktion gethostbyname() localhost.localdomain als FQDN des lokalen Computers zurück. Dann verwendet die Datei /var/log/messages localhost als Hostnamen.

Um somehost als Hostnamen zu verwenden, verschieben Sie somehost.localdomain zum ersten Element:

/etc/hosts

#<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

Es kann schwierig sein, genau zu sagen, wie die relevanten Informationen /etc/hosts(oder der DNS) unter verschiedenen Umständen ausgewählt werden. Wenn ich den Quellcode noch einmal lese, denke ich, dass rsyslogversucht wird, den Systemhostnamen (Ausgabe des hostnameBefehls) in einen FQDN aufzulösen.

Ich denke, das bedeutet, wo oben "gethostname oder gethostbyname" steht, müsste eigentlich "gethostname" stehen.Undgethostbyname". Diese Anweisungen könnten also wahrscheinlich verbessert werden, aber sie verweisen Sie zumindest an die richtige Stelle.

Eine ganz ähnliche Frage gibt es auch auf derMailingliste für rsyslog-Benutzer.

verwandte Informationen