„Hostname konnte nicht aufgelöst werden: Host konnte nicht aufgelöst werden:“ in Zabbix

„Hostname konnte nicht aufgelöst werden: Host konnte nicht aufgelöst werden:“ in Zabbix

Auf dem Zabbix-Server wird die Meldung „Hostname konnte nicht aufgelöst werden: Host konnte nicht aufgelöst werden: example.zabbixagent.com; Name oder Dienst unbekannt“ angezeigt, obwohl DNS und Hostname des Zabbix Active Agent korrekt sind. Handelt es sich hierbei um einen Fehler oder eine Fehlkonfiguration in Zabbix? Bitte helfen Sie.

Antwort1

Wenn dies über die Befehlszeile durch Kopieren und Einfügen des Namens (nicht erneutes Eintippen) behoben wird, haben Sie wahrscheinlich geändert resolv.conf. In früheren Versionen von Zabbix müssen Sie die Daemons nach dem Ändern dieser Datei neu starten. Da Sie die Zabbix-Version nicht angegeben haben, ist davon auszugehen, dass Ihre Version diesen Neustart noch benötigt.

Wenn das nicht hilft, kopieren Sie den Host-DNS aus den Host-Eigenschaften und führen Sie ping, digoder ähnliches aus der Server-Box aus und stellen Sie sicher, dass Sie die Host-Einstellung auf den richtigen Namen anpassen.

Antwort2

Antwort in einerKommentarvonBenutzer427751:

Ich fand heraus, dass das Problem nicht auf dem externen DNS lag, das nicht mit dem neuen Domänennamen aktualisiert wurde, der kürzlich für diesen bestimmten Host konfiguriert wurde. Nachdem der neue Domänenname hinzugefügt und der alte aus der DNS-Liste entfernt wurde, konnte der Zabbix-Server das Problem mit der Hostauflösung beheben.

Antwort3

In der Frage wird es nicht erwähnt, daher gehe ich davon aus, dass dies wahrscheinlich nicht der Fall ist. Wenn Zabbix jedoch innerhalb von Docker ausgeführt wird, kann dieser Fehler aufgrund der Netzwerkkonfiguration von Docker auftreten.

Lösungen sind entwederFügen Sie einen expliziten DNS-Eintrag in der Docker-Daemon-Konfiguration hinzuwie:

{
        ...
        "dns":["208.67.222.222","208.67.220.220"],
        ...
}

Das hat bei mir funktioniert. Ich denke, alternativ kann ich einen zusätzlichen Host-Netzwerkeintrag hinzufügen, wie indiese Antwortkönnte auch funktionieren:

services:
  mycontainer:
    ...
    networks:
      ...
      - bridge
...
networks:
  ...
  bridge:
    external: true

Beachten Sie beim Testen, dass die Domänennamenauflösung von curl anspruchsvoller ist als beispielsweise Ping. Sie haben beispielsweise

$ docker exec -ti mycontainer ping -c 3 myhost.example.com   # Works
$ docker exec -ti mycontainer curl myhost.example.com        # Fails

und die Webüberwachung von Zabbix verwendet bzw. ist davon abhängig, sodass „Ping funktioniert einwandfrei“ als Test nicht ausreicht.

verwandte Informationen