Apache blijft nieuwe processen starten

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 21:58

Jazzy

Moderator SSC/PB

Moooooh!

Topicstarter
Ik draai een eenvoudig LAMP servertje in Azure om een phpBB forum te hosten. Het OS is Ubuntu 18.04.4 LTS met Apache 2.4.29 en MySQL 5.7. Probleem is dat phpBB sinds een tijdje een foutmelding laat zien:
SQL ERROR [ mysqli ]Too many connections [1040]
De load noch de capaciteit van de server is veranderd. Het aantal verzoeken in de Apache access.log laat niets vreemds zien, er zit ruim tijd tussen de verschillende verzoeken dus het lijkt er niet op dat het een DOS attack is.

Ik heb poort 80 even dicht gezet en zie dat er 11 Apache processen draaien. Als ik deze open zet dan heb ik na 30 seconden al meer dan 140 Apache processen draaien!

Mysql error.log geeft niets aan, ook in Apache error.log totaal geen aanknopingspunten. Hoe vind ik uit waarom er zo veel Apache processen starten?

[ Voor 29% gewijzigd door Jazzy op 21-04-2020 13:00 ]

Exchange en Office 365 specialist. Mijn blog.

Alle reacties


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 19-09 21:26

DataGhost

iPL dev

Een Apache-proces maakt doorgaans niet uit zichzelf verbinding met MySQL. Wel komen opgevraagde pagina's pas na het afsluiten van het request in je access log. Als je een pagina hebt die verbindt met MySQL en daarna sleep(300) oid doet, komt die pas na 5 minuten in je access log te staan maar houdt wel de hele tijd een verbinding open (en kost een Apache-proces). Ook zou iets met persistent verbindingen roet in het eten kunnen gooien. Kijk in MySQL met SHOW PROCESSLIST eens wat er allemaal aan verbindingen openstaat, dan kan je zien waar dat door komt (door Apache of iets anders). Ook kan je met mod_status in Apache kijken waar al die processen voor zijn, dan zie je ook live welk request ze afhandelen bijvoorbeeld.

Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Kijk in je mysql logs voor het probleem.

Maak je niet druk, dat doet de compressor maar


Acties:
  • +1 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 21:58

Jazzy

Moderator SSC/PB

Moooooh!

Topicstarter
Had per ongeluk al gepost terwijl ik nog aan het schrijven was (kan iemand misschien uitleggen hoe dit forum werkt? :)) dus net nog even wat aangevuld.

Exchange en Office 365 specialist. Mijn blog.


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Apache forkt zichzelf per connectie, dus 140 processen betekent ~140 verbindingen. Heb je je access+error logs al eens (live) gemonitord (tail -f /path/to/access.log /path/to/erro.log)? Misschien wordt je gewoon aangevallen.

Maar als de load gewoon is (wow, popiejopie website! :*)), kan het ook zijn dat je de maximum aantal connecties op MySQL gewoon moet verhogen.

[ Voor 24% gewijzigd door Room42 op 21-04-2020 13:05 ]

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 20-09 19:18
Poort 80? En phpBB? Of kunnen users ook nog inloggen via ssl? Verder show processlist inderdaad zoals reeds vermeld.

Verder, weet je zeker dat er niets "extra's" van buiten komt vandaag, gezien het verschil tussen poort open en dicht.

phpBB is een bekend aanvals target, als je 1x in beeld bent dan blijft het komen. Fail2ban kan je mogelijk helpen hiermee.

[ Voor 55% gewijzigd door pennywiser op 21-04-2020 13:09 ]


Acties:
  • 0 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 21:58

Jazzy

Moderator SSC/PB

Moooooh!

Topicstarter
Room42 schreef op dinsdag 21 april 2020 @ 13:03:
Apache forkt zichzelf per connectie, dus 140 processen betekent ~140 verbindingen. Heb je je access+error logs al eens (live) gemonitord (tail -f /path/to/access.log /path/to/erro.log)? Misschien wordt je gewoon aangevallen.

Maar als de load gewoon is (wow, popiejopie website! :*)), kan het ook zijn dat je de maximum aantal connecties op MySQL gewoon moet verhogen.
Dat dacht ik ook, maar als ik naar de timestamps in beide logfiles kijk dan zie ik niets bijzonders. Live troubleshooten is een beetje lastig trouwens omdat de CPU load naar 100% schiet.

En zoals ik al schreef, de load van de server is niet veranderd. Aan de hand van het aantal requests dat ik in error.log en access.log zie heb ik geen enkele reden om aan te nemen dat ik 'aangevallen' word.

Exchange en Office 365 specialist. Mijn blog.


Acties:
  • 0 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
Jazzy schreef op dinsdag 21 april 2020 @ 13:09:
Live troubleshooten is een beetje lastig trouwens omdat de CPU load naar 100% schiet.
En zoals ik al schreef, de load van de server is niet veranderd.
Come again? :? Het is dus normaal dat ie naar 100% schiet?

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • pennywiser
  • Registratie: November 2002
  • Laatst online: 20-09 19:18
Kijk je wel naar de goede log? In je Apache vhost staat de log die je moet hebben als het netjes is geconfigureerd.

Acties:
  • 0 Henk 'm!

  • AW_Bos
  • Registratie: April 2002
  • Laatst online: 00:03

AW_Bos

Liefhebber van nostalgie... 🕰️

Jazzy schreef op dinsdag 21 april 2020 @ 13:01:
Had per ongeluk al gepost terwijl ik nog aan het schrijven was (kan iemand misschien uitleggen hoe dit forum werkt? :)) dus net nog even wat aangevuld.
Je hebt 14k aan berichten? 8)7

Telecommunicatie van vroeger
🚅Alles over spoor en treintjes


Acties:
  • 0 Henk 'm!

  • TwArbo
  • Registratie: Juli 2012
  • Niet online
Ik zou even tail -f doen op je access_log. Kan zijn dat er een bot langskomt.

[ Voor 11% gewijzigd door TwArbo op 22-04-2020 15:45 ]


Acties:
  • +1 Henk 'm!

  • Room42
  • Registratie: September 2001
  • Niet online
AW_Bos schreef op woensdag 22 april 2020 @ 15:33:
[...]

Je hebt 14k aan berichten? 8)7
Was ma'r g'apje.

"Technological advancements don't feel fun anymore because of the motivations behind so many of them." Bron


Acties:
  • 0 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 21:58

Jazzy

Moderator SSC/PB

Moooooh!

Topicstarter
DataGhost schreef op dinsdag 21 april 2020 @ 12:54:
Kijk in MySQL met SHOW PROCESSLIST eens wat er allemaal aan verbindingen openstaat, dan kan je zien waar dat door komt (door Apache of iets anders).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
mysql> SHOW PROCESSLIST;
+-----+-----------+-----------+--------------+---------+------+----------+------------------+
| Id  | User      | Host      | db           | Command | Time | State    | Info             |
+-----+-----------+-----------+--------------+---------+------+----------+------------------+
| 203 | myuser | localhost | NULL         | Sleep   |  228 |          | NULL             |
| 204 | myuser | localhost | NULL         | Query   |    0 | starting | SHOW PROCESSLIST |
| 426 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 433 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 435 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 437 | myuser | localhost | mydb | Sleep   |    3 |          | NULL             |
| 441 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 444 | myuser | localhost | mydb | Sleep   |    3 |          | NULL             |
| 452 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 455 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 457 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 460 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 461 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 462 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 464 | myuser | localhost | mydb | Sleep   |    3 |          | NULL             |
| 465 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 466 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 467 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 468 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 469 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 470 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 473 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 474 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 475 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 477 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 478 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 479 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 480 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 481 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 482 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 483 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 485 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 486 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 487 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 488 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 489 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 490 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 491 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 492 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 493 | myuser | localhost | mydb | Sleep   |    3 |          | NULL             |
| 494 | myuser | localhost | mydb | Sleep   |    3 |          | NULL             |
| 495 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 496 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 497 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 498 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 499 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 500 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 501 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 502 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 503 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 504 | myuser | localhost | mydb | Sleep   |    2 |          | NULL             |
| 505 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
| 506 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 507 | myuser | localhost | mydb | Sleep   |    1 |          | NULL             |
| 508 | myuser | localhost | mydb | Sleep   |    0 |          | NULL             |
+-----+-----------+-----------+--------------+---------+------+----------+------------------+
55 rows in set (0.00 sec)

mysql>

Wordt van mysql nog weinig wijzer. Ik kijk nog even verder.

Exchange en Office 365 specialist. Mijn blog.


Acties:
  • 0 Henk 'm!

  • Jazzy
  • Registratie: Juni 2000
  • Laatst online: 21:58

Jazzy

Moderator SSC/PB

Moooooh!

Topicstarter
Vandaag weer even mee aan de slag gegaan. Omdat het toch al hoog tijd was heb ik eerst Ubuntu naar 20.04 LTS bijgewerkt. Toen kon ik eerst de nieuwe versie van Putty downloaden omdat die geen geldige SSH key exchange methode meer kon uitwisselen met de server. Vervolgens twee entries uit de MySQL config moeten halen zodat MySQL wilde starten. Toen door met Apache, die probeerde nog een PHP 7.2 module te laden terwijl het systeem inmiddels PHP 7.4 had, etc. Echt, updaten van zo'n server gaat nooit makkelijk.

Al met al weer een operationele server. En gek genoeg is het oorspronkelijke probleem er op dit moment niet meer dus dat is mooi meegenomen.

Exchange en Office 365 specialist. Mijn blog.

Pagina: 1