Laden...

[gelöst] Zustand/Arbeitsschritt bzw. Status von Windowsdienst abfragen -> OWIN SelfHosted REST API

Erstellt von 1nf1n1ty vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.477 Views
1nf1n1ty Themenstarter:in
286 Beiträge seit 2007
vor 7 Jahren
[gelöst] Zustand/Arbeitsschritt bzw. Status von Windowsdienst abfragen -> OWIN SelfHosted REST API

Hallo zusammen,

ich habe einen Windows-Dienst geschrieben, der verschiedene Operationen durchführt. Dieser Dienst loggt dabei die ganze Zeit mit was er tut und kann dies bei Bedarf in eine Logdatei schreiben. Diesen Dienst würde ich gerne nun an ein Monitoring anschließen und wollte dafür am Dienst etwas bereitstellen, was mir sagt ob:

  1. Der Dienst läuft (Das kann man über den Servicestatus ja abfragen)
  2. Was er gerade tut.

Letzterer Punkt ist der, von dem ich nicht weiss wie man das realisieren kann. Ist es möglich den Status des Dienstes auf irgendeinerweise abzufragen?

Ich bin für jede Hilfe dankbar.

Viele Grüße

16.806 Beiträge seit 2008
vor 7 Jahren

Windows kennt bei einem Service nur 3 Stati: Stopped, Running, Starting.
Willst Du weitere Informationen musst Du das selbst implementieren.

Fragen wie "ist es möglich" können IMMER mit Ja beantwortet werden.
Alles nur eine Frage des Aufwandes bzw. der genauen Spezifikationen.

3.511 Beiträge seit 2005
vor 7 Jahren

Moin,

alle meine Windows Dienste haben eine kleine REST Schnittstelle, über die abgefragt werden kann, was gerade so los ist. Ist IMHO sehr einfach zu implementieren (OWIN SelfHost).

Eine anderem Möglichkeit wäre z.B. über SNMP abzufragen. Da kann man aber nicht all zu viel Daten mitgeben.

Du könntest dein Logging auch so erweitern, dass es ein syslog Dienst ansprechen kann (z.B. wie PRTG). Dann kann direkt auf ein syslog Server geloggt werden.

Da gibt es halt viele verschiedene Varianten. Musst du selber wissen, was am geschicktesten für dich. Und vor allem, was du für Infos benötigst.

Gruß
Khalid

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

T
2.219 Beiträge seit 2008
vor 7 Jahren

@1nf1n1ty
Das dein Dienst gerade tut, kann nur der Dienst wissen.
Wenn du spezielle Informationen von deinem Dienst nach aussen reichen willst, musst du dies per Ausgabe(Konsole, Log oder spezielle State Datei) machen.

Windows selbst kann ja nicht wissen, was dein Dienst gerade genau macht.
Dein Dienst muss schon selbst mitteilen, was er vor hat und ggf. auch mit welchen Parametern.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

H
523 Beiträge seit 2008
vor 7 Jahren

Du könntest dafür auch in das Windows-Ereignisprotokoll schreiben und die Ereignisse entsprechend auswerten. Tools um auf bestimmte Ereignisse bestimmter Dienste zu reagieren gibt es im Netz.

1nf1n1ty Themenstarter:in
286 Beiträge seit 2007
vor 7 Jahren

Hallo zusammen,

danke schonmal für die Antworten. Das der Dienst am besten weiss was er tut ist mir schon klar, ich habe aber nicht genau ausgeführt was ich eigentlich möchte. Die Informationen Start, Pause und Stopped geben mir nicht die Informationen die ich wissen will. Was ich wissen will ist:

  • Was tut er derzeit
  • letzten 10 Aktionen inkl. Timestamp
  • aufgetretene Fehler
  • etc.

Über ein Objekt kann ich ja jederzeit Informationen darüber speichern, was er gerade tut bzw. die letzten Aktionen sichern. Mir ging es primär darum wie ich diese dann vom Dienst abrufen kann. Das ganze soll so einfach/billig/wenig Aufwand wie möglich erzeugen. Das der Windowsdienst z.B. mit Hilfe einer REST-Schnittstelle abgerufen werden kann klingt recht interessant und einfach. Ich würde gerne mehr darüber wissen. Könntest du vielleicht ein kleines Beispiel dazu posten? Gibt es dabei bestimmte Dinge zu beachten oder ggf. Einschränkungen?

Abgeholt werden diese Informationen von einem externen Monitoring-System, das diese Informationen zyklisch abfragt und auswertet. Über REST sollte das mit dem Monitoring funktionieren.

Vielen Dank und viele Grüße

16.806 Beiträge seit 2008
vor 7 Jahren

Du kamst bei Deiner eigenständigen Recherche nicht weiter, oder wo ist das konkrete Problem?

3.511 Beiträge seit 2005
vor 7 Jahren

Hi,

zum Thema Self Host und OWIN findet man eine Menge. Einfach mal "web api owin self host" in einer Suchmaschine deiner Wahl eingeben.

Ein Beispiel hier zu posten ist unnötig, da es da draußen genug gibt.

Gruß
Khalid

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

1nf1n1ty Themenstarter:in
286 Beiträge seit 2007
vor 7 Jahren

Hallo zusammen,

ich habe bei meiner Recherche nicht das gefunden, was ich gesucht habe. OWIN war bisher bei dem was ich programmiere kein Thema und ich hatte damit immer etwas anderes in Verbindung gebracht. Ich wollte außerdem lieber jemanden fragen, der sich mehr mit sowas auskennt. Einfach drauf los irgendwas zu programmieren, was es vielleicht schon gibt oder am Ende in einer Sackgasse zu landen finde ich nicht so klug.

@Khalid: Danke für das Stichwort OWIN. Das sieht super aus.

F
10.010 Beiträge seit 2004
vor 7 Jahren

Ich hätte sonst NancyFX vorgeschlagen