Beheben: Portainer Edge Agent [message: an error occured during short poll] [error: short poll request failed]

English Deutsch

Problem:

Sie versuchen, einen Portainer Edge Agent auszuführen, können sich aber nicht mit dem Endpunkt in der Portainer-UI verbinden, und sehen in den Logs eine Fehlermeldung wie diese:

error_log.txt
2020/10/24 13:58:23 [ERROR] [internal,edge,poll] [message: an error occured during short poll] [error: short poll request failed]

Lösung

Überprüfen Sie zuerst Ihre EDGE_ID und Ihren EDGE_KEY. In den meisten Fällen sind diese falsch eingestellt und verhindern die ordnungsgemäße Kommunikation zwischen dem Edge Agent und der Portainer-Instanz.

Wenn das nicht hilft, überprüfen Sie Ihre Firewall. Sowohl Port 8000 der Portainer-Instanz. Beim Erstellen eines neuen Endpunkts zeigt Portainer eine Meldung wie

portainer_agent_communication.txt
The agent will communicate with Portainer via https://portainer.mydomain.com and tcp://portainer.mydomain.com:8000

Abhängig von Ihrer Systemkonfiguration müssen Sie Port 8000 auf Ihrer Firewall freigeben, z.B. mit

test_nc.sh
sudo ufw enable 8000/tcp

Um die Konnektivität zu testen, können Sie nc verwenden:

test_nc.sh
echo -e "\n" |  nc portainer.techoverflow.net 8000

So sieht es auf einer funktionierenden Portainer-Instanz aus:

test_nc.sh
$ echo -e "\n" |  nc portainer.mydomain.com 8000
HTTP/1.1 400 Bad Request
Content-Type: text/plain; charset=utf-8
Connection: close

400 Bad Request

Falls Sie keine Antwort sehen, überprüfen Sie Ihre Firewall und ob Sie Port 8000 auf dem Portainer-Container freigegeben haben.

Außerdem können Sie Ihren EDGE_KEY (verwenden Sie den, der tatsächlich in der Portainer Edge Agent-Instanz verwendet wird) in einem beliebigen Online-Base64-Decoder wie base64code.com dekodieren: Dekodieren von

edge_key_base64.txt
aHR0cHM6Ly9wb3J0YWluZXIubXlkb21haW4uY29tfHBvcnRhaW5lci5teWRvbWFpbi5jb206ODAwMHw3MTphNTpiYTpkMjo4MToxOToxMTo4NzplYTowZjo0NDo0YTpmYTo0Mjo4YTphNnwz

ergibt diesen String:

edge_key_decoded.txt
https://portainer.mydomain.com|portainer.mydomain.com:8000|71:a5:ba:d2:81:19:11:87:ea:0f:44:4a:fa:42:8a:a6|3

in dem Sie die URLs überprüfen können. Überprüfen Sie beispielsweise, ob das Protokoll (http oder https) nicht mit dem übereinstimmt, was Sie zur Konfiguration Ihrer Haupt-Portainer-Instanz verwendet haben.

Überprüfen Sie schließlich auf dem Host, auf dem der Portainer Edge Agent läuft, ob der Hostname korrekt aufgelöst wird:

check_hostname_resolution.sh
host portainer.mydomain.com

Dies sollte Ihnen mindestens die IPv4-Adresse der Portainer-Instanz anzeigen. Wenn das nicht korrekt ist, sind dies die wahrscheinlichsten Ursachen:

Überprüfen Sie immer, ob Sie dieselben Ergebnisse von Ihrem lokalen Computer erhalten wie vom Host, auf dem der Portainer Edge Agent läuft.


Check out similar posts by category: Container, Docker, Portainer