Zabbixで障害を検知したときに自動で電話する仕組みがほしいなと思っていたら、
便利そうなプラグインがあったので、試しに使ってみました。
Zabbix電話通知プラグイン「zabbix-twilio」
http://begood-technology.github.io/zabbix-twilio/
Zabbixがインストールされているサーバにログインして、
ダウンロードサイトからプラグインをダウンロードします。
使用しているサーバはamazonlinuxを使用しています。
$ wget https://github.com/begood-technology/zabbix-twilio/archive/1.1.zip
解凍します。
$ unzip 1.1.zip
Archive: 1.1.zip
ee4127487814ba15955d652dd4ee644bcc5aaf2b
creating: zabbix-twilio-1.1/
extracting: zabbix-twilio-1.1/.gitignore
inflating: zabbix-twilio-1.1/LICENSE
inflating: zabbix-twilio-1.1/Logger.php
inflating: zabbix-twilio-1.1/README.md
inflating: zabbix-twilio-1.1/config.php
creating: zabbix-twilio-1.1/lib/
extracting: zabbix-twilio-1.1/lib/.gitkeep
creating: zabbix-twilio-1.1/logs/
extracting: zabbix-twilio-1.1/logs/.gitkeep
inflating: zabbix-twilio-1.1/twilio-call.php
inflating: zabbix-twilio-1.1/zabbix-twilio.php
解凍したディレクトリを移動します。
ディレクトリ名は、zabbix-twilioにします。
$ sudo mv zabbix-twilio-1.1 /usr/lib/zabbix/alertscripts/
$ cd /usr/lib/zabbix/alertscripts/
$ sudo mv zabbix-twilio-1.1 zabbix-twilio
実行権限をつけます。
$ sudo chmod +x /usr/lib/zabbix/alertscripts/zabbix-twilio/twilio-call.php
$ sudo chmod 777 /usr/lib/zabbix/alertscripts/zabbix-twilio/logs
ドキュメントルートの下にzabbix-twilioという名前のディレクトリを作成します。
その後、zabbix-twilio.phpを作成したディレクトリ配下に移動します。
$ sudo mkdir /var/www/html/zabbix-twilio
$ sudo mv /usr/libza/zabbix/alertscripts/zabbix-twilio/zabbix-twilio.php /var/www/html/zabbix-twilio/
twilio-phpライブラリをインストールします。
$ cd ~
$ wget https://github.com/twilio/twilio-php/archive/latest.zip
$ unzip latest.zip
$ sudo mv twilio-php-latest /usr/lib/zabbix/alertscripts/zabbix-twilio/lib/
スクリプトと設定ファイルを編集します。
zabbix-twilio.phpはドキュメントルートが/var/www/htmlであれば変更なしで大丈夫です。
$ sudo cp -p /usr/lib/zabbix/alertscripts/zabbix-twilio/config.php /var/tmp/config.php_20160414
$ sudo vi /usr/lib/zabbix/alertscripts/zabbix-twilio/config.php
編集箇所
$ diff /usr/lib/zabbix/alertscripts/zabbix-twilio/config.php /var/tmp/config.php_20160414
8c8
< $SCRIPT_URL = 'http://xx.xx.xx.xx/zabbix-twilio/zabbix-twilio.php';
---
> $SCRIPT_URL = 'http://<Server IP>/zabbix-twilio/zabbix-twilio.php';
26c26
< $ACCOUNT_SID = 'xxxxxxxxxxxxxxxxxxxxxxx';
---
> $ACCOUNT_SID = '<ACCOUNT_SID>';
28c28
< $AUTH_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxx';
---
> $AUTH_TOKEN = '<AUTH_TOKEN>';
30c30
< $TWILIO_NUMBER = '+81xxxxxxxxxx';
---
> $TWILIO_NUMBER = '+81<TWILIO_NUMBER>';
63c63
< $ZABBIX_USER = 'Admin';
---
> $ZABBIX_USER = '<username>';
65c65
< $ZABBIX_PASS = 'zabbix';
---
> $ZABBIX_PASS = '<password>';
ACCOUNT_SIDとAUTH_TOKENはTwilioのアカウント情報から確認することができます。
あとは、以下の手順でZabbixの設定をすることで障害時に電話連絡がきます。
http://begood-technology.github.io/zabbix-twilio/usage.html
今回のやり方だと、電話連絡先が1つしか登録できないようなので、
複数登録するやり方を探してみます。