Skript um Apache automatisch neu zu starten?

Bash, Shell, PHP, Python, Perl, CGI
croni
Posts: 14
Joined: 2006-10-17 21:00

Skript um Apache automatisch neu zu starten?

Post by croni »

Hallo,

Es ist einzelne Male schon vorgekommen, dass der Apache auf meinem dedicated Server abgeschmiert ist, was mir dann auch schön per SMS gemolden wurde. Nur nützt mir das nichts (ausser ich kann den Provider gleich anrufen), wenn ich schlafe oder mal nicht alle 15min auf's Handy gucke.

Ich könne ja aber auch per Cron-Job checken, ob der Dienst läuft, und wenn nicht, einen Restart machen. Macht Ihr/man das so? Nachteile?

Gruss,
Christoph
os-t
Posts: 65
Joined: 2006-06-05 16:06

Re: Skript um Apache automatisch neu zu starten?

Post by os-t »

Wenn der Apache abschmiert dann hat das einen Grund. Ich würde nicht wollen, dass mein Apache einfach von selbst wieder hochfährt und damit evtl. das Problem überdeckt, weil irgendwelche Files überschrieben werden...
lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: Skript um Apache automatisch neu zu starten?

Post by lucki2 »

Eine Frage der Downtime. Kann man so machen.

In der Praxis werden ganz andere Konstrukte gefahren: mit einem richtigen Watchdogserver, der redundante Server freigibt und im Hintergrund die Konsistenz des abgesoffenen automatisch wieder herstellt. Gibt Server, bei denen Du im Betrieb(Hot) den Prozessor austauschen kannst. Raidsysteme mit Hotspare(normal raid5) bei denen ebenfals Hot die Platten getauscht werden kann sowieso. Das ist auch ein Sinn für von Clustern ...
Kann daher beliebig komplex gestaltet werden. Kommt sehr auf die Größe des Geldbeutels an.

Soll heißen: das Argument, es könnte etwas überschrieben werden relativiert sich schon stark. Ich gehe davon aus, daß jemand, der SMS-Benachrichtigung bekommt sowieso monitored und sich sorgen macht wenn der Apache dauerend verschwindet - also so what?

Hinweis: Watchdog ist der Suchbegriff, über den Du viel Information über Konzepte findest: "was mache ich wenn xyz abschmiert aber downtime vermieden werden muß".
os-t
Posts: 65
Joined: 2006-06-05 16:06

Re: Skript um Apache automatisch neu zu starten?

Post by os-t »

Ich monitore auch und werde auch per SMS benachrichtigt, dennoch stürzt mein Apache nicht so oft ab, dass ich einen Cronjob brauche, der das kontrolliert.
Natürlich kostet Downtime Geld, aber mir ist es ehrlich gesagt wichtiger (potentielle) Probleme zu beheben und die Ursachen zu finden, als einfach regelmäßig das Ding neu zu starten und danach nichts mehr zu sehen und die Abstürze niemals in den Griff zu bekommen.

Gruß Os-T
bjunix
Posts: 24
Joined: 2005-09-12 19:00

Re: Skript um Apache automatisch neu zu starten?

Post by bjunix »

Wieso schmiert dein apache ab? Das ist hier die Frage!
lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: Skript um Apache automatisch neu zu starten?

Post by lucki2 »

Also croni, Du hörst was die Leute sagen.
Wenn Du der Meinung bist, daß Du Probleme so nicht behebst sondern umgehst:

a) Zweiter Apache, den Du startest, wenn der erste abschmiert. Der technische Unterschied ist, daß Du 2 identische Binaries rumfliegen hast bzw (könnte ja passieren, daß Dir Redundanz auffällt ;) ), mindestens eine zweite (fast identische-logs!) Konfiguration.
Das starten (failover) kannst Du machen:
aa) Per cron machen.
ab) Eigener Daemon laufen haben(der endlich auch nur ein Sceduler ist).
ac) Kernel-watchdog Unterstützung nutzen:
apt-get install watchdog(oder rpm -i oder emerge..).
/etc/watchdog.conf anpassen insb. pidfile u. repairbinary.
Dazu ist zu sagen: gibt ein paar Bugs.
aca)modprobe softdog
acb)Watchdogkarte einsetzen /Kernel/drivers/char/watchdog/xyzdkarte).


Ganz toll bist Du, wenn Du das ganze auf zwei Server verteilst. Der failover-Apache dann auf den zweiten Root. z.B. http://www.linux-ha.org. Wie gesagt: eine Frage des Geldbeutels.

