NGINX 日志分析报警

2021-02-03  本文已影响0人  咯噔爸比

利用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);
    }
上一篇下一篇

猜你喜欢

热点阅读