squid のトラフィックを MRTG でグラフ化
プロキシサーバ squid の使用状況を MRTG を利用してグラフ化し、ブラウザで表示できるようにします。これには squid の SNMP 設定がされている必要があります。
以下は Red Hat Linux 9 での設定をまとめたものですので、ディストリビューションによって若干異なる部分がありますが、適宜読み替えてください。
mrtg のインストール
mrtg パッケージがインストールされていない場合は Red Hat の CD か、FTP などから入手してインストールします。
# rpm -ivh mrtg-2.9.17-13.i386.rpm
mrtg の設定
mrtg の設定は /etc/mrtg/mrtg.cfg ファイルに記述します。
WorkDir: /var/www/html/mrtg LoadMIBs: /etc/squid/mib.txt TimeZone[_]: Japan kilo[_]:1024 Target[proxy-hit]: cacheHttpHits&cacheProtoClientHttpRequests:public@localhost:3401 MaxBytes[proxy-hit]: 50000 Title[proxy-hit]: HTTP Hits PageTop[proxy-hit]: <H1>Statistics: HTTP Hits / Requests</H1> 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, growright
public の部分は、squid.conf での設定に従って変えてください。デフォルトは public ですが、第三者に勝手に利用されるのを防ぐためにも変えた方がよいでしょう。この状態で mrtg コマンドを実行して、エラーがでないことを確認します。
# mrtg /etc/mrtg/mrtg.cfg
エラーがでた場合は、mrtg.cfg や squid.conf の設定ミスや、ファイアウォールで SNMP のポートが塞がれている可能性があります。squid の SNMP は通常の SNMP と違い、デフォルトではポート 3401 を利用します。
動作確認
mrtg が正常に実行できたら、ブラウザで http://(プロキシサーバ)/mrtg/proxy-hit.html にアクセスしてグラフの表示を確認します。初めのうちは表示すべきデータがありませんが、しばらく使っていると、グラフが表示されます。上記の例ではリクエスト数とキャッシュヒット率がグラフ化されます。
mrtg はデーモンではなく、cron で定期的に動作します。インストール時点で /etc/cron.d/mrtg に設定されますので特に何もする必要はありません。5 分間隔で mrtg が実行されグラフが書き換わります。
mrtg.cfg の設定次第では、キャッシュの容量や、トラフィックの I/O などをグラフ化することもできます(ここでは割愛します)。
mrtgの設定中、Targetの”T”が抜けてますよ。
コメント by mu — 2004-10-5 17:54
ご指摘ありがとうございます。修正しました。
コメント by fumika — 2004-10-5 18:55