Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Serverprüfer

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Postmann



Anmeldungsdatum: 07.03.2017
Beiträge: 3

BeitragVerfasst am: 07.03.2017, 11:39    Titel: Serverprüfer Antworten mit Zitat

Hallo und Guten Tag lächeln
Mag hier mal mein erstes FreeBasic-Programm vorstellen. Es zeigt offene Ports und Pingstatistiken zu Servern an. Bei FTP und SSH kann direkt ein Terminal gestartet werden, welches den jeweiligen Client auf den Server verbindet. Das Programm habe ich für die Arbeit geschrieben und soll mich hier unterstützen, damit ich nicht ständig 30 Terminals am Laufen habe. zwinkern

Version 2.0:
Das Programm hängt nicht mehr, wenn spontan ein Server offline geht. Des Weiteren kann es nun angegebene Ports überwachen, HTTP-Requests versenden und diese im Graphen anzeigen (Bitte die ReadMe lesen). Für die HTTP-Requests muss das Programm "httping" installiert sein!
Achtung: Bei externen Servern arbeitet httping langsam, weswegen ich es nicht empfehle, bei jedem Server zu nutzen.



Das Programm habe ich für Linux geschrieben, sollte mit ein paar Änderungen aber auch unter Windows lauffähig sein. Wer es benutzen mag, bitte die ReadMe lesen. Das Programm "nmap" muss installiert sein!
Verbesserungsvorschläge sind natürlich willkommen. Da es mein erstes Mal mit FreeBasic war, ist sicher nicht alles perfekt.

Download von Version 2.0 mit Code hier: https://www.freebasic-portal.de/dlfiles/692/server-test.zip


Zuletzt bearbeitet von Postmann am 08.03.2017, 15:00, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 07.03.2017, 22:04    Titel: Antworten mit Zitat

Da ich schliesslich beruflich in der IT zu Hause bin und bekanntlich schon seit Jahren auch meine eigenen Server laufen habe (Internet-Leitung mit mehreren fixen IP-Adressen, mittlerweilen IPv4+IPv6 voll dual-stacked), ist so ein Projekt immer interessant.

Sinnvoll für Erweiterungen könnte sein:
- Firewall-Policies überwachen, d.h. ob bestimmte Dienste durch die Firewall erreichbar sind, umgekehrt Dinge nicht versehentlich geöffnet wurden
- Im Sinne von Nagios ein Monitoring, ob alle Dienste up & running sind
- dementsprechend Dinge wie Alarm-E-Mails versenden, evtl. sogar SMS aufs Handy schicken, wenn ein Server oder ein bestimmter Dienst down ist
- Watchdog-Funktionalitäten, z.B. bestimmtes Script starten, welches den gestorbenen Dienst wieder neustartet
- auch Performance-Monitoring, z.B. ob der Webserver die HTTP-Anfragen mit viel serverseitigem Script immer noch vernünftig schnell beantwortet oder extrem überlastet ist

Gerade in meinem Fall aktuell: "ping"-Zeiten und dort vor allem eine gewisse Gleichmässigkeit (möglichst wenig Ausreisser) im Zusammenhang mit VoIP-Anwendungen (SIP und RTP), denn speziell eine Fax-Übertragung reagiert recht empfindlich auf sog. Jitters, denn im gewerblich-industriellen Umfeld gibt es auch heute noch etliche Anwendungen auf Basis von alten Modem-Technologien (ein 56k-Analogmodem ist bereits hochmodern dagegen!), die sich nicht so ohne Weiteres durch All-IP ablösen lassen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Postmann



Anmeldungsdatum: 07.03.2017
Beiträge: 3

BeitragVerfasst am: 08.03.2017, 09:20    Titel: Antworten mit Zitat

Hallo drael, schön dass du es interessant findest. lächeln
Zitat:
- Firewall-Policies überwachen, d.h. ob bestimmte Dienste durch die Firewall erreichbar sind, umgekehrt Dinge nicht versehentlich geöffnet wurden

Nmap schaut ja, ob die Dienste erreichbar sind. Ob Dinge nicht versehentlich offen sind, könnte man prüfen, indem man die jeweiligen Ports der Dienste, die ausschließlich laufen sollen, in eine Datei schreibt und im Programm dann prüft, ob diese bei nmap aufgelistet wurden sind. Ich hoffe ich habe das richtig verstanden? Auf jeden Fall eine gute Idee.
Das Programm benutzt nmap ohne Parameter. Beinahe jeder Parameter verlangt root-Rechte. Gerade die Wichtigen wie "-Pn" oder "-sA", welche für deine Idee interessant wären.

Zitat:
- Im Sinne von Nagios ein Monitoring, ob alle Dienste up & running sind

Für diese Zwecke benutzen wir CheckMK. Könnte man im Programm aber mit meinem Vorschlag zu deiner ersten Idee auch einbringen.

Zitat:
- dementsprechend Dinge wie Alarm-E-Mails versenden, evtl. sogar SMS aufs Handy schicken, wenn ein Server oder ein bestimmter Dienst down ist

Hm, für E-Mail müsste aber ein entsprechender Dienst auf dem System laufen, auf dem mein Programm läuft. Abgesehen davon aber nicht weiter schwer es miteinzubringen. SMS stelle ich mir da schon schwieriger vor.

Zitat:
- Watchdog-Funktionalitäten, z.B. bestimmtes Script starten, welches den gestorbenen Dienst wieder neustartet

Also dafür bräuchte das Programm root-Zugriff auf den Server. Das lasse ich lieber. grinsen Es würde auch denke ich gegen die Sicherheitsbestimmungen meiner Firma laufen, wenn ein Programm, welches ständig läuft, ohne Weiteres auf einem Server volle Rechte hat.

Grundsätzlich könnte ich mir deine Ideen in meinem Programm gut vorstellen, bis auf das Neustarten von Diensten.
Mir ist aufgefallen, dass das Programm nicht damit klarkommt, wenn ein Server während der Laufzeit offline geht. Er versucht weiterhin den Server zu pingen, der Timeout vom Ping-Programm ist allerdings derart lang, dass das Programm unbenutzbar wird. Werde erst dort weitermachen, bevor ich mich an deine Vorschläge mache.

Gruß
Postmann
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2507
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.03.2017, 20:52    Titel: Antworten mit Zitat

Postmann hat Folgendes geschrieben:
Zitat:
- dementsprechend Dinge wie Alarm-E-Mails versenden, evtl. sogar SMS aufs Handy schicken, wenn ein Server oder ein bestimmter Dienst down ist

Hm, für E-Mail müsste aber ein entsprechender Dienst auf dem System laufen, auf dem mein Programm läuft. Abgesehen davon aber nicht weiter schwer es miteinzubringen. SMS stelle ich mir da schon schwieriger vor.

Bei Linux überhaupt nicht kompliziert; da ruft man sendmail im Hintergrund auf. Alternativ kannst Du auch einen SMTP-Client implementieren, wo man als Systemmanager Deiner Lösung selber einen entfernten Host bzw. localhost (wenn auf dem Linux-System ein MTA läuft) eintragen kann (sollte wenn möglich auch Optionen wie STARTTLS, SMTP-via-TLS sowie mit und ohne SMTP AUTH unterstützen).
Postmann hat Folgendes geschrieben:
Zitat:
- Watchdog-Funktionalitäten, z.B. bestimmtes Script starten, welches den gestorbenen Dienst wieder neustartet

Also dafür bräuchte das Programm root-Zugriff auf den Server. Das lasse ich lieber. :D

Nicht notwendigerweise, z.B. viele Dienste verwenden heutzutage eigene Daemon-Benutzer. Ausserdem ist auch ein Arbeiten mit sudo möglich.
Postmann hat Folgendes geschrieben:
Es würde auch denke ich gegen die Sicherheitsbestimmungen meiner Firma laufen, wenn ein Programm, welches ständig läuft, ohne Weiteres auf einem Server volle Rechte hat.

Und hier kommt nun das Allerwichtigste (für mich als Freiberufler, der für diverse Auftraggeber tätig ist, das absolute A und O, um letztlich auch Aufträge ausführen können, die am Schluss verrechnet werden können!): Du musst um jeden Preis schauen, dass das Ganze als offizielles, von der Firma gewünschtes Projekt läuft. => In diesem Fall steckt dann in Deinem Fall als Angesteller auch ein Vorgesetzter dahinter, welcher Dir die nötigen Betriebsmittel zur Verfügung stellt bzw. die anderen Abteilungen (und externen IT-Dienstleister) anweist, Dir die nötigen Ressourcen zu geben.

