Apache hängt sich auf

dms281

Registered User
Hallo zusammen,

Ich habe einen kleinen vServer von 1und1. Ich betreibe ein paar kleine Webseiten, und einen TeamSpeak² Server darauf. Seit ein paar Tagen habe ich ständig dass Problem, dass meine Webseiten nicht mehr erreichbar sind. Wenn ich den Apache restarte, läuft alles wieder für 15 - 30 Minuten, dann fängt das ganze von vorne an. Am vServer wurde seit langer Zeit nichts verändert oder hinzugefügt, daher gehe ich nicht von einem Fehler meinerseits aus.

Ich habe von der ganzen Materie nicht viel Ahnung, aber ich hoffe hier jetzt trotzdem mal von Wanungen wie "Ein Server ist kein Spielzeug" oder "Lerne erst mal Linux" verschont bleibe.

Die error.log des Apache gibt mit folgende Fehler aus, bevor er abschmiert:

Code:
[Thu Jun 12 20:12:08 2008] [error] server reached MaxClients setting, consider raising the MaxClients setting
[Thu Jun 12 20:24:16 2008] [error] [client 87.106.217.99] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)

Kann mir irgendwer nen Tipp geben, was ich dagegen tun kann?
 
Wenn der Apache vorschlägt, die MaxClients in der Konfiguration zu erhöhen, könntest Du das ja mal machen und schauen, ob es besser wird...

Ansonsten schadet es auch nichts, mal nach dem Ressourcen-Verbrauch Deines Servers zu schauen: 'cat /proc/user_beancounters'
 
Ich habe von der ganzen Materie nicht viel Ahnung, aber ich hoffe hier jetzt trotzdem mal von Wanungen wie "Ein Server ist kein Spielzeug" oder "Lerne erst mal Linux" verschont bleibe.
Hmm... das ist schon nicht mehr fahrlässig, sondern Vorsatz. SCNR.

Da würde ich den Befehlt init 0 vorschlagen, damit der apache keine Probleme mehr macht. :-)
 
Was den Recourcenverbrauch angeht, hat er mir dies ausgespuckt.

Code:
Version: 2.5                                                                                                                     
       uid  resource                     held              maxheld              barrier                limit              failcnt
  42946059: kmemsize                  6699701              6699701             31457280             34603008                    0
            lockedpages                     0                    0                  512                  512                    0
            privvmpages                 95349                95349               327680               329728                    0
            shmpages                    10144                10144                32768                32768                    0
            dummy                           0                    0                    0                    0                    0
            numproc                        89                   89                  128                  128                 2430
            physpages                   20733                20733           2147483647           2147483647                    0
            vmguarpages                     0                    0                65536           2147483647                    0
            oomguarpages                20733                20733                65536           2147483647                    0
            numtcpsock                     49                   49                  720                  720                    0
            numflock                        7                    8                  376                  413                    0
            numpty                          1                    1                   32                   32                    0
            numsiginfo                      0                    0                  512                  512                    0
            tcpsndbuf                  440888               466352              3440640              5406720                    0
            tcprcvbuf                  419592               419592              3440640              5406720                    0
            othersockbuf                35160                35968              2252160              4194304                    0
            dgramrcvbuf                     0                 1320               524288               576716                    0
            numothersock                   30                   30                  720                  720                    0
            dcachesize                      0                    0              5242880              5767168                    0
            numfile                      3088                 3088                 8192                 8192                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            dummy                           0                    0                    0                    0                    0
            numiptent                      83                   83                  200                  205                    0

Kann mir nicht erklären, warum auf einmal die Probleme anfangen. Der Server wurde wie gesagt seit langer Zeit nicht verändert und auch der Traffic der Webseiten hat sich wenn überhaupt nur unwesentlich gesteigert. Für die paar Kleinigkeiten die wir hier am laufen haben sollte der Server mehr als ausreichen.

Hmm... das ist schon nicht mehr fahrlässig, sondern Vorsatz. SCNR.

Danke, damit hast Du mir sicherlich weitergeholfen und einen unschätzbaren Beitrag für mehr Sicherheit im Netz geleistet. :rolleyes:

Leider hat mich die "Erfahrene Person", welche den Server damals aufgesetzt und konfiguriert hat damit sitzen lassen und nun habe ich nur 2 Möglichkeiten:

1. Die Community aufgeben und alles löschen was über Jahre aufgebaut wurde.
2. Mich durchzubeissen und zu versuchen das Beste aus der Lage zu machen.

Da für mich der 1. Punkt nicht in Frage kommt, versuche ich halt mir in der wenigen Freizeit die ich habe so viel wie möglich des notwendigen Wissens anzueignen bzw. mir bei Leuten mit Erfahrung entsprechend Rat und Hilfe zu suchen. Fahrlässig wäre es denke ich eher, wenn ich ohne jemanden zu fragen und ohne Ahnung einfach mal wild an den configs des Servers rumbasteln würde :eek:
 
