目次

11_Zabbix自体の監視

Zabbixのプロセスが生きているのにキューが溜まり続ける事がある。
その場合、telnet [Zabbix Host] 10051 で確認すると接続できなくなっている。

手動でtelnetした場合

異常な場合

$ telnet 192.168.100.10 10051
Trying 192.168.100.10...
telnet: connect to address 192.168.100.10: Connection timed out
telnet: Unable to connect to remote host: Connection timed out

正常な場合

$ telnet 192.168.100.10 10051
Trying 192.168.100.10...
Connected to 192.168.100.10 (192.168.100.10).
Escape character is '^]'.

Connection closed by foreign host.

スクリプト仕組み

①expectでtelnetを実行する。
②正常に接続できれば、改行を入れる事でtelnetから抜ける。(終了ステータス: 0)
 タイムアウトした場合(終了ステータス: 1)
③終了ステータスの場合は、エラーメールを投げる

_host=192.168.100.10

expect -c "
set timeout 20
spawn telnet $_host 10051
expect \"Trying 192.168.100.10...\r\r
Connected to 192.168.100.10.\r\r
Escape character is '^]'.\r\r
\" {
	send \"\r\"
	exit 0
}
exit 1
"
flg=$?

※要注意

expect利用時にハマりやすい。

コマンドラインで実行すると

spawn telnet 192.168.100.10 10051
Trying 192.168.100.10…
Connected to 192.168.100.10 (192.168.100.10).
Escape character is '^]'.

Cronで実行すると

spawn telnet 192.168.100.10 10051
Trying 192.168.100.10…
Connected to 192.168.100.10.
Escape character is '^]'.