Beheben: Portainer Edge Agent [message: an error occured during short poll] [error: short poll request failed]
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:
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
The agent will communicate with Portainer via https://portainer.mydomain.com and tcp://portainer.mydomain.com:8000Abhängig von Ihrer Systemkonfiguration müssen Sie Port 8000 auf Ihrer Firewall freigeben, z.B. mit
sudo ufw enable 8000/tcpUm die Konnektivität zu testen, können Sie nc verwenden:
echo -e "\n" | nc portainer.techoverflow.net 8000So sieht es auf einer funktionierenden Portainer-Instanz aus:
$ 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 RequestFalls 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
aHR0cHM6Ly9wb3J0YWluZXIubXlkb21haW4uY29tfHBvcnRhaW5lci5teWRvbWFpbi5jb206ODAwMHw3MTphNTpiYTpkMjo4MToxOToxMTo4NzplYTowZjo0NDo0YTpmYTo0Mjo4YTphNnwzergibt diesen String:
https://portainer.mydomain.com|portainer.mydomain.com:8000|71:a5:ba:d2:81:19:11:87:ea:0f:44:4a:fa:42:8a:a6|3in 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:
host portainer.mydomain.comDies sollte Ihnen mindestens die IPv4-Adresse der Portainer-Instanz anzeigen. Wenn das nicht korrekt ist, sind dies die wahrscheinlichsten Ursachen:
- Ihr konfigurierter DNS-Server funktioniert nicht korrekt. Verwenden Sie einen anderen DNS-Server, wie 1.1.1.1 (
echo nameserver 1.1.1.1 > /etc/resolv.confbehebt dies typischerweise vorübergehend). - Ihre DNS-Einträge sind für den verwendeten Domainnamen nicht korrekt gesetzt
- Wenn Sie Dynamic DNS verwenden, hat Ihr DDNS-Client den Eintrag möglicherweise nicht korrekt aktualisiert
Überprüfen Sie immer, ob Sie dieselben Ergebnisse von Ihrem lokalen Computer erhalten wie vom Host, auf dem der Portainer Edge Agent läuft.