GetYii 关联 Slack

社区开发 · forecho · 于 2年前 发布 · 1680 次阅读

引言

GetYii 目前是一个小站,使用的服务器是阿里云最低配置,每年大概需要600多人民币,目前接受到的捐助有400多人民币,非常感谢他们的捐助。

好了,有点扯远了,我们再扯回正题。GetYii 作为我的个人 side project,我几乎每天都会访问,但是偶尔工作太忙,或者周末出去放松的时候,没来访问。 有那么一两次,网站就出现了数据库链接失败的原因,网站挂了,都是网友通过 QQ 及时通知我的。

当然监控系统的办法有很多,但是我又不是专业的运维,安装一些专业的工具,对我来说学习成本有点高。Yii2 也可以通过配置 log 组建把错误信息发送邮件给你。 但是有没有更酷、更快的方式呢?因为除了上班时间我看邮件并不及时。

这个时候我想到了 Slack,我用 Slack 也有段时间了,主要用来接受 GitHub 的消息推送,如果有新的 issues 我第一时间会接受到,当然 Slack 还有更高级的玩法,比方说自己定义一个机器人,定时给自己发消息,echobot 就是我的第一个小实验机器人。

实现

第一时间我肯定是去 Google 搜索 yii2 slack,然后我发现了这个项目 yii2-slack,这不是我正想要的么。

通过安装和配置之后 GetYii 立马就用了这个功能,如果除去安装时间,花了半个小时左右我就实现了「Error 信息自动发给 Slack」的功能了,修改的代码在这里 - 完善log功能;添加slack机器人(error信息自动发给slack)。 顺便扩展了一下我的 log 组件,现在可以按日期来命名 log 文件了。

但是完成这个功能之后我也有一丝顾虑,这无疑又增加了别人学习使用 GetYii 的成本。这也是我写此篇文章的原因所在。

如果你想在 GetYii 项目中使用 Slack

你需要去 common\config\main-local.php 文件中单独配置下面代码:

<?php
return [
    'components' => [
        'slack' => [
            'httpclient' => ['class' => 'yii\httpclient\Client'],
            'class' => 'understeam\slack\Client',
            'url' => 'xxx',
        ],
    ],
];

xxx 要改成你的 URL,这个 URL 通过安装 Incoming WebHooks 而来。

如果你不想在 GetYii 项目中使用 Slack

你需要修改 common\config\main.php 文件,按照如下方式屏蔽代码:

<?php
...
// 'slack' => [
//     'httpclient' => ['class' => 'yii\httpclient\Client'],
//     'class' => 'understeam\slack\Client',
//     'url' => '',
// ],
'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'targets' => [
        // [
        //     'class' => 'understeam\slack\LogTarget',
        //     'levels' => ['error'],
        //     'categories' => [
        //         'yii\db\*',
        //         'yii\web\HttpException:*',
        //     ],
        //     'except' => [
        //         'yii\web\HttpException:404', // 排除404错误
        //     ],
        //     'exportInterval' => 1, // Send logs on every message
        //     'logVars' => [],
        // ],
        ...
    ],
]

最后

最后还是想说一句 Slack 真的是一个非常库的软件。如果你觉得 Slack 访问比较慢,而且不想看英文,推荐你试试国内的同类产品 - 瀑布IM。 API 兼容 Slack,所以也可以用上这个功能,使用方法一样,URL 填写 瀑布IM 给的就可以了。如果有能力我强烈建议使用 Slack。

共收到 2 条回复 社区开发 GetYii
ppker#11年前 0 个赞

可以的 好羡慕群主可以玩google

forecho#21年前 0 个赞

@ppker #1楼 会玩 Google 会省很多时间,这个是必须的。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册