最終更新日: 2014年1月13日
Squid Home / FAQトップ

18. SNMP

Contributors: Glenn Chisholm.

18.1 SquidはSNMPをサポートしていますか?

Squid 2以上ではSNMPサポートが利用できます。 重要な実装の変更が2.2の開発版ので行われました。 それゆえ、SquidでSNMPを利用するには2つの指示の仕方が存在しますので自分の環境にあった指示を行ってください。

18.2 SNMPの有効化

最初に、SNMPを利用できるようにする為にはこれを有効にしてSquidを configure し再構築しなくてはなりません。 これはソースファイルからの構成で次のように実行します:

./configure --enable-snmp [ ... other configure options ]

続いて、クリーンを行った後に再コンパイルを行います。:

make clean
make all
make install

コンパイルが成功しインストールが完了したなら、squid.conf ファイルに必要な設定を行いますが、ここからはSquid2.1以前とSquid2.2以後を分けて示します。

18.3 Squid2.2での設定

aclを使い、あなたが望むSNMPのコミュニティのリストを明確にリストしてください。 ACLの形式は、

acl aclname snmp_community string

例えば、

acl snmppublic snmp_community public
acl snmpjoebloggs snmp_community joebloggs

これは public と joebloggs という2つのコミュニティの為のACLを作ります。 

次にSNMPのエージェントが待ち受けるリンス・ポート"snmp_port"を変更します。 これはデフォルトでは3401です。 このポートはエージェントがフォワードリクエストを行うことを果たさないので、フォワードリクエストを行う為には"forward_snmpd_port"を設定してください。デフォルトでこれはoffになっています。
その後、SquidのSNMPエージェントをアクセスできるように許可を与えます。 定義は snmp_access ACLを使い前もってコミュニティを定義します。 例として:

snmp_access allow snmppublic localhost
snmp_access deny all

上記では snmppublic とされたコミュニティにローカルホストからのアクセスを許可し、その他へはすべてのアクセスを拒否する定義です。
もし snmp_access でACLを何も定義していないなら、デフォルトでSNMPへのアクセスはできません。
最後に、エージェントがインカミング(受け取り)・アウトゴーイング(送信)通信の為のアドレスを設定します。 これらはデフォルトで0.0.0.0となっており、この場合にはホストにバインドされているすべてのアドレスが使われます。 

18.4 Squid2.1での設定

以前のSquid2.1のSNMPのコードにはACLに関する幾つかの問題を持っていました。 もしあなたがSNMPを常用したいならどうか2.2以上へアップデートする事をお勧めします。

Squid2.1での標準的な設定配置は:

snmp_port 3401
snmp_mib_path /local/squid/etc/mib.txt

snmp_agent_conf view all .1.3.6 included
snmp_agent_conf view squid .1.3.6 included
snmp_agent_conf user squid - all all public
snmp_agent_conf user all all all all squid
snmp_agent_conf community public squid squid
snmp_agent_conf community readwrite all all

セキュリティの為のアドバイスとしてSNMPへのアクセスに制限を設けることをお勧めします。 この為の設定は簡単で、以下のようにします。

acl snmpmanagementhosts 1.2.3.4/255.255.255.255 1.2.3.0/255.255.255.0
snmp_acl public deny all !snmpmanagementhosts
snmp_acl readwrite deny all

18.5 どのようにSquidのSNMPエージェントに検索を行いますか。

もしSquidのSNMPサポートをテストしたいなら snmpwalk プログラムを使いテストできます。(snmpwalk はNET-SNMP project の一部です)あなたの設定したSquidのSNMPポートがデフォルトの3401ならば、

# snmpwalk -p 3401 hostname communitystring .1.3.6.1.4.1.3495.1.1

(hostnameにはアドレスまたはホスト名を、communitystring はコミュニティ名を指定してください)

結果として以下のような内容が報告されます。

enterprises.nlanr.squid.cacheSystem.cacheSysVMsize = 7970816
enterprises.nlanr.squid.cacheSystem.cacheSysStorage = 2796142
enterprises.nlanr.squid.cacheSystem.cacheUptime = Timeticks: (766299) 2:07:42.99

このようになれば動作はOKです。 これにより、あなたはすばらしい統計を取ることができるようになる事でしょう。
OIDに関する解説については、Squid SNMP web pages. を参照すると良いでしょう。

18.6 SquidのSNMPを何の為に使いますか?

SquidとSNMPによって役に立つ多くのできる事があります。 それはSquidの長期運用における問題の解決の為に非常に役立つことでしょう。 例えばSquidがどれだけファイルディスクリプタを使っているか? あるは一日の内にLRUがどのように変化するか? あるいはMRTGを使ってキャッシュマネージャなどでは監視できないものなどの監視に。

18.7 どのようにSquidとSNMPを使いますか?

SNMP経由でSquidを監視するためにあなたが使うことができる多くの道具があります。多くの人々はMRTGを使います。別のよい組み合わせは、NET-SNMP RRDTool. です。あなたは、より多くの情報をSquid SNMP web pages またはircache rrdtool sciptsで見つけることができるでしょう。

18.8 SquidとSNMPに関するより多くの情報をどこから入手できますか?

一般の討論であればcache-snmp@ircache.net に。 このアーカイブ

メーリングリストの購読はcache-snmp-request@ircache.net. へ。

18.9 MRTGを使ったSquidの監視。

ある人はSquidのSNMP監視の為にMRTGを使います。 MRTGを使ってSquidの情報を得たいならどうか以下のページを訪れてください。

SquidのMRTGに関する構築に関しては以下で見つける事ができます。

  1. MRTG HOWTO Collection / Squid from MRTG
  2. using mrtg to monitor Squid from MRTG
  3. Chris' MRTG Resources
  4. MRTG & Squid by Glenn Chisholm
  5. Braindump by Joakim Recht

訳者: Squid-SNMPでMRTGを使った管理をする際、mrtg.conf というファイルを編集することになります。 私の場合、次のような設定を行いました。

Target[proxy-hit]: cacheHttpHits&cacheProtoClientHttpRequests:public@192.168.1.1:3401
Title[proxy-hit]: HTTP Hits
Directory[squid]: snmp
PageTop[proxy-hit]: <H2>proxy Cache Statistics: HTTP Hits / Requests</H2>
MaxBytes[proxy-hit]: 10000
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]: cacheServerInKb&cacheServerOutKb:public@192.168.1.1:3401
Title[proxy]: Squid Cache Server Traffic In / Out
Directory[proxy]: snmp
MaxBytes[proxy]: 10000
PageTop[proxy]: <H1>Cache Statistics: Server traffic volume (In/Out)</H1>
Suppress[proxy]: y
ShortLegend[proxy]: b/min
YLegend[proxy]: per minute
Legend1[proxy]: Traffic In
Legend2[proxy]: Traffic Out
LegendI[proxy]: Traffic In
LegendO[proxy]: Traffic Out
kMG[proxy]: k,M,G,T
kilo[proxy]: 1024
Options[proxy]: growright, nopercent, perminute
Squid Home / FAQトップ

参考: