利用GO实现类似tail -f 的功能用于日志实时分析
需求:分析nginx 日志中的500系列的错误进行报警
每次手动查看周期长了会忘记,刚好前端时间开发了企业微信发消息的功能。可以用企业微信代替接收终端来实时接收报警信息

自己实现功能 需要监听文件变化,维护之前处理的上下文
调用已有的成熟的第三方库,这里主要是指 github.com/hpcloud/tail 这个,借鉴别人的成果。具体的代码实现等实操后再补充
经过与实际情况分析最终妥协了,采用laravel 捕获异常的方式中间增加本身的job即可快速完工了,看一下完工的代码吧
Handler.php
public function render($request, Exception $e)
{
if ($e instanceof ModelNotFoundException) {
$e = new NotFoundHttpException($e->getMessage(), $e);
}
//500 报警监控
if( !config('app.debug')) {
//增加 事件
SendMessage::dispatch(1,['title'=>'看什么看,又有500错误了','userid'=>[2711], 'description'=>'o(╥﹏╥)o 起来改BUG了 =>'.$request->url().'==>'.$e->getMessage(),
'url'=>'','picurl'=>'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1210376098,2005201110&fm=26&gp=0.jpg'])
->onQueue('{sendWeWorkMsg}');
}
return parent::render($request, $e);
}
网友评论