mit php linux prozesse prüfen
Jan
- php
Hallo liebe Selfer,
ich hätte da mal ein Frage: ist es möglich Prozesse auf Linux Web-Servern mittels PHP auf ihren Staus zu Prüfen, z.b. ob der Apache, mySql, Sendmail etc. noch läuft, soll ein Server Überwachungstool werden.
Schonmal danke voruas, Jan.
echo $begrüßung;
ich hätte da mal ein Frage: ist es möglich Prozesse auf Linux Web-Servern mittels PHP auf ihren Staus zu Prüfen, z.b. ob der Apache, mySql, Sendmail etc. noch läuft, soll ein Server Überwachungstool werden.
Zuerst musst du dir je zu prüfendem Dienst die Frage beantworten, wie man bei diesem den Status im Allgemeinen ermittelt werden kann. Die Anworten werden mit Sicherheit mehr oder weniger unterschiedlich ausfallen. Wenn du das weißt, kannst du dir die Funktionen suchen, mit denen man in PHP diese jeweilige Statusabfrage realisieren kann.
Ebenfalls solltest du dir überlegen, was du unter "läuft" verstehen willst. Wenn der Dienst prinzipiell noch läuft, aber gerade wegen Überlast oder anderen nicht mehr reichenden Ressourcen keine Anfragen entgegennimmt, wie soll dieser Zustand dann gewertet werden?
echo "$verabschiedung $name";
Erstmal danke für deine Antwort,
dachte mir schon das es nicht ganz so enfach wird, da es sich um mehrer Server handelt und die nicht alle gleich Konfiguriert sind von der Linux Version angefangen bis zu Sendmail oder Postfix scheint das mit dem Prozesse überprüfen doch keine so gute Idee zu sein.(weil wohl nicht so einfach zu realisieren?)
Eine andere Idee die ich hatte, ist zu Prüfen ob die betreffenden Ports zu erreichen sind, aber was ist wenn mySQL z.b. nicht wie Standardmäßig auf Port 3306 läuft sondern auf einem anderen? Kann man vorher prüfen auf welchem Port welcher Dienst läuft um dann zu prüfen ob dieser zu erreichen ist?
Gruß Jan
echo $begrüßung;
Eine andere Idee die ich hatte, ist zu Prüfen ob die betreffenden Ports zu erreichen sind, aber was ist wenn mySQL z.b. nicht wie Standardmäßig auf Port 3306 läuft sondern auf einem anderen?
Genau das sind solche Fragen, auf die du eine Antwort suchen musst. Es kann im Fall MySQL-Server auch sein, dass er gar nicht über TCP-IP sondern nur lokal über Unix-Sockets erreichbar ist. Dann kannst du schon mal eine Fernabfrage auf diesem Weg vergessen.
Kann man vorher prüfen auf welchem Port welcher Dienst läuft um dann zu prüfen ob dieser zu erreichen ist?
Jein, nicht wirklich. Du kannst einen Portscan machen und schauen, welche Reaktion auf den Ports kommt und diese versuchen, einem Dienst zuzuordnen. Aber das ist alles andere als einfach und auch icht sehr schnell, da pro Port (wovon es 65536 gibt) auch eine gewisse Zeitspanne auf Antwort gewartet werden sollte.
Einfacher ist es da schon, zu wissen, was wo läuft, und dies dem Überwachungstool zu konfigurieren.
echo "$verabschiedung $name";
Moin!
dachte mir schon das es nicht ganz so enfach wird, da es sich um mehrer Server handelt und die nicht alle gleich Konfiguriert sind von der Linux Version angefangen bis zu Sendmail oder Postfix scheint das mit dem Prozesse überprüfen doch keine so gute Idee zu sein.(weil wohl nicht so einfach zu realisieren?)
Es gibt tolle existierende Software, die Statusprüfung realisiert - im gegebenen Fall auch erweiterbar durch eigene Module, z.B. in Perl. Heißt "Nagios".
Logischerweise ist die Prüfung der Status natürlich zu konfigurieren, Nagios bringt da aber schon einen ganzen Sack mit vorgefertigten Modulen mit, die Dinge wie Ping, HTTP, SMTP, POP3 etc. checken, ebenso wie Existenz von Prozessen auf der lokalen Maschine, freier Plattenplatz etc. Was an Checks nicht mitgeliefert wird, kann man selbst schreiben, z.B. in Perl, PHP, C oder jeder anderen Sprache, die auf der Kiste funktioniert. Ein Client-Server-Modell, um Checks auch remote durchzuführen, existiert ebenfalls, und auch ein nettes Browsermodul zur Anzeige der aktuellen und vergangenen Resultate.
Nagios ist wegen der Vielzahl der denkbaren Prüfungen von den Ergebnissen her sehr generisch aufgebaut. Ein Test kann OK, Warnung oder Fehler zurückgeben (grün, gelb oder rot), und würde dann konfigurierbar Benachrichtigungen auslösen, per Mail, Pager oder sonstigen Dingen. Andererseits: Wenn's irgendwo klemmt, will man ja in der Regel einfach nur schnell benachrichtigt werden, als Statusmonitor ist Nagios daher sehr gut geeignet.
- Sven Rautenberg