kusanagi環境下でPHPエラーがあったときにメールで通知するようにする。
Wordpressのプラグインにもメール通知できるものがありますが、PHP純正プログラムは監視できないのでサーバに設定する必要があります。
Swatchを使って監視
基本インストールされていることが多いですが。
以下のコマンドでインストール可能
$ yum install swatch
swatchでチェックする対象と送信先アドレスを設定
etc配下に記載するのが一般的っぽいです。
/etc/swatchディレクトリが存在していないときはmkdir /etc/swatchで作成。
viを使って以下のファイル内容を作成
/etc/swatch/swatch.conf
watchfor /PHP Parse error|PHP Fatal error|recv\(\) failed/ # echo red #メール送信する前に、挙動を確認するときにチェックする mail=hogehoge@hoge.com,subject="[servername] PHP error Notice From Swatch" #送信先メールアドレスとメール件名。サーバ名を件名に入れておかないとサーバの特定が困難 # threshold track_by=$1, type=both, count=3, seconds=600 #連続3回が5分以内に起こったら通知する場合に使用 #watchfor /.*/ #チェックに引っ掛からなかったものをチェックする用 # echo
daemonに設定して、サーバが起動したら動くようにする
/etc/init.d/swatch
#!/bin/bash #chkconfig: 345 80 20 #source function library. . /etc/rc.d/init.d/functions start(){ echo -n "starting Swatch: " /usr/bin/swatch -c /etc/swatch/swatch.conf -t /home/kusanagi/hogehoge/log/nginx/error.log & # -t 以降はログファイルの場所を設定 /usr/bin/swatch -c /etc/swatch/swatch.conf -t /home/kusanagi/hogehoge2log/nginx/error.log & #複数サイトの時は併記してOK return 0 } stop(){ killproc swatch return 0 } case "$1" in start) start ;; stop) stop ;; esac
実行権限を与える
chmod 700 /etc/init.d/swatch
自動起動設定
$ sudo /etc/init.d/swatch start #daemonにswatchを追加 $ sudo chkconfig –-add swatch #chkconfigにswatchを追加 $ sudo chkconfig swatch on #chkconfigでswatchをonにする $ sudo chkconfig --list #chkconfigでswatchが動いてるか確認する
これで完了です。
参考記事
https://blog.e2info.co.jp/2015/02/03/%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E3%83%AD%E3%82%B0%E7%9B%A3%E8%A6%96%E3%83%84%E3%83%BC%E3%83%ABswatch%E3%81%A7php-fatal-error%E7%99%BA%E7%94%9F%E6%99%82%E3%81%AB%E3%83%A1%E3%83%BC%E3%83%AB/ https://oxynotes.com/?p=7517
http://blog.livedoor.jp/nipotan/archives/5902838.html