监控PHP fatal errors错误日志发送邮件

Share on:

最近自己搞的小项目php报错几天后才被人发现,看来来个监控十分重要了。需要自动监控error_log一有新错误发送邮件通知下技术员,发现SEC -simple event correlator这个强大稳定的工具可以满足我的需要。

SEC是一个Perl脚本(〜11k行代码!),当有致命错误时,SEC会向您发送通知。可以使用正则表达式来查找需要发送的内容。所以您可以将其用于更复杂的设置,如应用程序日志或Web服务器访问日志~~~

  1. 安装 EPEL 资源
sudo yum install epel-release
  1. 安装SEC
yum install sec
  1. 配置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;
  1. 启动配置
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"
  1. 启动
service sec start
#自启动
chkconfig sec on

参考

闽ICP备12003472号-7