Squidが時たま調子が悪くて、一つの要因にFile descriptorに目を付けてるけどこれじゃない感じもある。
cache.logにも決まり文句もないし。
ともあれ虱潰しにしようということで、Zabbixで監視をしてみます。
Zabbixの外部スクリプトの場所を確認しよう
[root@proxmox-zabbix ~]# cat /etc/zabbix/zabbix_server.conf | grep "ExternalScripts"
### Option: ExternalScripts
# ExternalScripts=${datadir}/zabbix/externalscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
“ExternalScripts=/usr/lib/zabbix/externalscripts” ここに外部スクリプトを起きます。
squidclientを入れよう
yum install squid
squidclientで情報を取得しに行くのでsquidを入れます。
squidclientだけ入れることはできないんだろうか。
外部スクリプト本体
https://gist.github.com/rluisr/76bf3845a5daafdb40c7
このファイルをさっきのディレクトリへ保存し
chmod 755 SquidInfo.php result chown zabbix:zabbix SquidInfo.php resultシェルスクリプトと、Pythonが割りとメジャーらしいけどどっちも分からないのでPHPで書くことにしました。
一度ファイルに保存してるのは行数指定で変数にぶち込みたかったから。例えば Maximum number of file descriptors の数値が欲しい時は
php SquidInfo.php 192.168.x.x maximumとすれば、数値(実際には文字列)だけが返ってきます。
php SquidInfo.php 192.168.x.x numberとすれば、Number of file desc currently in useが返ってきます。
Squidに登録
アイテムの追加から、こんな感じに設定すれば取得可能。
データ型は”文字列”でないと取得できません。一つ一つアプリケーションを追加していくのはダルいのでテンプレートを作成しておくといいです。
トリガーとしては、Maximum number of file descriptorsが65535となっており
Number of file desc currently in useが65000を超えるとアクションを起こすように。自動でSquidを再起動するようにアクションを仕掛けてもいいですね!!!
