php 监控日志,发现500 503 等错误发送邮件提示
监控日志,发现500 503 等错误发送邮件提示 基于phpmailer这类,网上到处可以下,再注册个邮箱,设置个计划任务执行,我设置的是2分钟,自己设置要监控的错误代码,这个是当初为了排
基于phpmailer这类,网上到处可以下,再注册个邮箱,设置个计划任务执行,我设置的是2分钟,自己设置要监控的错误代码,这个是当初为了排查服务器问题弄的, 检测iis默认日志,具体情况要具体修改
<?php include("PHPMailer/class.phpmailer.php"); //error_reporting(0); $mail = new PHPMailer(); $mail->IsSMTP(); // telling the class to use SMTP $mail->SMTPDebug = 1; // enables SMTP debug information (for testing) // 1 = errors and messages // 2 = messages only $mail->SMTPAuth = true; // enable SMTP authentication $mail->Host = "smtp.126.com"; // sets the SMTP server $mail->Port = 25; // set the SMTP port for the GMAIL server $mail->Username = "xxx@126.com"; // SMTP account username 邮箱用户名 $mail->Password = "xxxxxxxxx"; // SMTP account password 密码 $mail->SetFrom('xxxxxxx@126.com', '报错');// $now = "u_ex".date("ymdH").".log"; try{ $log = file("F:/iis-log/W3SVC2/".$now);//日志路径自己改 }catch(Exception $e){ echo "no file "; exit; } $error = array(); $start = date("i",time()-120); $end = date("i"); if($start > $end){ exit; } $aa = range($start,$end); $code = mkstr($aa); echo $code; $pattern = "/($code).*(\\s500\\s|\\s503\\s)/";//这里自己修改 $i = 0; foreach($log as $k => $v){ if(preg_match($pattern,$v)){ $error[] = $v; echo $v; $i += 1; } } if(!empty($error)){ $content = implode("<br/>",$error); $mail->Subject="$i errors "; $mail->AddAddress("xxxxxxxxxx@163.com"); $mail->AddAddress("xxxxxxxx@126.com"); $mail->MsgHTML($content); $mail->send(); } echo "\\nover"; function mkstr($arr){ $code = ''; foreach($arr as $k => $e){ $code .="\\:$e\\:|"; } $code = rtrim($code,"|"); return $code; } //该片段来自于http://outofmemory.cn
精彩图集
精彩文章