November 13, 2022

Парсер логов Apache на минималках

Парсер логов Apache

При парсинге логов важно понимать что их можно настроить и получать только ту информацию что нам надо, но если лог дефолтный, то вам подойдёт вот этот скрипт ниже.

$f = "other_vhosts_access.log";
$s = file($f);
foreach ($s as $l) {
	$a = explode(" ",$l);
	$domen = preg_replace("#\:\d+$#", "", $a[0]);
	$port = preg_replace("#^.+\:#", "", $a[0]);
	$ip = $a[1];
	$time = str_replace("[","",$a[4]); // [13/Nov/2022:08:31:47 +0300] a4-a5
	$meth = str_replace("\"","",$a[6]); // a6
	$uri = $a[7];
	$code = $a[9];
	$size = $a[10];
	$ref = str_replace("\"","",$a[11]); // referrer
	$ua = rtrim(@implode(" ", array_slice($a, 12) )); $ua = str_replace("\"","",$ua); // useragent
	@$A[$ua]++;
}
arsort($A);
print_r($A);

Грубо говоря, вам остается лишь выбрать какие параметры хотите получить.