Yii2框架使用钉钉聊天机器人接收系统警报
Yii 2 的日志管理提供了多个日志收集工具:
- yiilogDbTarget : 使用数据库收集日志
- yiilogEmailTarget: 使用邮件收集日志
- yiilogSyslogTarget: 使用系统的 Syslog 收集日志
上面的几个工具除了邮件外,都不能及时的通知到运维人员或开发者。
好在钉钉提供了聊天机器人功能,使用自定义机器人的 webhook 我们可以将错误日志及时的推送到相关人员。
- 获取钉钉聊天机器人 Access Token
在使用本扩展之前,你需要去ding-doc.dingtalk.com/doc#/servera...获取相关信息。
- 安装扩展
composer require saviorlv/yii2-dingtalk-exception
或者在 composer.json
中添加 saviorlv/yii2-dingtalk-exception
再此之前建议您使用阿里云composer镜像。
阿里云镜像地址为developer.aliyun.com/composer按步骤安装即可。安装完成后进行下一步。
- 配置 Yii 2 应用
在配置文件中修改组件 log
:
'components' => [
......
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yiilogFileTarget',
'levels' => ['error', 'warning'],
],
[
'class' => 'SaviorlvLogExceptionTarget',//或者把里面的代码拉出来进行自己封装,使用数组可以达到多个机器人轮换着发送避免次数过多被钉钉屏蔽+使用redis队列进行处理
'levels' => ['error', 'warning'],
'options' => [
'accessToken' => 'xxxxxxxx',
'isAtAll' => false,
'atMobiles' => ['136xxxx5134']
],
],
],
],
......
]
- 参数
‘isAtAll’ => true @所有人
‘atMobiles’ => [‘136xxxx5134’,’136xxxx5133’] @部分人员
此时当 Yii 2 程序出现 error
级别的错误时,钉钉群就会收到机器人发送的错误日志。
- 其他建议
建议除了监控系统报警外,可以自定义封装钉钉发送,达到特殊的业务处理出现问题时指定报错信息
5.相关扩展地址
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: