LoginSignup
4
2

More than 5 years have passed since last update.

zabbix-twilioをzabbix3.0で動かすためにやったこと

Posted at

前書き

前回、zabbixからtwilioで電話かけさせるためにwaker作った。

しかしzabbix-twilioでそもそもよくね、って思ったので検証して見たら、動かすまでにいろいろ苦労したのでそのあたりを共有する。

動作環境

今回はGCP上に立てたDebianインスタンス上のDocker上でZabbix3.0のコンテナを動かしている。

docker-compose.yml
version: '2'
services:
  zabbix-db:
    image: monitoringartist/zabbix-db-mariadb
    volumes:
      - /data/mysql:/var/lib/mysql
      - /data/backup:/backups
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MARIADB_USER=zabbix
      - MARIADB_PASS=my_password
  zabbix-server:
    image: monitoringartist/zabbix-xxl:3.0.10
    depends_on:
      - zabbix-db
    ports:
      - "80:80"
      - "10051:10051"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./zabbix-twilio-1.1:/usr/local/share/zabbix/alertscripts/zabbix-twilio
      - ./zabbix-twilio-1.1/zabbix-twilio.php:/usr/local/src/zabbix/frontends/php/zabbix-twilio/zabbix-twilio.php
      - ./twilio-php-4.12.1:/usr/local/share/zabbix/alertscripts/zabbix-twilio/lib/twilio-php-latest
    links:
      - zabbix-db:zabbix.db
    environment:
      - ZS_DBHost=zabbix.db
      - ZS_DBUser=zabbix
      - ZS_DBPassword=my_password

諸注意

ドキュメントに載ってないやるべきこと一覧

1. バグ修正

Zabbix3.0に上がる際にAPIの仕様が変更されたのか知らないが、APIで認証取る際のauthパラメータが空文字だとエラーになるので、nullに変更。

ついでにログのところにもバグあったので修正。

diff -r zabbix-twilio/zabbix-twilio.php zabbix-twilio-fixed/zabbix-twilio.php
81c81
<                               $log->info ( "Digits 不一致 Digits:$_REQUEST ['Digits]" );
---
>                               $log->info ( "Digits 不一致 Digits:".$_REQUEST ['Digits'] );
150c150
<       private $auth = '';
---
>       private $auth = null;

2. twilio-phpのバージョンは4.12.1

twilio-phpの最新バージョンだとクラスがなくてエラーになるため、古いバージョンのtwilio-phpを取得する必要がある。

なお、ディレクトリ名はtwilio-php-latestにしないとrequireされないので注意。

git clone https://github.com/twilio/twilio-php -b 4.12.1 twilio-php-latest
# 先に掲示したdocker-composeの場合だとtwilio-php-4.12.1って名前でディレクトリ作ってマウント時にlatestつけてる

3. mediaの設定でScript parametersの設定が必要

Zabbix3.0からパラメータ指定しないといけなくなった。

ここの画像通り設定すればOK

4. Actionのmessageの"eventid:"などの後ろにスペース入れない

以下のような感じでスペース入れないようにする。スペースが入っているとエラーになる

eventid:{EVENT.ID}
message:ホスト{HOST.NAME}でPort監視障害が発生中です

その他つまった場合

とりあえずつまったらconfig.phpの$DEBUG_FLG = true;にする。デバッグログが出るようになる。

twilio→zabbixの箇所でエラー出てる場合は、twilioのコンソールからエラー内容が見れるので、そちらも参考にする。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2