Autor Beitrag
LuMa86
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Fr 07.06.13 15:51 
Moin,
ich suche einen Ansatz um ein kleines Programm zu schreiben. Die Situation sieht so aus:
Ein Bekannter betreut Server bei Kunden. Wenn er z.B. prüfen will, ob der Server läuft muss er sich dort einloggen und dann das LogFile anschauen und z.B. schauen ob der Code 10001 vorkommt, was bedeuten würde, der MySQLServer konnte nicht gestartet werden (ist jetzt nur ein Beispiel an den Haaren herbeigezogen). Jetzt wäre es natürlich praktisch ein Tool zu schreiben was eben in zeitlichen Abständen prüft, ob in dem Log einer dieser Codes vorkommt. Wenn ja, soll eine E-Mail mit dem Code, dem Programm was das gemeldet hat usw. an meinen Kumpel geschickt werden. Natürlich gibt es schon so Auswerutngsprogramme, die aber nicht gerade günstig sind und zudem völlig überdimensioniert sind. Daher würde es sich anbieten, das selbst zu programmieren.

Meine Frage ist jetzt, wie ich das am besten Angehe. Ich habe mir überlegt einen Dienst zu entwickeln. Leider habe ich mich noch nie mit Diensten befasst, allerdings habe ich schon ein gescheites Beispiel in der DelphiPraxis gefunden. Meine Überlegung sah bisher so aus:
- Dienst läd Timergesteuert oder eben zu einer angegebenen Zeit den LogFile und sucht nach einem Code --> Nach dem Durchsuchen werden alle Codes inklusive der kompletten Logzeile als Mail versendet
- Eine "Steuerung" steuert den Dienst und übernimmt eben Einstellungen, z.B. die SMTP-Einstellungen, die Codes nach denen gesucht werden soll, usw. Es soll zudem den Dienst installieren/starten etc. können

An sich hört sich das ja ganz simpel an, aber wie sieht das im Detail aus? Wie lade ich das Log. Mit VCL kann man das ja einfach in ein Memo laden. Verwende ich beim Dienst dann einfahc Streams?
Und was muss man bei Diesten noch so beachten, bzw. lässt sich die Mail über SMPT einfach über den Dienst senden?

Ich hoffe der Trip mit dem Dienst wird keine Höllentour :)

Danke
platzwart
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1054
Erhaltene Danke: 78

Win 7, Ubuntu 9.10
Delphi 2007 Pro, C++, Qt
BeitragVerfasst: Fr 07.06.13 16:16 
Welches Betriebssystem genau läuft denn auf dem Server?

_________________
Wissenschaft schafft Wissenschaft, denn Wissenschaft ist Wissenschaft, die mit Wissen und Schaffen Wissen schafft. (myself)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18702
Erhaltene Danke: 1620

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 08.06.13 05:40 
user profile iconLuMa86 hat folgendes geschrieben Zum zitierten Posting springen:
Wie lade ich das Log. Mit VCL kann man das ja einfach in ein Memo laden. Verwende ich beim Dienst dann einfahc Streams?
Zum Beispiel, ja. MMFs wären dabei auch eine Idee, der Geschwindigkeit wegen, denn die Logs sind ja vermutlich nicht ganz klein.

user profile iconLuMa86 hat folgendes geschrieben Zum zitierten Posting springen:
Und was muss man bei Diesten noch so beachten, bzw. lässt sich die Mail über SMPT einfach über den Dienst senden?
Das kann man einstellen, muss der Admin also ggf. freischalten (Internet an sich für den Dienst meistens, evtl. noch die Firewall).
blaskito
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63

Win2003, 2008, 2012, WinXP, Win7
Delphi 6 Pers.
BeitragVerfasst: Sa 08.06.13 17:18 
Moin,

wenn du das Windows-Eventlog meinst, dann nützt es dir nix, wenn du es dir auf einen anderen Rechner kopierst. Das Eventlog ist kodiert (guggst du hier msdn.microsoft.com/e...ibrary/aa363646.aspx ) und liest seine Infos Just-In-Time aus den installierten Anwendungen aus. Der Aufwand für einen Dienst ist dagegen relativ gering.

Gruß aus dem Norden
LuMa86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: So 09.06.13 20:20 
Okay, danke erstmal für die Antworten. Ich muss das mit Ihm nochmal abklären, wie das alles genaus ist. Auf den Servern läuft Windows Server 2008. Ob auch schon 2012 in Verwendung ist muss ich nochmal in Erfahrung bringen. Und ja, es ist das Windows Eventlog. Das wichtigste wäre einfach erstmal das Log auszulesen, daran kann ich ja schonmal arbeiten. Und das mit der Firewall sollte auch kein Problem sein. Allerdings wie sieht es mit Adminrechten aus? Eine normale VCL-Anwendung kann man ja einfach mit einem Manifest versehen, aber wie sieht das bei einem Dienst aus? Der muss mit Adminrechten installiert werden und hat dann auch Admin-/uneingeschränkte Rechte?

MfG
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18702
Erhaltene Danke: 1620

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 09.06.13 21:59 
user profile iconLuMa86 hat folgendes geschrieben Zum zitierten Posting springen:
Und ja, es ist das Windows Eventlog. Das wichtigste wäre einfach erstmal das Log auszulesen, daran kann ich ja schonmal arbeiten.
Und was hat das mit dem Auslesen einer Datei zu tun?
Da gibt es API Funktionen:
msdn.microsoft.com/e...363674(v=vs.85).aspx

user profile iconLuMa86 hat folgendes geschrieben Zum zitierten Posting springen:
aber wie sieht das bei einem Dienst aus? Der muss mit Adminrechten installiert werden und hat dann auch Admin-/uneingeschränkte Rechte?
Der läuft, sofern nicht anders konfiguriert, im Systemkontext mit Adminrechten. Das heißt aber nicht, dass er Internet- oder Netzwerkzugriff hat. Das ist aus Sicherheitsgründen für Dienste oft deaktiviert.
LuMa86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Mo 10.06.13 08:46 
Danke, schau ich mir an :) Das wäre sogar noch besser :)
cupidsrose
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Fr 02.08.13 12:48 
Some don't understand
Christian213
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66
Erhaltene Danke: 3

Win XP, Win 7 64Bit
Lazarus 1.0.10
BeitragVerfasst: Sa 03.08.13 21:53 
Ich würde für solche Aufgaben ein fertiges Tool wie Nagios (www.nagios.org/) empfehlen. Die Checks lassen sich dort bequem mittels einer eigenen Skript-Sprache (Nagis Query Language) erstellen. Man kann theoretisch auf alles mögliche Prüfen.