Weil ja in der modernen IT inzwischen so ziemlich alles virtualisiert läuft, würde ich in Deinem Fall auch unbedingt schauen, dass Du für dieses Netzüberwachungstool auf Eurer Virtualisierungsplattform ein dediziertes Linux-Gastsystem aufsetzen kann. Ob WMware vSphere/ESXi oder Microsofts Hyper-V spielt keine Rolle. Übrigens unterstützt auch Microsoft inzwischen Linux auf ihrer Hypervisor-Lösung ganz ordentlich, habe für einen meiner Auftraggeber mehrere CentOS-Serversysteme als Gäste laufen.

Postmann hat Folgendes geschrieben:
Mir ist aufgefallen, dass das Programm nicht damit klarkommt, wenn ein Server während der Laufzeit offline geht. Er versucht weiterhin den Server zu pingen, der Timeout vom Ping-Programm ist allerdings derart lang, dass das Programm unbenutzbar wird. Werde erst dort weitermachen, bevor ich mich an deine Vorschläge mache.

Hier würde ich mich an Deiner Stelle einmal etwas ausführlicher mit Threads und Prozesse befassen, so dass Du den "nmap" im Hintergrund arbeiten lässt.

Eine wirklich brauchbare Netzüberwachungslösung sollte sich aus einem Server-Dienst und einem GUI-Client zusammensetzen. Für letzteres ist natürlich inzwischen ein normaler Webbrowser immer beliebter.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Postmann



Anmeldungsdatum: 07.03.2017
Beiträge: 3

BeitragVerfasst am: 09.03.2017, 09:00    Titel: Antworten mit Zitat

Zitat:
Hier würde ich mich an Deiner Stelle einmal etwas ausführlicher mit Threads und Prozesse befassen, so dass Du den "nmap" im Hintergrund arbeiten lässt.

Habe ich in der neuen Version (siehe Startpost) bereits anders gelöst. Über "ping" habe ich den Timeout-Parameter gesetzt, der jetzt auch entscheidet, ob ein Server als erreichbar gilt.

Zitat:
Eine wirklich brauchbare Netzüberwachungslösung sollte sich aus einem Server-Dienst und einem GUI-Client zusammensetzen. Für letzteres ist natürlich inzwischen ein normaler Webbrowser immer beliebter.

Für mich war das Programm auch nicht (primär) als Netzwerküberwachung gedacht, dafür haben wir CheckMK, sondern um sich direkt mit Servern über SSH oder FTP verbinden zu können, sobald es nötig ist. Für jeden Server ein eigenes Terminal zu öffnen wird mir schnell recht unübersichtlich. zwinkern

Zitat:
Nicht notwendigerweise, z.B. viele Dienste verwenden heutzutage eigene Daemon-Benutzer. Ausserdem ist auch ein Arbeiten mit sudo möglich.

Bei uns läuft ein "Agent"-Deamon auf den Servern, der mit CheckMK zusammen arbeitet. Eventuell kann man den so konfigurieren, dass er auch mit meinen Programm kommunizieren könnte. Rein theoretisch nur, da ich daran nicht einfach rumexperimentieren darf.

Zitat:
Du musst um jeden Preis schauen, dass das Ganze als offizielles, von der Firma gewünschtes Projekt läuft. => In diesem Fall steckt dann in Deinem Fall als Angesteller auch ein Vorgesetzter dahinter, welcher Dir die nötigen Betriebsmittel zur Verfügung stellt bzw. die anderen Abteilungen (und externen IT-Dienstleister) anweist, Dir die nötigen Ressourcen zu geben.

Ich sehe das Ganze eher als Möglichkeit, mich mit einer neuen Programmiersprache zu beschäftigen, da die Woche sowieso nicht viel los war, ich aber trotzdem produktiv sein wollte. Als offizielles Projekt kann ich es nicht laufen lassen, da ich kein Anwendungsentwickler bin und unsere Richtlinien auch zu viel vorschreiben, was offizielle Projekte angeht (unteranderem dürfen wir offiziell nur mit C++, C oder Python arbeiten!).
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz