System Stop, Load Balancing, DMZ-Server, Profil-Quickview (REST API)
Allgemein: Siehe Abschnitt REST API.
Alle Zugriffe werden in der Datei ./logs/services/message.log protokolliert (oder in den Server-Logs unter internal/message.log). Das Passwort kann obfuskiert übergeben werden.
Als Response wird ein JSON-Dokument geliefert (mit HTTP-Status 200). Folgend ein Beispiel einer Response auf einem Request mit fehlerhaften Zugangsdaten. Die Response ist immer auf diese Art aufgebaut. Nur status (ok oder failed) und reason haben jeweils andere Werte. Evtl. werden im Erfolgsfall auch noch weitere Informationen ausgegeben.
{
"response"
: {
"reason"
:
"permission denied (user=xxxx&passwd=xxxx)"
,
"status"
:
"failed"
}
}
{
"response"
: {
"status"
:
"failed"
,
"reason"
:
"unknown operation: use /dmz, /shutdown, /emergency, /quickview, /info or /loadbalance"
}
}
Force Stop
Neben der manuellen Auslösung eines Force Stops im Control Center (siehe Hinweise dort!) und der Möglichkeit eines Force Stops über eine Datei, gibt es die Möglichkeit einen Force Stop per HTTP auszulösen. Siehe auch hier die Hinweise zu Crashed Jobs.
Verwenden Sie dazu bitte folgende URL (z. B. gesteuert durch Nagios).
http(s)://<Ihr_Server>/dw/rc/v1/shutdown |
Maintenance Stop
Neben der manuellen Auslösung eines Maintenance Stops im Control Center (siehe Hinweise dort!), gibt es die Möglichkeit einen Maintenance Stop per HTTP auszulösen.
http(s)://<Ihr_Server>/dw/rc/v1/maintenance |
Emergency Halt
Neben der manuellen Auslösung eines Emergency Halts im Control Center (siehe Hinweise dort!) und der Möglichkeit eines Emergency Halts per Admin-Konsole, gibt es die Möglichkeit einen Emergency Halt per HTTP auszulösen und zu beenden.
Verwenden Sie dazu bitte folgende URL (z. B. gesteuert durch Nagios).
http(s)://<Ihr_Server>/dw/rc/v1/emergency?mode=enable |
Hinweis: Parameter mode=disable würde den Emergency-Halt-Modus wieder verlassen.
DMZ
Neuen DMZ-Server setzen
Es kann mit diesem Servlet auch ein neuer DMZ-Server mitgeteilt werden (normalerweise unter Control Center → System → Einstellungen). Hinweis: Bei einem Neustart wird wieder der in der Konfigurationsdatei ./etc/startup.xml eingetragene DMZ-Server verwendet.
Die URL hierfür ist die folgende.
http(s)://<Ihr_Server>/dw/rc/v1/dmz?target=<IP>:<Port> |
Der Port ist der Message-Port des DMZ-Servers (Default 8020).
Liste der aktiven DMZs resetten
Wird der Parameter target weggelassen oder ist sein Wert leer, wird die Liste der aktiven DMZ-Server neu erstellt. Dies entspricht der Aktion DMZ Reset im Control Center. Hinweis: Diese Liste ist auch nach einem Neustart leer. Als erstes wird dann automatisch der in der Konfigurationsdatei ./etc/startup.xml eingetragene DMZ-Server eingetragen. Diese Liste dient nur der Überprüfung der per Lizenz erlaubten Anzahl an DMZ-Servern. Kommt eine neu Anfrage von einem DMZ-Server, wird erst geprüft, ob dieser bereits in der Liste ist. Wenn ja, wird die Anfrage erlaubt. Wenn nein, dann wird dieser DMZ-Server in die Liste eingetragen, wenn die maximale Anzahl noch nicht erreicht ist, und die Anfrage erlaubt. Ist die maximale Anzahl erreicht, dann wird die Anfrage abgelehnt.
http(s)://<Ihr_Server>/dw/rc/v1/dmz |
Load Balancing
Wenn im Folgenden nicht explizit der Begriff "Node Controller" oder "Working Node" verwendet wird, sondern "Node", dann kann beides damit gemeint sein.
Crashed und queued Jobs an anderen Node senden
Man kann in einem Load-Balancing-System crashed und queued Jobs an einen anderen Node überführen (normalerweise unter Control Center -> System -> Load Balance).
http(s)://<Ihr_Server>/dw/rc/v1/loadbalance/crashedjobs?node=<Node> |
Dabei ist bei <Node> der Name des Nodes (aus der Konfigurationsdatei ./etc/factory.xml) anzugeben, von dem man die Jobs übernehmen will.
Und <Ihr_Server> ist die Adresse des Nodes, der die Jobs übernehmen soll.
Failover-Liste anzeigen
Wenn Sie den Failover-Mechanismus des Load Balancing benutzen, dann können Sie sich mit folgendem Request eine Liste aller bekannten Load-Balancing-Teilnehmer und deren Priorität anzeigen lassen, für den Fall, dass der aktuelle Node Controller ausfällt und ein anderer Teilnehmer diese Rolle übernehmen muss. Siehe auch Abschnitt Load Balance (Control Center). Der Parameter enablecheck ist optional und versucht bei true die anderen Rechner im Netzwerk zu erreichen.
http(s)://<Ihr_Server>/dw/rc/v1/loadbalance/list?enablecheck=true |
Wenn Sie folgende Response bekommen, dann muss der Failover-Mechanismus erst aktiviert werden.
{
"response"
: {
"status"
:
"failed"
,
"reason"
:
"failover is not switched on"
}
}
So ähnlich sollte es aussehen:
{
"response"
: {
"status"
:
"ok"
,
"reason"
:
"list of nodes contains 5 hosts"
,
"information"
: {
"myState"
:
"RUNNING"
,
"controller"
:
"41NC1"
,
"details"
:
null
,
"41NC1"
: {
"externalURL"
:
"https://www.google.de"
,
"priority"
:
"0"
},
"41WN1"
: {
"externalURL"
:
"https://www.google.de"
,
"priority"
:
"1"
},
"41WN4"
: {
"externalURL"
:
"https://www.google.de"
,
"priority"
:
"2"
},
"41WN3"
: {
"externalURL"
:
"https://www.google.de"
,
"priority"
:
"3"
},
"41WN2"
: {
"externalURL"
:
"https://www.google.de"
,
"priority"
:
"4"
}
}
}
}
Node Controller manuell umschalten
Der folgende Aufruf an den Node Controller (<Ihr_Server>) macht den Node <node> zum neuen Node Controller. Hinweis: War der bisherige Node Controller per Lizenz und Konfiguration ein Node Controller, dann beendet er sich und kann nur manuell wieder gestartet werden. War der bisherige Node Controller per Lizenz und Konfiguration ein Working Node, dann startet er automatisch wieder als Working Node.
http(s)://<Ihr_Server>/dw/rc/v1/loadbalance/toggle?node=<node> |
Die Umstellung erfolgt zur Laufzeit. Beispiel: .../dw/rc/v1/loadbalance/toggle?node=Node1...
Node Controller manuell bekanntmachen
Der folgende Aufruf teilt dem aufgerufenen Working Node (<Ihr_Server>) den aktiven Node Controller (<node>) mit.
http(s)://<Ihr_Server>/dw/rc/v1/loadbalance/join?node=<node> |
Das ist hilfreich, wenn dieser Working Node erst nach einem Wechsel des Node Controller gestartet wurde und deshalb noch versucht, den alten Node Controller zu finden. Beispiel: .../dw/rc/v1/loadbalance/join?node=Node1...
Quickview für Profile
Der folgende Aufruf zeigt die wichtigsten Parameter eines Profils in kompakter Form an.
http(s)://<Ihr_Server>/dw/rc/v1/quickview?profile=<Profilname oder Profil-ID> |