SquidをSNMPで監視する

#今日のお題
フォワードプロクシに使用しているSquidのSNMPエージェントを有効にしてZabbixで監視したいです。すごくしたいです。プロクシトンネル待機中とかChromeの左下に出るのがとても嫌だから原因を知りたいのです。
まずはSquidのSNMP情報をZabbixサーバに引っ張ってこれるように設定します。

#SquidのSNMPエージェントを有効にする
色々ググっていたところ、[こちら](http://wiki.squid-cache.org/Features/Snmp "こちら")にSquidのSNMP機能の説明がありました。
早速Squidサーバにログインして、ちゃちゃっと設定します。

###squid.confを編集
squid.confの書き方ちゃんと知りません。冗長な気がしますが、ちょっといじると動かないのでとりあえずです。（こうして複雑怪奇なコンフィグができあがってしまうのですが。。。）

```
#snmp settings
acl snmppublic snmp_community public
acl zabbix-server src xxx.xxx.xxx.xxx
acl snmpagent src 自IPアドレス
snmp_port 3401
snmp_access allow snmppublic localhost
snmp_access allow snmppublic zabbix-server
snmp_access allow snmppublic snmpagent
snmp_access deny all
snmp_incoming_address 0.0.0.0
snmp_outgoing_address 0.0.0.0
```

ポイントはSquidサーバ自身のIPアドレスからのaclを設定すること。これで少しはまりました。

###Squidサーバからsnmpwalkで動作確認
まず、Squidサーバ上でsnmpwalkを使って動作を確認します。

```
snmpwalk -v 2c -c public xxx.xxx.xxx.xxx:3401 -On 1.3.6.1.4.1.3495
````

ずらずら情報が出ればOK。

###iptablesを修正
3401だけあけても動かなかったので、ソースがZabbixサーバの通信は全て許可してしまいました。とりあえず検証用。
###Zabbix-serverからsnmpwalkで動作確認
無事SNMP情報が取得できました。
こんな感じです。

```
[avdsadmin@zabbix2-avds ~]$ snmpwalk -v 2c -c public 10.5.132.28:3401 -On 1.3.6.1.4.1.3495
.1.3.6.1.4.1.3495.1.1.1.0 = INTEGER: 104
.1.3.6.1.4.1.3495.1.1.2.0 = INTEGER: 0
.1.3.6.1.4.1.3495.1.1.3.0 = Timeticks: (51940) 0:08:39.40
.1.3.6.1.4.1.3495.1.2.1.0 = STRING: "root"
.1.3.6.1.4.1.3495.1.2.2.0 = STRING: "squid"
.1.3.6.1.4.1.3495.1.2.3.0 = STRING: "3.1.10"
.1.3.6.1.4.1.3495.1.2.4.0 = STRING: "ALL,1"
.1.3.6.1.4.1.3495.1.2.5.1.0 = INTEGER: 2048
.1.3.6.1.4.1.3495.1.2.5.2.0 = INTEGER: 100
.1.3.6.1.4.1.3495.1.2.5.3.0 = INTEGER: 95
.1.3.6.1.4.1.3495.1.2.5.4.0 = INTEGER: 90
.1.3.6.1.4.1.3495.1.2.6.0 = STRING: "squidサーバのFQDN"
.1.3.6.1.4.1.3495.1.3.1.1.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.3.1.2.0 = Counter32: 38
.1.3.6.1.4.1.3495.1.3.1.3.0 = INTEGER: 756
.1.3.6.1.4.1.3495.1.3.1.4.0 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.1.5.0 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.1.6.0 = INTEGER: 56320
.1.3.6.1.4.1.3495.1.3.1.7.0 = Gauge32: 26
.1.3.6.1.4.1.3495.1.3.1.8.0 = Timeticks: (0) 0:00:00.00
.1.3.6.1.4.1.3495.1.3.1.9.0 = Gauge32: 0
.1.3.6.1.4.1.3495.1.3.1.10.0 = Gauge32: 967
.1.3.6.1.4.1.3495.1.3.1.11.0 = Gauge32: 100
.1.3.6.1.4.1.3495.1.3.1.12.0 = Gauge32: 57
.1.3.6.1.4.1.3495.1.3.1.13.0 = Gauge32: 68
.1.3.6.1.4.1.3495.1.3.2.1.1.0 = Counter32: 66
.1.3.6.1.4.1.3495.1.3.2.1.2.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.3.2.1.3.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.3.2.1.4.0 = Counter32: 323
.1.3.6.1.4.1.3495.1.3.2.1.5.0 = Counter32: 616
.1.3.6.1.4.1.3495.1.3.2.1.6.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.3.2.1.7.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.3.2.1.8.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.3.2.1.9.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.3.2.1.10.0 = INTEGER: 120
.1.3.6.1.4.1.3495.1.3.2.1.11.0 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.1.12.0 = Counter32: 557
.1.3.6.1.4.1.3495.1.3.2.1.13.0 = Counter32: 319
.1.3.6.1.4.1.3495.1.3.2.1.14.0 = Gauge32: 0
.1.3.6.1.4.1.3495.1.3.2.1.15.0 = Gauge32: 21
.1.3.6.1.4.1.3495.1.3.2.2.1.1.1 = INTEGER: 1
.1.3.6.1.4.1.3495.1.3.2.2.1.1.5 = INTEGER: 5
.1.3.6.1.4.1.3495.1.3.2.2.1.1.60 = INTEGER: 60
.1.3.6.1.4.1.3495.1.3.2.2.1.2.1 = INTEGER: 30056
.1.3.6.1.4.1.3495.1.3.2.2.1.2.5 = INTEGER: 28476
.1.3.6.1.4.1.3495.1.3.2.2.1.2.60 = INTEGER: 28476
.1.3.6.1.4.1.3495.1.3.2.2.1.3.1 = INTEGER: 30056
.1.3.6.1.4.1.3495.1.3.2.2.1.3.5 = INTEGER: 28476
.1.3.6.1.4.1.3495.1.3.2.2.1.3.60 = INTEGER: 28476
.1.3.6.1.4.1.3495.1.3.2.2.1.4.1 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.4.5 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.4.60 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.5.1 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.5.5 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.5.60 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.6.1 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.6.5 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.6.60 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.7.1 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.7.5 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.7.60 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.8.1 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.8.5 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.8.60 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.9.1 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.9.5 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.9.60 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.10.1 = INTEGER: 11
.1.3.6.1.4.1.3495.1.3.2.2.1.10.5 = INTEGER: 12
.1.3.6.1.4.1.3495.1.3.2.2.1.10.60 = INTEGER: 10
.1.3.6.1.4.1.3495.1.3.2.2.1.11.1 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.11.5 = INTEGER: 0
.1.3.6.1.4.1.3495.1.3.2.2.1.11.60 = INTEGER: 0
.1.3.6.1.4.1.3495.1.4.1.1.0 = Gauge32: 29
.1.3.6.1.4.1.3495.1.4.1.2.0 = Counter32: 120
.1.3.6.1.4.1.3495.1.4.1.3.0 = Counter32: 78
.1.3.6.1.4.1.3495.1.4.1.4.0 = Gauge32: 0
.1.3.6.1.4.1.3495.1.4.1.5.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.1.6.0 = Counter32: 41
.1.3.6.1.4.1.3495.1.4.1.7.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.1.8.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.2.1.0 = Gauge32: 2
.1.3.6.1.4.1.3495.1.4.2.2.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.2.3.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.2.4.0 = Gauge32: 0
.1.3.6.1.4.1.3495.1.4.2.5.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.2.6.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.2.7.0 = Counter32: 0
.1.3.6.1.4.1.3495.1.4.3.1.0 = Counter32: 41
.1.3.6.1.4.1.3495.1.4.3.2.0 = Counter32: 41
.1.3.6.1.4.1.3495.1.4.3.3.0 = Counter32: 2
.1.3.6.1.4.1.3495.1.5.2.2.1.10.5.99.56 = INTEGER: 1
.1.3.6.1.4.1.3495.1.5.2.2.1.10.5.175.26 = INTEGER: 1
.1.3.6.1.4.1.3495.1.5.2.2.1.10.5.169.8 = INTEGER: 1
Error: OID not increasing: .1.3.6.1.4.1.3495.1.5.2.2.1.xxx.xxx.xxx.xxx
 >= .1.3.6.1.4.1.3495.1.5.2.2.1.xxx.xxx.xxx.xxx
```

#まとめ
なんか最後のエラーが気になりますが、とりあえず だん。
Zabbixサーバへの設定は会社でやります。