Jump to content
Tom Next - Daytrading Community

Überwachung eigener EAs samt Serversystem


RAiNWORM

Recommended Posts

Über meinen Urlaub hinweg habe ich eine Vielzahl meiner EAs auf meine Demokonten losgelassen. Und was musste ich nun nach etwa 14 Tagen festellen? Am Tag 3 des unbeaufsichtigten Computerhandels ist die Festplatte meines VPS vollgelaufen :white_flag: Peinlich, aber geschehen. Man sollte halt nicht 3 Handelsprogramme mit ingesamt knapp 20 EAs auf 6 Währungspaaren laufen lassen, wobei Tickdaten für Bid und Ask aufgezeichnet werden... Gut, hätten wir das also auch mal ausprobiert.

Externe Störungen haben mir (live) in der Vergangenheit einige Verluste bzw. nicht realisierte Gewinne eingebracht. Verluste wurden durch die Störungen eigentlich seltsamer Weise nie vermieden.

Damit mir sowas oder ähnlich geartetes nicht nochmals passiert, beabsichtige ich ein "Überwachungsprogramm" zu programmieren. Da meine Strategien live laufen, während ich meiner hauptberuflichen Tätigkeit nachgehe und ich meistens keinen sofortigen Internetzugriff habe, verfolgt mich immer ein ungutes Gefühl. Im Bereich der Systemadministration nennen sich solche Programme "Monitoringlösung", was im Falle von bestimmten erreichten Zuständen eine Aktion ausführt (z.B. EMail/SMS-Benachrichtigung).

Erste Frage: Habt ihr so ein Überwachungsprogramm im Einsatz? Ist es selbstprogrammiert oder fremderstellt? Ich meine, conglom-o hat seinen Guardian.

Zweite Frage: Was muss so ein Überwachungsprogramm können?

Meine Ideen:

  • Überwachung des Systemzustands (Systemparameter: RAM, Festplattenkapazität, Internetverfügbarkeit)
  • Überwachung von Applikationen (laufen bestimmte Dienste oder Programme)
  • Statusberichte zu den EAs und Accounts (VAR, open P/L, closed P/L, balance, equity, broker-connectivity...)
  • Benachrichtungen per EMail (--> Smartphone), Upload von Statusberichten auf einen Webserver
  • einfache Aktionen remote ausführen: z.B. per Smartphone eine EMail schreiben, die dann alle offenen Positionen schließt o.ä.

Dritte Frage: Kennt jemand Monitoringlösungen (zur Systemadministration), die so flexibel sind, dass neben einer Reihe vorgegebener Zustandsprüfungen auch eigene (z.B. durch Aufruf externer Programme) mit eingebunden werden können?

Link to comment
Share on other sites

Erste Frage: Habt ihr so ein Überwachungsprogramm im Einsatz? Ist es selbstprogrammiert oder fremderstellt? Ich meine, conglom-o hat seinen Guardian.

 

 

Ich verwende zweierlei:

 

1. pure Erreichbarkeitsprüfung des VPS über cronjob.de, meldet per Mail und SMS Ausfälle.

2. Auf jedem MT4 der an meinem System hängt wird aus dem EA alle 500 Preisticks eine URL aufgerufen. In dem Aufruf werden diverse Parameter mitgegeben, das ist völlig flexibel in dem was man mitschickt.

 

Lutz

Link to comment
Share on other sites

1. pure Erreichbarkeitsprüfung des VPS über cronjob.de, meldet per Mail und SMS Ausfälle.

Danke, den schaue ich mir mal näher an.

 

2. Auf jedem MT4 der an meinem System hängt wird aus dem EA alle 500 Preisticks eine URL aufgerufen. In dem Aufruf werden diverse Parameter mitgegeben, das ist völlig flexibel in dem was man mitschickt.

Die Idee finde ich gut. Was mir jedoch fehlt ist, dass ich im Falle eines Absturz des Handelssystems einen Hinweis erhalte. Ich möchte nämlich nicht alle 30min manuell nachschauen und überlegen, ob die letzte Aktualisierung mehr als 500 Ticks zurückliegt. Oder macht der Server hinter der URL noch weitere Aktionen?

Link to comment
Share on other sites

Danke, den schaue ich mir mal näher an.

 

 

Die Idee finde ich gut. Was mir jedoch fehlt ist, dass ich im Falle eines Absturz des Handelssystems einen Hinweis erhalte. Ich möchte nämlich nicht alle 30min manuell nachschauen und überlegen, ob die letzte Aktualisierung mehr als 500 Ticks zurückliegt. Oder macht der Server hinter der URL noch weitere Aktionen?

 

Im Moment noch nicht, das ist aber dort leicht erweiterbar. Im Moment schreibt er sie nur in eine Datenbanktabelle, so kann man schnell mal schauen wenn sich welcher Client zuletzt gemeldet hat, mit welchem Risiko der Client tradet (das kann er über den 'Gierfaktor' beeinflussen ;-)), wie viele Orders offen sind, wie sich Balance und Equity entwickeln usw.

 

Was mir zum Monitoring noch einfällt: Nagios und seine Ableger sind für so etwas prädestiniert. Da gibt es mittlerweile Plugins für alles mögliche, manche monitoren damit z.B. SAP-Systeme obwohl es ursprünglich für ganz anderes konzipiert war. Das sollte sich also auch für das überwachen von EAs eignen wenn man ihm die Daten bereitstellt. Aber da könnte man ja den Weg über die URL wählen, das Nagios-Plugin kann die Daten dann aus der Datenbank holen. Die Überwachung von Schwellwerten, grafische Darstellung, Alarmierung kann dann Nagios machen, dafür ist es entwickelt worden.

 

Neben Nagios fallen mir noch Munin und Zabbix ein, weiter auch OpenNMS.

 

Lutz

Link to comment
Share on other sites

Hallo , ich habe noch keine Lösung sondern nur vorüberlegt

 

.... , daß ich zwei PC an unterschiedlichen Standorten miteinander via EMail kommunizieren lassen will . Die beiden sollen im Handshake miteinander "Hello World" + "was weiss ich was" austauschen . Wenn einer der beiden nicht antwortet, soll der andere eine Mail an ein bestimmtes EMail-Konto bei GMX schicken . Dort besitze ich ein kostenpflichtiges EMail-Konto inklusive 50 SMS mit denen ich mich auf meinem Handy (einstellbar)benachrichten lassen kann, wenn mich ein bestimmter Absender anschreibt . Mehr brauchen wir als Warnung nicht , oder habe ich etwas übersehen ?

 

KB

 

PS.: Die meisten mir bekannten Softwarelösungen für den automatischen Handel haben Befehle vorgesehen, die in Zusammenhang mit einem Alert EMail-Benachrichtigungen auslösen .

Link to comment
Share on other sites

, daß ich zwei PC an unterschiedlichen Standorten miteinander via EMail kommunizieren lassen will .

...

Mehr brauchen wir als Warnung nicht , oder habe ich etwas übersehen ?

Damit prüfst du aber nur, ob der Server läuft und Internet verfügbar ist. Ob der Broker disconnected oder die Trading-Applikation abgestürzt ist, bekommst du so nicht mit.

Link to comment
Share on other sites

Na ja, ich glaube doch , zumindest habe ich mir das so vorgestellt : Wenn ich zum Beispiel MC , den AB und auch MT4 einen regelmäßigen Alert auslösen lasse , der sicher generiert wird, wenn alles OK ist .

 

Beispiel Time[0] != Time[1]. Dann muss (!) es eine Veränderung im HS gegeben habe, ganz wie gewünscht . Macht man dasselbe für den Preis, Close[0] != Close[1] dann sollte auch der Broker in Betrieb sein , so vermute ich .

 

Und wenn ich nun diesen Alert nutze um ihn zum Auslösen einer Mail zu verwenden, dann hätte ich das Meiste abgeprüft .

 

Denkfehler ?

 

KB

Link to comment
Share on other sites

Und wenn ich nun diesen Alert nutze um ihn zum Auslösen einer Mail zu verwenden, dann hätte ich das Meiste abgeprüft .

Mit dieser Methode erhältst du Informationen, dass alles läuft. Ich möchte aber einen Hinweis erhalten, wenn etwas nicht läuft. Mails und Statusmeldungen bekomme ich schon genug am Tag :wink2:

Link to comment
Share on other sites

Mit dieser Methode erhältst du Informationen, dass alles läuft. Ich möchte aber einen Hinweis erhalten, wenn etwas nicht läuft. Mails und Statusmeldungen bekomme ich schon genug am Tag :wink2:

 

Nach dem Verfahren das ich beschrieb ist es wenig Aufwand auf dem Webserver draussen die erhaltenen Daten gegen Schwellwerte zu prüfen und ggf. z.B. eine E-Mail zu versenden. Man müsste dann noch etwas Ideen hineinstecken dass nicht dasselbe Problem zu häufig gemeldet wird.

 

Wenn noch jemand mitmacht könnten wir ein Community-Projekt daraus machen. Ich würde als Start das Grundgerüst beisteuern wie man aus MT die Daten zum Webserver bekommt und auch einen PHP-Script für den Webserver als Beispiel der sie dann verarbeitet.

 

Erweiterungen der Funktionalität und schickes GUI auf der Seite des Webservers könnten wir dann zusammen machen.

 

Lutz

Link to comment
Share on other sites

Mit dieser Methode erhältst du Informationen, dass alles läuft. Ich möchte aber einen Hinweis erhalten, wenn etwas nicht läuft. Mails und Statusmeldungen bekomme ich schon genug am Tag :wink2:

 

du kannst nur eine Monitoring Software einsetzten die es dir erlaubt Skripte zu schreiben und diese dann als "Kommunikationsstelle" einzubinden. Dafür ist Nagios eigentlich sehr gut - ABER Nagios Core läuft eigentlich nur auf Linux-Systemen - es gibt da noch NagWin - eine Kombination aus Nagios und Cygwin - d.h. es läuft auf Windows nur unter Cygwin - bzw. nutzt dessen dll (cygwin.dll). Wie hoch der Implementierungaufwand ist kann ich nicht sagen - wird aber nicht easy sein - vielleicht kann man ja mal was zusammen aufbauen - eine Art "generelle Lösung" :discuss:

 

Du wirst nichts finden wo man MT4 direkt ins Monitoring einbinden kann...

 

mtbf40

Link to comment
Share on other sites

#5 : Wenn einer der beiden nicht antwortet, soll der andere eine Mail an ein bestimmtes EMail-Konto bei GMX schicken .

 

 

PC 1 , der Handelnde , schickt neben seiner Haupttätigkeit auch regelmäßig eine Mail an den PC 2 und PC 2 wartet auch darauf . Die Mail wird aus dem laufenden HS des PC 1 generiert wird (Alert) . Beispiel Time[0] != Time[1]. Dann muss (!) es eine Veränderung im HS gegeben habe, ganz wie gewünscht .

PC 2 : oder

- Option 1 : erhält diese Mail innerhalb des von Dir vorgegeben TF und quittiert an PC 1 "Mail erhalten" . oder

- Option 2 : auf PC 2 läuft ein HS und generiert einen Alarm inkl Mail an PC 1

 

Normalzustand == keine Mails/SMS :

PC 2 weiss, das PC 1 fleißig ist und macht nichts ausser eben auf die nächste Mail von PC1 zu warten.

PC 1 weiss durch die Quittierungen von PC 2 oder dessen selber generierten Alarm , daß PC 2 aktiv ist und somit das Controllsystem ok ist .

 

Folgendes Problem habe ich bis jetzt nicht erkannt : Was muss auf PC 2 getan werden, um den Eingang einer Mail in PC 2 zu erkennen ? Dergleichen für PC 1 .

 

Hat da jemand eine Idee ? Die eingehende Mail müßte irgend eine Veränderung (Flag) auf dem empfangenden PC bewegen , die der PC dann erkennt

 

KB

Link to comment
Share on other sites

Folgendes Problem habe ich bis jetzt nicht erkannt : Was muss auf PC 2 getan werden, um den Eingang einer Mail in PC 2 zu erkennen ? Dergleichen für PC 1 .

Hat da jemand eine Idee ? Die eingehende Mail müßte irgend eine Veränderung (Flag) auf dem empfangenden PC bewegen , die der PC dann erkennt

Dein EMailprogramm muss per Regel eine Aktion ausführen. Beruflich nutze ich Outlook, privat TheBat als EMail-Client. Beide können das.

 

Screenshot Outlook:

outlook-regel.png

 

Mit dem Starten einer Anwendung, die du dann selbst geschrieben hast, kannst du in Statusdateien oder Datenbanken dein Flag setzen.

 

Oder dein Programm holt selber per POP3/IMAP die EMails ab, dann brauchst du keinen EMail-Client.

  • Upvote 3
Link to comment
Share on other sites

  • 1 month later...

Ich habe mir nun nachfolgendes Konzept überlegt. Dieses werde ich in den nächsten Wochen umsetzen:

 

tradingsupervisor-konzept.png

 

  • auf dem Tradingserver läuft MultiCharts (o.ä.)
  • jede Strategie schreibt Textdateien in regelmäßigen Abständen
  • eine Applikation (push2db) schaut regelmäßig nach neuen Textdateien und überführt diese in die Eventlog-Datenbank (das Handelsprogramm schreibt aus Geschwindigkeits- und Stabilitätsgründen nicht direkt in die Datenbank)
  • eine weitere Applikation (system infos) schreibt regelmäßig bestimmte Systeminformationen in die Eventlog-Datenbank
  • eine weitere Applikation (generate report) extrahiert die jüngsten Daten aus dem Eventlog und generiert eine HTML-Datei
  • diese Applikation prüft auch die Datenbankwerte gegen bestimmte Schwellwerte und sendet bei Auslösung eine EMail/SMS
  • die generierte HTML-Datei wird auf einen Webserver hochgeladen
  • dort ist diese per http „von außen“ abrufbar (z.B. per Smartphone den Status anschauen)
  • ein Job auf dem Webserver prüft, ob die html-Datei ein gewisses Alter überschreitet
  • wurde sie zu lange nicht mehr aktualisiert, wird eine EMail/SMS generiert (heißt: Tradingserver-Komponente ist ausgefallen)

 

Die einzige offen bleibende Überwachungslücke ist der gleichzeitige Ausfall von Webserver UND einer Tradingserver-Komponente. Oder?

Link to comment
Share on other sites

An sich ein ganz nettes Konzept. Naja, also klemmen wird es immer irgendwo. Du müsstest warscheinlich viel zu viel Aufwand betreiben um alles abzusichern. Wenn irgendwo ein Fehler auftritt musst du eh per Hand eingreifen.

 

eine Applikation (push2db) schaut regelmäßig nach neuen Textdateien und überführt diese in die Eventlog-Datenbank (das Handelsprogramm schreibt aus Geschwindigkeits- und Stabilitätsgründen nicht direkt in die Datenbank

 

Wie kommst du darauf das es über eine Textdatei schneller geht? Im Gegenteil, Datenbanken sind wesentlich schneller. Wobei natürlich auch eine Rolle spielt was für eine Menge an Daten du da verarbeitest. Wird warscheinlich eh kaum relevant sein.

Link to comment
Share on other sites

An sich ein ganz nettes Konzept. Naja, also klemmen wird es immer irgendwo. Du müsstest warscheinlich viel zu viel Aufwand betreiben um alles abzusichern.

Ich will gar nicht alles prüfen. Das einzige was mich interessiert, ist dass das Handelsprogramm funktionstüchtig ist. Wenn der Webserver ausfällt, dann ist mir das egal. Es darf halt nur nicht gleichzeitig der Tradingserver hängen bleiben, dann gibt es einen Bruch in der Meldekette, der nicht auffällt.

 

Natürlich muss ich im Fall der Fälle per Hand nachschauen, was tatsächlich los ist. Aber ich kann ruhig bleiben, so lange ich nichts vom Überwachungssystem höre. Ich will mich schließlich auf die Arbeit konzentrieren und nicht an mögliche technische Defekte denken während ein paar Lots offen sind.

 

 

Wie kommst du darauf das es über eine Textdatei schneller geht? Im Gegenteil, Datenbanken sind wesentlich schneller.

Ja, Datenbanken sind auf jeden Fall schneller. Sie cachen die Daten vor dem Schreiben. Aber ich kann aus einem Handelsprogramm nicht direkt in eine Datenbank schreiben, sondern muss eine DLL dafür entwickeln. Und wenn mehrere Strategien die gleiche DLL laden/entladen, Funktionen aufrufen, dann befürchte ich Stabilitätseinbussen. Da die DLL-Funktionen synchron aufgerufen werden, läuft dann die Strategie erst nach Beendigung des Funktionsaufrufs weiter. Außerdem wird das Handelsprogramm fehlerfrei weiterlaufen, auch wenn der Datenbankdienst nicht verfügbar wäre.

Link to comment
Share on other sites

Schaue mal hier:

 

1. http://nagios.sourceforge.net/docs/3_0/monitoring-windows.html +

Mailing via ssmtp Googlemail.

 

Wenn es mal kommerziell sein darf:

 

2. http://www.de.paessler.com/windows_server_monitoring

3. http://www.solarwinds.com/products/freetools/wmi_monitor/

 

Ich würde mich von den VPSs verabschieden. Mir nen Rootserver mit

Linux besorgen, dann XEN, KVM oder auch VirtualBox ...

 

1. Minimalen Rootserver installieren

2. unnötige Software entfernen

3. XEN/Vbox/OpenVZ installieren + NAT

4. Windows Clients einrichten (only Metatrader alles andere ausschalten)

 

5. System absichern (IPTables, Fail2Ban)

 

6. Monitoring einrichten

 

Preislich gibt es sowas ab 49,00 Euro z.B. bei Hosteurope (bräuchte eigentlich

nen Affliatelink).

 

Du kannst dir auch einfach ein paar Batchs schreiben, die dich anmailen ... bzw.

ein paar Perl Scripte einsetzen. Google will support you.

  • Upvote 3
Link to comment
Share on other sites

  • 2 weeks later...

Ich habe mein Konzept nun mal runterprogrammiert. Ging sogar schneller, als ich erwartet habe. Waren jetzt etwa 10h.

 

Es ist alles enthalten:

  • Sammeln von CSV-Dateien (aus Strategien)
  • Sammeln von Systeminformationen (Festplattenplatz, RAM-Auslastung etc.)
  • Upload des HTML-Reports auf einen Webserver (via FTP)
  • EMail-Versandt im Falle von Schwellwertüberschreitungen
  • frei konfigurierbare Schwellwerte
  • lauffähig ohne Installation (weshalb ich von Nagios & Co abgesehen habe)
  • durch die Verwendung von CSV-Dateien unabhängig von der Tradingsoftware

 

Ich lasse den TradeSupervisor diese Woche laufen und berichte dann, ob er nach Spezifikation funktioniert :sunglass:

 

Besteht eigentlich bei irgendjemandem hier Interesse an dem Programm? Für meine Zwecke ist es fertig, aber vielleicht kann man daraus was für die Allgemeinheit machen...

ts-01.png

ts-02.png

  • Upvote 4
Link to comment
Share on other sites

Ich lasse den TradeSupervisor diese Woche laufen und berichte dann, ob er nach Spezifikation funktioniert :sunglass:

 

Besteht eigentlich bei irgendjemandem hier Interesse an dem Programm? Für meine Zwecke ist es fertig, aber vielleicht kann man daraus was für die Allgemeinheit machen...

 

wow, jetzt bringst du mich aber in arge Bedrängnis ... bin gerade am planen von neuen Bladeclustern mit VMWare as a Cloud und jeder MT4 Instanz als eigenen Service in a Cloud.

 

Deine Variante würde natürlich einiges an Kosten sparen ... hast du nen ungefähren Wert für TCO & ROI

 

Habe geplant bis zu 400 verschiedene MT4 Instanzen kombiniert in der Cloud zu halten

Link to comment
Share on other sites

Habe geplant bis zu 400 verschiedene MT4 Instanzen kombiniert in der Cloud zu halten

Ähmmm, mal ne Frage von Mausschieber Vola.

Was macht man mit 400 MT Instanzen ?

Deckt das dann 1/5 aller MT Broker ab, oder was ist Sinn und Zweck solch eines Konstrukts ?

Link to comment
Share on other sites

Hast Du FTP oder SFTP?

Den Webserver - oder nennen wir ihn besser einfach nur Webspace - kann ich nur per FTP füllen. Es handelt sich dabei um 50 MB Webspace mit eigener Domäne, die bei meinem DSL-Account dabei ist. Kein PHP, kein MySQL o.ä. Der ist nur dafür da, dass ich meinen vorgenerierten HTML-Report darstellen und z.B. vom Smartphone aus abrufen kann. Mir ist klar, dass jedes Kind (mit schnell auffindbaren Tools im Internet) beim FTP-Protokoll die Passwörter o.ä. sniffen kann.

Der Tradingserver läuft hinter einer Firewall. Auf den Tradingserver kann ich auch nur per VPN zugreifen. Es sind von außen keine Ports direkt erreichbar.

 

wow, jetzt bringst du mich aber in arge Bedrängnis ... bin gerade am planen von neuen Bladeclustern mit VMWare as a Cloud und jeder MT4 Instanz als eigenen Service in a Cloud.

Naja, bei dem TradeSupervisor von oben handelt es sich lediglich um ein Überwachungsprogramm, welches mir im Falle von bestimmten Schwellwerten Nachrichten schickt und ansonsten nur HTML-Reports hochlädt. Mach dir keine Sorgen :drinkbeer:

 

Deine Variante würde natürlich einiges an Kosten sparen ... hast du nen ungefähren Wert für TCO & ROI

Nein. Und wenn, dann habe ich keine offiziellen Kosten zum Ansatz. Der Tradingserver ist eine VMWare auf einem Bladeserver, der bei http://www.level3.com/ (Deutschland) steht. Die Bladeserver gehören einem guten Bekannten, der mit seiner Firma Hochverfügbarkeitslösungen für Unternehmen anbietet. Ich habe mich da nur kostengünstig rangehängt :biggrin:

Link to comment
Share on other sites

ich hab mal so eine IT-Spezie getroffen, der seinen Server ebenfalls überwachte ob es eine Internetverbindung gibt.

Sobald die länger als x Minuten weg war, wurde eine SMS gesendet. Und zwar hatte er an dem Ding eine UMTS-Karte verbaut die entweder als Backup Internetleitung diente oder darüber eine SMS verschickte oder eMail verschickte.

 

Wie er das UMTS-Modul allerdings ansteuerte weiß ich nicht. Ist schon ein paar Tage her und ich hab dafür zu wenig Ahnung von Serveradministration. Kann auch sein, dass der dazu selbst was gecodet hat. Das weiß ich nicht so genau. Aber die Idee hat mir gefallen :)

Edited by Tibo
Link to comment
Share on other sites

ich hab mal so eine IT-Spezie getroffen, der seinen Server ebenfalls überwachte ob es eine Internetverbindung gibt.

Sobald die länger als x Minuten weg war, wurde eine SMS gesendet. Und zwar hatte er an dem Ding eine UMTS-Karte verbaut die entweder als Backup Internetleitung diente oder darüber eine SMS verschickte oder eMail verschickte.

 

Wie er das UMTS-Modul allerdings ansteuerte weiß ich nicht. Ist schon ein paar Tage her und ich hab dafür zu wenig Ahnung von Serveradministration. Kann auch sein, dass der dazu selbst was gecodet hat. Das weiß ich nicht so genau. Aber die Idee hat mir gefallen :)

 

Z.B. mit der Software mwconn kann man mit preiswerten UMTS-Sticks per Script SMS versenden usw.

 

Lutz

  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...