Using mrtg to monitor squid
Squid 2.3 knows \s-1SNMP\s0 and you can therefore use mrtg to monitor it quite easily.
I have made some modifications to mrtg which simplify this. My work is based on earlier modification made by: [email protected] and [email protected].
I added new code for displaying correct units to the previous patches \*(L"perminute\*(R" and \*(L"perhour\*(R" (\*(L"option\*(R" tokens), which allows other measurement in addition to \*(L"persecond\*(R".
Then I created a new option token \*(L"dorelpercent\*(R" which allows the calculation of the percentage of IN-stream / OUT-stream on the fly and then displays it on a fixed scale from 0% to 100%. For my requirements, this does good work. Maybe someone wants a floating scale. It should not be a problem to implement it, too (but give me an option to keep my fixed scale). If IN-stream is always less than OUT-stream both lines (OUT-stream and relative percent) are always displayed on top of IN-stream bulk. Otherwise this option makes no sense. With this option you can display hitrates, errorrates (for router monitoring: rel. droprates) easily now.
If you use this options please consider that you need a 5th colourname/value pair in your Colours statements!
Due to some discussion on this list, I have implemented two tokens too:
\*(L"kilo\*(R" and \*(L"kMG\*(R"
\*(L"kilo\*(R" should contain the value of k (1000 or 1024), where 1000 is the default.
\*(L"kMG\*(R" is a comma separated list of multiplier prefixes, used instead of "\*(L", \*(R"k\*(L", \*(R"M\*(L", \*(R"G\*(L", \*(R"T" on the \s-1MRTG\s0 display. Leave the place free, if you want no prefix.
Also an incomplete list of OIDs for the new \s-1SQUID\s0 release is added.
You may need to turn on snmp_port in squid.conf to as it is disabled by default.
I hope you enjoy it.
First load the squid mib
LoadMIBs: /usr/share/squid/mib.txt
You can measure responsetimes in ms and display it with \s-1MRTG\s0 correctly with:
kMG[measure-ms]: m,,k,M,G,T short[measure-ms]: s
You can display now MB/s as 1024*1024 B/s with:
kilo[volume]: 1024
Assuming you're not running squid's \s-1SNMP\s0 on the default snmp port, you need to include a port number in your target line:
Target[proxy-hit]: cacheHttpHits&cacheProtoClientHttpRequests:public@localhost:3401
A sample config for squid:
Target[proxy-hit]: cacheHttpHits&cacheProtoClientHttpRequests:public@proxy Title[proxy-hit]: HTTP Hits PageTop[proxy-hit]: <H2>proxy Cache Statistics: HTTP Hits / Requests</H2> Suppress[proxy-hit]: y LegendI[proxy-hit]: HTTP hits LegendO[proxy-hit]: HTTP requests Legend1[proxy-hit]: HTTP hits Legend2[proxy-hit]: HTTP requests YLegend[proxy-hit]: perminute ShortLegend[proxy-hit]: req/min Options[proxy-hit]: nopercent, perminute, dorelpercent
Target[proxy-srvkbinout]: cacheServerInKb&cacheServerOutKb:public@proxy Title[proxy-srvkbinout]: Cache Server Traffic In / Out PageTop[proxy-srvkbinout]: <H2>Cache Statistics: Server traffic volume (In/Out) </H2> Suppress[proxy-srvkbinout]: y LegendI[proxy-srvkbinout]: Traffic In LegendO[proxy-srvkbinout]: Traffic Out Legend1[proxy-srvkbinout]: Traffic In Legend2[proxy-srvkbinout]: Traffic Out YLegend[proxy-srvkbinout]: per minute ShortLegend[proxy-srvkbinout]: b/min kMG[proxy-srvkbinout]: k,M,G,T kilo[proxy-srvkbinout]: 1024 Options[proxy-srvkbinout]: nopercent, perminute
Andreas Papst <[email protected]> Dirk-Lu\*:der Kreie <[email protected]> Chris Chiappa <[email protected]>