监控PHP fatal errors错误日志发送邮件
最近自己搞的小项目php报错几天后才被人发现,看来来个监控十分重要了。需要自动监控error_log一有新错误发送邮件通知下技术员,发现SEC -simple event correlator这个强大稳定的工具可以满足我的需要。
SEC是一个Perl脚本(〜11k行代码!),当有致命错误时,SEC会向您发送通知。可以使用正则表达式来查找需要发送的内容。所以您可以将其用于更复杂的设置,如应用程序日志或Web服务器访问日志~~~
安装 EPEL 资源
sudo yum install epel-release
安装SEC
yum install sec
配置SEC
vim /etc/sec/php.conf type=Single ptype=RegExp pattern=^\[.+\] PHP Fatal error.+$ desc=PHP error action=add nginx-php-errors $0 type=Calendar time=* * * * * desc=Mail web errors context=nginx-php-errors action=report nginx-php-errors /bin/mail -s "example.com PHP errors" admin@example.com; delete nginx-php-errors;
启动配置
vim /etc/sysconfig/sec SEC_ARGS[0]="-detach --conf=/etc/sec/php.conf --input=/var/log/php-fpm/example.com-error.log -log=/var/log/sec -intevents -pid=/var/run/sec.pid --debug=6" #加载多配置 SEC_ARGS[1]="-detach --conf=/etc/sec/php2.conf --input=/var/log/php-fpm/example2.com-error.log -log=/var/log/sec -intevents -pid=/var/run/sec2.pid --debug=6"
启动
service sec start #自启动 chkconfig sec on
参考