Hi,
gucke mal in der Datei /etc/apache2/apache2.conf. Da findest du die MaxClients, die warscheinlich auf 150 stehen. Du könntest das mal hochstellen. Apache neustarten nicht vergessen.
Nützliche Informationen erhälst du auf: Hochleistungs-Apache: Performance-Tuning - huschi.net .
Aber bist du dir sicher das dein Apache abschmiert? Unter abschmieren verstehe ich, er beendet sich und ist dann nicht mehr ansprechbar und muss neugestartet werden. Das sollte eigentlich nicht passieren, und auch wenn die MaxClients überschritten werden, dann werden weitere Anfragen in eine Warteschlange gelegt und nacheinander abgearbeitet.

Auch empfehle ich dir:
Code:
apt-get update
Code:
apt-get upgrade
, dringends zu machen. Falls du Debian hast, solltest du auch deine Serverschlüssel noch austauschen, falls du das noch nicht gemacht hast.

Das einfachste wäre, du fragst nach einem Serveradmin. Oder wenn du mal hier in die Runde fragst, machen dir bestimmt auch welche ein Managed Angebot.

Mit freundlichen Grüßen
Flobbie
 
1. Die Community aufgeben und alles löschen was über Jahre aufgebaut wurde.
2. Mich durchzubeissen und zu versuchen das Beste aus der Lage zu machen.
3. Managed Server holen oder Admin anheuern

in der wenigen Freizeit die ich habe
Ist eigentlich schon ein Ausschlusskriterium. Du musst Deinen Server im Auge haben, Dich mit Secruity-Updates beschäftigen, Software updaten etc. Das verbrät einen Menge Zeit.
Keiner verlangt, dass Du die Community aufgibst, aber Du hast auch Pflichten gegenüber der Community, wie z.B. den Schutz der Userdaten. Wie willst Du den Datenschutz sicherstellen, wenn Du keine Ahnung hast, wie ein Server funktioniert und wo überall Sicherheitslücken auftauchen?

Meinst Du Wanungen wie "Ein Server ist kein Spielzeug" werden nur gepostet, um Anfänger zu ärgern? Da wird sicherlich etwas dahinterstecken, oder meinst Du nicht?

Zu Deinem zweiten Problem:
failcnt bei numprocs ->
/proc/user_beancounters - OpenVZ Wiki
UBC primary parameters - OpenVZ Wiki
 
Er hat die Kiste jetzt schon, also denke ich ist etwas Schützehilfe besser als ihm den Kasten wieder auszureden :p Aber bitte tuh uns den gefallen, und lass den Server nicht so verstauben, Du schreibst ja selber dass Du ziemlich lange nichts daran gemacht hast, und das ist definitiv fahrlässig.

lg Basti
 
Hi,
gucke mal in der Datei /etc/apache2/apache2.conf. Da findest du die MaxClients, die warscheinlich auf 150 stehen. Du könntest das mal hochstellen. Apache neustarten nicht vergessen.

Die MaxClients habe ich bereits hochgesetzt, allerdings ohne Erfolg.

Aber bist du dir sicher das dein Apache abschmiert? Unter abschmieren verstehe ich, er beendet sich und ist dann nicht mehr ansprechbar und muss neugestartet werden. Das sollte eigentlich nicht passieren, und auch wenn die MaxClients überschritten werden, dann werden weitere Anfragen in eine Warteschlange gelegt und nacheinander abgearbeitet.

Zumindest funktioniert nach einem etc/init.d/apache2 restart wieder alles einwandfrei für einen gewissen Zeitraum. Danach finde ich in der /var/log/apache2/error_log wieder Fehler und das Speil fängt von vorne an.

Letzte Einträge:
Code:
[Fri Jun 13 07:03:30 2008] [notice] mod_python: Creating 20 session mutexes based on 20 max processes and 0 max threads.
[Fri Jun 13 07:03:30 2008] [notice] Apache/2.0.53 (Linux/SUSE) configured -- resuming normal operations
[Fri Jun 13 07:03:33 2008] [notice] Graceful restart requested, doing restart
[Fri Jun 13 07:03:33 2008] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?
[Fri Jun 13 07:03:33 2008] [warn] RSA server certificate CommonName (CN) `plesk' does NOT match server name!?
[Fri Jun 13 07:03:33 2008] [notice] mod_python: Creating 20 session mutexes based on 20 max processes and 0 max threads.
[Fri Jun 13 07:03:33 2008] [notice] Apache/2.0.53 (Linux/SUSE) configured -- resuming normal operations
[Fri Jun 13 07:03:34 2008] [error] [client 88.131.106.12] File does not exist: /srv/www/vhosts/default/htdocs/robots.txt
[Fri Jun 13 07:03:34 2008] [error] [client 88.131.106.12] File does not exist: /srv/www/vhosts/default/htdocs/infusions
[Fri Jun 13 07:42:48 2008] [error] server reached MaxClients setting, consider raising the MaxClients setting

Das einfachste wäre, du fragst nach einem Serveradmin. Oder wenn du mal hier in die Runde fragst, machen dir bestimmt auch welche ein Managed Angebot.

Managed mag sicher der sicherste Weg sein, den ich aber zur Zeit finanziell nicht realisieren kann. Trotzdem versuche ich natürlich weiterhin jemanden zu organisieren, der dabei helfen kann und das nötige Wissen hat.

Meinst Du Wanungen wie "Ein Server ist kein Spielzeug" werden nur gepostet, um Anfänger zu ärgern? Da wird sicherlich etwas dahinterstecken, oder meinst Du nicht?

Mir ist durchaus bewusst welche Gefahren das Ganze mit sich bringt. Aber sei mir nicht böse, konstruktive Hilfe von erfahrenen Leuten in Foren wie diesem trägt sicherlich deutlich mehr zu sicheren Servern bei wie ständigen Ratschläge ála "Lass da mal die Finger weg!". Es gibt nunmal Leute wie mich, die da einfach in der Klemme sitzen und auch andere die sich auf jeden Fall einen Server holen, wenn sie das wollen. Derartige Ratschläge halten da auch nicht von ab. Natürlich wird niemand ehrenamtlich einen perfekten 24 Std. Noob-Support anbieten können und wollen. Trotzdem gibt es hier denke ich in erster Linie 2 Szenarien:

1. Ich habe einen Server und bekomme von den Erfahrenen "Profis" nur Kommentare wie "Lass das", "Ein Server ist kein Spielzeug" usw...

Fazit: Ich denk mir OK, dann mach ich eben das beste draus und konfigurier einfach mal drauf los. Wird schon gut gehen. In diesem Fall habt ihr recht, dann gibt es wieder mal eine unsichere Spam Schleuder mehr im Netz.

2. Auch die "Profis" erinnern sich daran dass sie mal angefangen haben und versuchen (auch wenns schwer fällt) dem Anfänger weiterzuhelfen soweit es geht.

Fazit: Der Anfänger macht sich wenigstens Gedanken über seine Konfiguration, und kann seinen Server mit der Unterstützung wenigstens halbwegs "sicher" betreiben. Ausserdem scheut er dann auch nicht eher mal zu fragen als ohne Ahnung einfach mal drauf los zu tippen.

Und wenn jetzt mal alle ehrlich sind:

Einen "Perfekt" abgesicherten Server gibt es nicht. Selbst ein Profi mit Jahrelanger Erfahrung kann nicht alle Lücken kennen und schliessen. Klar kann man mit Erfahrung das Risiko auf einen überschaubaren Bereich eingrenzen, aber es gibt immer jemanden der schlauer ist und für jedes Schloss findet sich der passende Schlüssel ;)

Er hat die Kiste jetzt schon, also denke ich ist etwas Schützehilfe besser als ihm den Kasten wieder auszureden
Danke! :)

Aber bitte tuh uns den gefallen, und lass den Server nicht so verstauben, Du schreibst ja selber dass Du ziemlich lange nichts daran gemacht hast, und das ist definitiv fahrlässig.

Ich werde mir alle Mühe geben!


Ach ja:
Bei dem Server handelt es sich um SuSe 9.3 mit Plesk, PHP 4.3.10.
 
Last edited by a moderator:
Schau Dir mal die Dokumentation zu dem bei Dir eingesetzten Apache-Modul an: prefork - Apache HTTP Server oder worker - Apache HTTP Server . Da steht auch beschrieben, was es mit den MaxClients auf sich hat. Da Dein vServer allerdings maximal 128 Prozesse gleichzeitig zulässt, bedeutet das, dass Du den MaxClients-Wert drastisch reduzieren musst, damit Anfragen in die Warteschlange eingereiht werden. Dadurch wird zwar alles langsamer, aber der Hauptprozess versucht nicht ständig neue Prozesse zu erzeugen, was ja nicht funktioniert, da Du Dein Limit schon ausgereizt hast. Somit verhinderst Du, dass der Webserver sich aufhängt.

Langfristig wirst Du erkennen, dass Dein vServer-Modell zu klein für die gestellten Aufgaben ist. Insofern stellt sich die Frage, ob Du nicht auf ein größeres System wechseln musst. Das ist allerdings teurer, hätte aber den Vorteil, dass Du dann auch gleich eine aktuelle Betriebsytem-Version installieren kannst -- für SuSE 9.3 gibt es schon seit bald 2 Jahren keine Sicherheitsupdates mehr, und für das manuelle Update sind schon erweiterte Kenntnisse notwendig (für den Umzug allerdings auch). Mit anderern Worten, Du sitzt in einer Zwickmühle...
 
Für die bisherigen Antworten möchte ich mich erst einmal herzlich bedanken!

Das herabsetzen der MaxClients hat leider auch nichts bewirkt. Ich denke das Hauptproblem liegt daran, dass es mir einfach nicht gelingt die Ursache für das regelmässige Versagen des Apache zu finden. Sobald die Webseiten nicht mehr erreichbar sind, bewirkt auch ein /etc/init.d/apache2 server-status rein garnichts.

In der error_log kann ich leider auch nichts erkennen, was der Auslöser sein könnte. Gibt es andere Log Dateien, in denen ich einen Hinweis finden könnte?
 
Back
Top