You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Christopher Gerharz <cc...@cgerharz.de> on 2004/05/08 11:51:24 UTC

Gekillter Apache?

Hallo, Liste!

Ich habe auf meinem Server ein Problem: In letzter Zeit h�ufen sich die
abgest�rzten Apache Prozesse (<defunct>).
Ich habe mir eine Log mit PIDs erstellen lassen und mir die PIDs der
abgest�rzten httpd-Prozesse notiert.

ALLE hatten als Request ein Bild (GET).

Ich setze Apache 1.3.29 auf Debian (Woody) ein.


Habt ihr eine Idee?
Killt der Apache die Childs vielleicht auf diese "unsaubere" Weise, wenn
sie ihre MaxRequests �berschritten haben?


Auszug aus httpd.conf:
<schnipp>
##
## httpd.conf -- Apache HTTP server configuration file
##

### Section 1: Global Environment
ServerType standalone
ServerRoot "/usr/local/apache"
PidFile /usr/local/apache/logs/httpd.pid
ScoreBoardFile /usr/local/apache/logs/httpd.scoreboard
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 10
KeepAliveTimeout 5
MinSpareServers 10
MaxSpareServers 15
StartServers 5
MaxClients 250
MaxRequestsPerChild 1
ExtendedStatus On
</schnipp>
MaxRequestPerChild ist sonst auf 10000, jetzt auf 1 zum Test (damit
jeder Request eine einzelne PID bekommt).
KeepAlive ist sonst an.


Gru�,
Chris



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: Gekillter Apache?

Posted by Christopher Gerharz <cc...@cgerharz.de>.
Kleiner Nachtrag:

Habe jetzt den Loglevel auf debug. Dabei ist mir folgendes aufgefallen:

> [Tue May 11 16:03:13 2004] [info] server seems busy, (you may need to
increase StartServers, or Min/MaxSpareServers), spawning 8 children,
there are 8 idle, and 26 total children
> [Tue May 11 16:03:47 2004] [info] [client 217.162.xxx.xxx]
(104)Connection reset by peer: client stopped connection before send
mmap completed

StartServers und Min/MaxSpareServers wird jetzt erh�ht...

Wei� jemand, was die zweite Meldung bedeutet, und ob diese was mit
meinem Problem zu tun haben kann?


Gru�,
Chris



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: Gekillter Apache?

Posted by Christopher Gerharz <cc...@cgerharz.de>.
Christopher Gerharz <ma...@cgerharz.de> schrieb:
> Hallo, Max!
>
> Danke f�r deine Antwort!
>
>
> Max Dittrich <ma...@t-online.de> schrieb:
>> Christopher Gerharz wrote:
>>> Hallo, Liste!
>>>
>>> Ich habe auf meinem Server ein Problem: In letzter Zeit h�ufen sich
>>> die abgest�rzten Apache Prozesse (<defunct>).
>>
>> Mit sowas hatte ich bisher noch keine Erfahrungen, aber ich
>> schick Dir
>> trotzdem mal meine ersten Gedanken.
>>
>> Werden die Zombies nach und nach von Apache eingesammelt und
>> verschwinden oder bleiben sie sehr lange bestehen?
>
> Verschwinden sofort. Ich hab nur mit einer hohen Refresh-Zeit bei top
> die M�glichkeit sie �berhaupt zu sehen.
> Auf der Status-Seite (/server-status) tauchen sie erst garnicht auf.
>
>>
>>> Ich habe mir eine Log mit PIDs erstellen lassen und mir die PIDs der
>>> abgest�rzten httpd-Prozesse notiert.
>>>
>>> ALLE hatten als Request ein Bild (GET).
>>
>> AFAIK ist das Logging die letzte Phase eines Requests. Also wenn ein
>> Child in einer fr�heren Phase "abst�rzt", d�rftest Du keinen Hinweis
>> auf den bearbeiteten Request im access_log finden.
>
> Als ich MaxRequestsPerChild hatte, standen auch die
> abgest�zten Prozesse
> drin (ich habe mir die PID mit reinschreiben lassen).
> Wenn das Logging die letzte Phase ist, kann ich mir das nur durch eine
> Sache erkl�ren: Sie st�rzen beim Loggen ab. Logdateien zu gro� oder
> sonst was...
>
>>
>>>
>>> Ich setze Apache 1.3.29 auf Debian (Woody) ein.
>>
>> Verwendest Du besondere Compilereinstellungen oder Apachemodule, die
>> nicht zur Standarddistribution geh�ren?
>
> <schnipp>
> debian:/usr/local/apache# bin/httpd -l
> Compiled-in modules:
>   http_core.c
>   mod_env.c
>   mod_log_config.c
>   mod_mime.c
>   mod_negotiation.c
>   mod_status.c
>   mod_info.c
>   mod_include.c
>   mod_autoindex.c
>   mod_dir.c
>   mod_cgi.c
>   mod_asis.c
>   mod_imap.c
>   mod_actions.c
>   mod_speling.c
>   mod_userdir.c
>   mod_alias.c
>   mod_rewrite.c
>   mod_access.c
>   mod_auth.c
>   mod_expires.c
>   mod_so.c
>   mod_setenvif.c
>   mod_ssl.c
>   mod_php4.c
> suexec: enabled; valid wrapper /usr/local/apache/bin/suexec <schnapp>
>
>
>>> Killt der Apache die Childs vielleicht auf diese "unsaubere" Weise,
>>> wenn sie ihre MaxRequests �berschritten haben?
>>
>> Glaube ich nicht. Das wird sicher sehr gezielt ablaufen (graceful).
>>
>> Hast Du den Loglevel mal auf Debug erh�ht und geschaut ob es da
>> zus�tzliche relevante Meldungen gibt? Vielleicht m�chtest Du
>> Apache als
>> Einzelinstanz mit '-X' starten (evtl. auf einem anderen Port
>> parallel) und ihn so lange besurfen bis er abst�rzt. Wenn Du
>> zeitgleich tcpdump mitlaufen l�sst (-w) kannst Du noch weitere
>> Informationen zum letzten Request erfahren.
>
> W�re eine Idee, m�chte ich aber nicht unbedingt, da der Server f�r's
> Webhosting eingesetzt wird. Da sind ausf�lle schlecht. Auf einem
> anderen Port w�re
> m�glich, aber da
> habe ich halt nicht so viele Requests, wie normal.
>
> Loglevel werde ich gleich erh�hen.
>
>
>
>
> Gru�,
> Chris
>
>

Hat niemand eine Idee?



Gru�,
Chris



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: Gekillter Apache?

Posted by Christopher Gerharz <cc...@cgerharz.de>.
Hallo, Max!

Danke f�r deine Antwort!


Max Dittrich <ma...@t-online.de> schrieb:
> Christopher Gerharz wrote:
>> Hallo, Liste!
>>
>> Ich habe auf meinem Server ein Problem: In letzter Zeit h�ufen sich
>> die abgest�rzten Apache Prozesse (<defunct>).
>
> Mit sowas hatte ich bisher noch keine Erfahrungen, aber ich
> schick Dir
> trotzdem mal meine ersten Gedanken.
>
> Werden die Zombies nach und nach von Apache eingesammelt und
> verschwinden oder bleiben sie sehr lange bestehen?

Verschwinden sofort. Ich hab nur mit einer hohen Refresh-Zeit bei top
die M�glichkeit sie �berhaupt zu sehen.
Auf der Status-Seite (/server-status) tauchen sie erst garnicht auf.

>
>> Ich habe mir eine Log mit PIDs erstellen lassen und mir die PIDs der
>> abgest�rzten httpd-Prozesse notiert.
>>
>> ALLE hatten als Request ein Bild (GET).
>
> AFAIK ist das Logging die letzte Phase eines Requests. Also wenn ein
> Child in einer fr�heren Phase "abst�rzt", d�rftest Du keinen
> Hinweis auf
> den bearbeiteten Request im access_log finden.

Als ich MaxRequestsPerChild hatte, standen auch die abgest�zten Prozesse
drin (ich habe mir die PID mit reinschreiben lassen).
Wenn das Logging die letzte Phase ist, kann ich mir das nur durch eine
Sache erkl�ren: Sie st�rzen beim Loggen ab. Logdateien zu gro� oder
sonst was...

>
>>
>> Ich setze Apache 1.3.29 auf Debian (Woody) ein.
>
> Verwendest Du besondere Compilereinstellungen oder Apachemodule, die
> nicht zur Standarddistribution geh�ren?

<schnipp>
debian:/usr/local/apache# bin/httpd -l
Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_info.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_speling.c
  mod_userdir.c
  mod_alias.c
  mod_rewrite.c
  mod_access.c
  mod_auth.c
  mod_expires.c
  mod_so.c
  mod_setenvif.c
  mod_ssl.c
  mod_php4.c
suexec: enabled; valid wrapper /usr/local/apache/bin/suexec
<schnapp>


>> Killt der Apache die Childs vielleicht auf diese "unsaubere" Weise,
>> wenn sie ihre MaxRequests �berschritten haben?
>
> Glaube ich nicht. Das wird sicher sehr gezielt ablaufen (graceful).
>
> Hast Du den Loglevel mal auf Debug erh�ht und geschaut ob es da
> zus�tzliche relevante Meldungen gibt? Vielleicht m�chtest Du
> Apache als
> Einzelinstanz mit '-X' starten (evtl. auf einem anderen Port parallel)
> und ihn so lange besurfen bis er abst�rzt. Wenn Du zeitgleich tcpdump
> mitlaufen l�sst (-w) kannst Du noch weitere Informationen zum letzten
> Request erfahren.

W�re eine Idee, m�chte ich aber nicht unbedingt, da der Server f�r's
Webhosting eingesetzt wird.
Da sind ausf�lle schlecht. Auf einem anderen Port w�re m�glich, aber da
habe ich halt nicht so viele Requests, wie normal.

Loglevel werde ich gleich erh�hen.




Gru�,
Chris



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: Gekillter Apache?

Posted by Max Dittrich <Ma...@t-online.de>.
Christopher Gerharz wrote:
> Hallo, Liste!
> 
> Ich habe auf meinem Server ein Problem: In letzter Zeit häufen sich die
> abgestürzten Apache Prozesse (<defunct>).

Mit sowas hatte ich bisher noch keine Erfahrungen, aber ich schick Dir 
trotzdem mal meine ersten Gedanken.

Werden die Zombies nach und nach von Apache eingesammelt und 
verschwinden oder bleiben sie sehr lange bestehen?

> Ich habe mir eine Log mit PIDs erstellen lassen und mir die PIDs der
> abgestürzten httpd-Prozesse notiert.
> 
> ALLE hatten als Request ein Bild (GET).

AFAIK ist das Logging die letzte Phase eines Requests. Also wenn ein 
Child in einer früheren Phase "abstürzt", dürftest Du keinen Hinweis auf 
den bearbeiteten Request im access_log finden.

> 
> Ich setze Apache 1.3.29 auf Debian (Woody) ein.

Verwendest Du besondere Compilereinstellungen oder Apachemodule, die 
nicht zur Standarddistribution gehören?

> 
> 
> Habt ihr eine Idee?
> Killt der Apache die Childs vielleicht auf diese "unsaubere" Weise, wenn
> sie ihre MaxRequests überschritten haben?

Glaube ich nicht. Das wird sicher sehr gezielt ablaufen (graceful).

Hast Du den Loglevel mal auf Debug erhöht und geschaut ob es da 
zusätzliche relevante Meldungen gibt? Vielleicht möchtest Du Apache als 
Einzelinstanz mit '-X' starten (evtl. auf einem anderen Port parallel) 
und ihn so lange besurfen bis er abstürzt. Wenn Du zeitgleich tcpdump 
mitlaufen lässt (-w) kannst Du noch weitere Informationen zum letzten 
Request erfahren.

gruss,
   .max



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: Gekillter Apache?

Posted by Christopher Gerharz <cc...@cgerharz.de>.
Jens Simmoleit <ma...@anymotion.de> schrieb:
> Hi Chris,
>
>>
>> Nein, keine Firewall.
>> Werde mir aber die IPs auf jeden Fall ansehen und ggf. mal mit
>> einigen Providern telefonieren :D
>>
>
> wenn du dich f�r eine interessierst, versuchs hiermit www.ipcop.org
> das Ding sit 4free und echt gut, benutze mittlerweile 3 St�ck davon
> :-)

Hey, danke f�r den Tipp.
Werde ich mir auf jeden Fall mal ansehen...

>
> Es gibt auch ne richtig gute Userliste dort, nur die Beschreibungen
> sind teilweise etwas veraltet :-/
>
>
>> Also, nochmal vielen Dank f�r die Antwort.
>>
>
> Gern geschehen....
> Simmel


Gru�,
Chris



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


AW: Gekillter Apache?

Posted by Jens Simmoleit <si...@anymotion.de>.
Hi Chris,

>
> Nein, keine Firewall.
> Werde mir aber die IPs auf jeden Fall ansehen und ggf. mal mit einigen
> Providern telefonieren :D
>

wenn du dich für eine interessierst, versuchs hiermit www.ipcop.org das Ding
sit 4free und echt gut, benutze mittlerweile 3 Stück davon :-)

Es gibt auch ne richtig gute Userliste dort, nur die Beschreibungen sind
teilweise etwas veraltet :-/


> Also, nochmal vielen Dank für die Antwort.
>

Gern geschehen....
Simmel


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


RE: Gekillter Apache?

Posted by Christopher Gerharz <cc...@cgerharz.de>.
Jens Simmoleit <ma...@anymotion.de> schrieb:
>
> Hmh,
>
> benutzt du vll PHP4.X und irgendein Board auf PHP-Basis mit
> Sql auf deiner
> Seite? Soweit ich weiss gibt es wohl unter php Fehler
> �hnlicher Art, wenn
> jemand den Server "hackt", man kann durch GET-Anfragen auf irgendeinen
> Inhalt im Web-Browser Boards regelrecht DOS'en damit (dynamischer
> Hack)..... allerdings nicht bei allen. Wie das genau funktioniert
> weiss
> ich auch nicht,
> allerdings habe ich so einen Hack selbst miterlebt. Ein
> wirklichen Zugriff
> auf den Server bekommt man allerdings nicht, aber man kann
> die Leistung
> schw�chen oder aber den Server komplett ausser Betrieb setzen (DOS).

Ja, wir hosten viele phpBB-Foren. Aber dass diese _andauernd_ (und damit
meine ich wirklich alle 5 sekunden) gehackt werden, ist doch _etwas_
unwahrscheinlich, oder?
Und au�erdem (hatte ich schon geschrieben) waren alle Requests der
abgest�rzten Prozesse Bilder...
Aber trotzdem Danke f�r die Antwort!!

Was ich aber eingestehen muss: Die phpBBs sind zum Teil veraltet -
gerade seit dem 2.0.4 wurden viele Sicherheitsl�cken bekannt (auch
einiges mit GET-Requests).


> Nur so eine Idee.... Falls du ne Firewall benutzt check mal
> die Logs, vll
> findet sich ja was? Zu den Zeiten der GET Anfragen waren das vll immer
> �hnliche IPS die das angefragt haben? Wenn ja, solltest du
> mal ein Auge
> drauf werfen....

Nein, keine Firewall.
Werde mir aber die IPs auf jeden Fall ansehen und ggf. mal mit einigen
Providern telefonieren :D

>
> Falls das mit php und mysql nicht zutrifft, dann vergiss was
> ich geschrieben
> habe ;-)
>

Trifft aber zu ;)
Also, nochmal vielen Dank f�r die Antwort.

> Simmel
>


Gru�,
Chris



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


AW: Gekillter Apache?

Posted by Jens Simmoleit <si...@anymotion.de>.
>
> Hallo, Liste!
>
> Ich habe auf meinem Server ein Problem: In letzter Zeit häufen sich die
> abgestürzten Apache Prozesse (<defunct>).
> Ich habe mir eine Log mit PIDs erstellen lassen und mir die PIDs der
> abgestürzten httpd-Prozesse notiert.
>
> ALLE hatten als Request ein Bild (GET).
>
> Ich setze Apache 1.3.29 auf Debian (Woody) ein.
>
>
> Habt ihr eine Idee?
> Killt der Apache die Childs vielleicht auf diese "unsaubere" Weise, wenn
> sie ihre MaxRequests überschritten haben?
>
>
> Auszug aus httpd.conf:
> <schnipp>
> ##
> ## httpd.conf -- Apache HTTP server configuration file
> ##
>

Hmh,

benutzt du vll PHP4.X und irgendein Board auf PHP-Basis mit Sql auf deiner
Seite? Soweit ich weiss gibt es wohl unter php Fehler ähnlicher Art, wenn
jemand den Server "hackt", man kann durch GET-Anfragen auf irgendeinen
Inhalt im Web-Browser Boards regelrecht DOS'en damit (dynamischer Hack).....
allerdings nicht bei allen. Wie das genau funktioniert weiss ich auch nicht,
allerdings habe ich so einen Hack selbst miterlebt. Ein wirklichen Zugriff
auf den Server bekommt man allerdings nicht, aber man kann die Leistung
schwächen oder aber den Server komplett ausser Betrieb setzen (DOS).

Nur so eine Idee.... Falls du ne Firewall benutzt check mal die Logs, vll
findet sich ja was? Zu den Zeiten der GET Anfragen waren das vll immer
ähnliche IPS die das angefragt haben? Wenn ja, solltest du mal ein Auge
drauf werfen....

Falls das mit php und mysql nicht zutrifft, dann vergiss was ich geschrieben
habe ;-)

Simmel



--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------