Squid and Squid-SNMP

手元の BSD サーバに Squid で Proxy 立ててみた。キャッシュ入ることで Web アクセスのオプティマイズができればいいかなーくらい。設定そのものはまあどうにでもなるので、ひとまず SNMP による Squidの 情報取得のための設定メモを残す。

SquidSNMP設定

まず SquidSNMP request を受けるようにする。 SquidSNMP オプションを有効にしてビルドされていることを確認する。
squid -v して

$ squid -v
Squid Cache: Version 2.6.STABLE12
configure options: ' (略) '--enable-snmp' (略)'

と出てくることを確認。

Squid 設定ファイルに SNMP 用の ACL を書いてリクエストを受け付けるようにする。port 3401 はデフォルト設定。今回は SquidSNMPlocalhost からだけ許可する。

  • snmpd.conf
snmp_port 3401
acl snmp_public snmp_community public
snmp_access allow snmp_public localhost
snmp_access deny all

チェック

$ snmpwalk -m /usr/local/etc/squid/mib.txt -v2c -c public localhost:3401 1.3.6.1.4.1.3495.1.3.2.1
SQUID-MIB::cacheProtoClientHttpRequests.0 = Counter32: 2243
SQUID-MIB::cacheHttpHits.0 = Counter32: 243
SQUID-MIB::cacheHttpErrors.0 = Counter32: 0
SQUID-MIB::cacheHttpInKb.0 = Counter32: 1788
SQUID-MIB::cacheHttpOutKb.0 = Counter32: 16265
SQUID-MIB::cacheIcpPktsSent.0 = Counter32: 0
SQUID-MIB::cacheIcpPktsRecv.0 = Counter32: 0
SQUID-MIB::cacheIcpKbSent.0 = Counter32: 0
SQUID-MIB::cacheIcpKbRecv.0 = Counter32: 0
SQUID-MIB::cacheServerRequests.0 = INTEGER: 1967
SQUID-MIB::cacheServerErrors.0 = INTEGER: 0
SQUID-MIB::cacheServerInKb.0 = Counter32: 16088
SQUID-MIB::cacheServerOutKb.0 = Counter32: 1454
SQUID-MIB::cacheCurrentSwapSize.0 = Gauge32: 92144
SQUID-MIB::cacheClients.0 = Gauge32: 1

snmpd.conf (net-snmp)の設定

そのままだと port 3401 しないといけないので、snmpd 側で Squid 用 OID は Squid 側へ飛ばすように proxy 設定を入れる。

  • snmpd.conf
proxy -m /usr/local/etc/squid/mib.txt -v2c -c public localhost:3401 .1.3.6.1.4.1.3495.1