Einfache Apache Error Log Analyse

Einfache Apache Error Log Analyse

Bei einem kleinen Projekt was noch bei mir läuft, wollte ich mal schauen, warum die Error Logs so aufgebläht sind. Doch wie analysiert man am einfachsten die Logs?

Auf Serverfault fand ich nun eine nutzbare Lösung ohne viele extra Tools und nur mit Boardmitteln.

sed 's^\[.*\]^^g' error.log | sed 's^\, referer: [^\n]*^^g' | sort | uniq -c | sort -n

Diese Befehlskombination ermöglicht es mir, die Logs zu gruppieren, zu zählen und zu sortieren. Dabei bin ich auf einige Fehler gestoßen.

 39  AH01071: Got error 'PHP message: PHP Warning:  array_search() expects parameter 2 to be array, null given in /var/www/domain/httpdocs/postsystem/PostsTemplateFacade.class.php on line 445\nPHP message: PHP Warning:  array_search() expects parameter 2 to be array, null given in /var/www/domain/httpdocs/postsystem/PostsTemplateFacade.class.php on line 445\n'
    127  AH01071: Got error 'PHP message: PHP Warning:  A non-numeric value encountered in /var/www/domain/httpdocs/file.php on line 224\n'
    190  AH01071: Got error 'PHP message: PHP Warning:  A non-numeric value encountered in /var/www/domain/httpdocs/file.php on line 442\n'
    306  AH01071: Got error 'PHP message: PHP Warning:  A non-numeric value encountered in /var/www/domain/httpdocs/file.php on line 224\nPHP message: PHP Warning:  mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/domain/httpdocs/file.php on line 2652\nPHP message: PHP Warning:  mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /var/www/domain/httpdocs/file.php on line 26\n'
    582  AH01071: Got error 'PHP message: PHP Warning:  mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/domain/httpdocs/file.php on line 2652\nPHP message: PHP Warning:  mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /var/www/domain/httpdocs/file.php on line 26\n'
   6803  AH01071: Got error 'PHP message: PHP Warning:  Use of undefined constant zeit - assumed 'zeit' (this will throw an Error in a future version of PHP) in /var/www/domain/httpdocs/file.php on line 2983\nPHP message: PHP Warning:  setcookie() expects parameter 3 to be integer, string given in /var/www/domain/httpdocs/file.php on line 2983\n'

Das Ganze ist nun etwas anonymisiert aus einem PHP 4 Projekt das nun auf PHP 8 läuft. Wie man sieht, ist der Code katastrophal und bringt viele Errors ans Tageslicht.

Mehr als 100 Fehler am Tag sollte ich dann doch fixen, insbesondere der mit fast 7000 Meldungen auftretende Fehler bläht die Logs.