PS: Die mehr Apachelösung hat wirklich einen Vorteil, wenn Du abrechnen mußt. Ist für alle transparenter, daß da wirklich etwas nicht stimmt.
adjustman
Posts: 1132
Joined: 2003-03-26 23:29
Location: SA

Re: Skript um Apache automatisch neu zu starten?

Post by adjustman »

lucki2 wrote: ac) Kernel-watchdog Unterstützung nutzen:
apt-get install watchdog(oder rpm -i oder emerge..).
/etc/watchdog.conf anpassen insb. pidfile u. repairbinary.
Dazu ist zu sagen: gibt ein paar Bugs
welche denn?
lucki2
Posts: 427
Joined: 2006-10-03 01:31

Re: Skript um Apache automatisch neu zu starten?

Post by lucki2 »

aca)modprobe softdog
acb)Watchdogkarte einsetzen /Kernel/drivers/char/watchdog/xyzdkarte).
aubergine
Posts: 471
Joined: 2005-09-10 17:52
Location: Frankfurt am Main

Re: Skript um Apache automatisch neu zu starten?

Post by aubergine »

Was ich dir empfehlen kann ist monit
User avatar
daemotron
Administrator
Administrator
Posts: 2639
Joined: 2004-01-21 17:44

Re: Skript um Apache automatisch neu zu starten?

Post by daemotron »

Hmm, ich will's mal so formulieren. Natürlich haben alle recht, die sagen, ein platter Neustart des Dienstes behebt die Grundprobleme nicht. Davon ausgehend dürfte ich Monitoring nur als Maschine-Mensch-Schnittstelle einsetzen. In "richtigen" Rechenzentren wird das so auch praktiziert - da gibt's dann aber auch rund um die Uhr eine Stallwache und entsprechende Notfallpläne mit Eskalationsstufen.

Für den geneigten Betreiber des ein oder anderen Servers ist das schon rein finanziell betrachtet nicht tragbar. Und rund um die Uhr aufbleiben haut auch irgendwann nicht mehr hin (spätestens nach 2 Tagen ist Sense - da hilft auch kein dreifacher Espresso mehr :D)... Ergo muss ich eine Lösung finden, die ohne Schichtbetrieb auskommt. Selbst ein angemieteter Monitoring-Service bringt eigentlich nichts, weil die auch nichts anderes machen könnten als mich zu verständigen, und das geht per SMS sogar noch schneller (weil vollautomatisch).

Die Frage ist doch: wie groß ist der wirtschaftliche Schaden, den ein Ausfall des Dienstes über x Stunden verursacht (z. B. in welcher Höhe können meine Kunden laut SLA Schadenersatz fordern, welcher Umsatz geht mir verloren etc.). Dementsprechend habe ich dann auch eine Kalkulationsgrundlage, um festzulegen, wie viel Geld ich (für Personal, Hardware, Software...) in eine Ausfallsicherung stecken darf.

Als Low-Cost-Lösung kann die Antwort dann auch automatischer Neustart des Dienstes heißen - allerdings würde ich in diesem Fall wenigstens vor dem Neustart- oder Repair-Versuch noch Logs und Konfigurationsdateien (im Zweifel auch die Binaries) kopieren und mich auf jeden Fall benachrichtigen lassen, um anhand der Kopien dem Problem auf den Grund zu gehen.

Das wiederum darf aber nur Teil eines Verfügbarkeitskonzeptes sein, das sich eigentlich jeder Server-Betreiber zurecht legen sollte - auch reine Privat-Nutzer! Der Primitv-Fall könnte dort lauten: Bei Ausfall im worst case Neuinstallation und einspielen des Vortages-Backups. Ooops, gar kein Backup da? Tja, wohl vorher nicht über das Verfügbarkeitskonzept nachgedacht...
neffe
Posts: 25
Joined: 2002-08-14 17:44
Location: Berlin

Re: Skript um Apache automatisch neu zu starten?

Post by neffe »

Hallo,

ich habe ein redundantes Nagios System. Sollte ein Dienst ausgefallen sein, schreibt Nagios ein Eintrag in eine MySQL Datenbank.

Dagegen läuft auf dem zu überwachenden Server minütlich ein Cron Script welches die MySQL Datenbank abfragt und Dienste ggf. neu startet.

Eine Benachrichtigung seiten Nagios erfolgt trotzdem, so das man auf jeden Fall erkennt das da irgendwas vorgefallen sein muß.

Gruß Neffe