Portál AbcLinuxu, 30. dubna 2025 11:39
Jelikož jsem si poslední dobou hrál s MRTG, a vymýšlel, co by to tak ještě mohlo monitorovat, napadlo mě: webserver!. Bohužel, jak jsem záhy zjistil, Lighttpd neumožňuje přístup ke statistikám pomocí SNMP a tak jsem přemýšlel, jak na to.
Volba zdroje dat byla jednoduchá - nic jiného krom access.log(u) se nedalo použít. Vzhledem k tomu, že můj routeroserver běží na Celeronu 300MHz, 256MB RAM a 1GB disk a žádný web krom seznamu DHCP klientů na něm není, nehrozí nutnost parsování desítek/stovek MB dat. (Tak mě napadá, proč já tu statistiku vlastně dělám:)
Programovací(skriptovací) jazyk jsem také nevybíral dlouho... BASH se s desetinnými čísly moc nekamarádí a nic jiného krom BASHe a PHP neumím. Takže jsem otevřel mcedit a vrhnul se do psaní "kódu". Pokud máte zájem, tady je výsledek.
A co že to vlastně dělá? Na stdout (tzn. pro MRTG) vytiskne 2 řádky
Syntaxe pro MRTG vypadá následovně:
Target[lighttpd]: `/cesta/k/php/skriptu` Options[lighttpd]: gauge, noinfo, growright Title[lighttpd]: Lighttpd hits PageTop[lighttpd]: <h1>Lighttpd hits</h1> YLegend[lighttpd]: hits / sec ShortLegend[lighttpd]: hits LegendI[lighttpd]: 5 min. average: LegendO[lighttpd]: 15 min. average Legend1[lighttpd]: Lighttpd hits (5 min. average) Legend2[lighttpd]: Lighttpd hits (15 min. average)
PS: Možná bude potřeba upravit cestu k access.log - hned třetí řádek kódu
PPS: Připomínky/kritiku rád uvítám v diskuzi :)
Tiskni
Sdílej:
bc
si BASH s float-pointing aritmetikou rozumí celkem hezky ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.