搭建sentry服务并且在yii2.0集成sentry

前段时间应老大要求让研究一下搭建sentry服务并且集成到项目里,跟着网上的博客安装真是满纸荒唐言,一把心酸泪,在此自己整合一下安装、集成方法亲测无问题

1、第一步请先确定你的centos在7版本以上且内核版本大于等于3.0
命令 :uname -r
2、如果没有安装docker请先安装docker
(1) 请先更新yum源 yum update
(2) 设置yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(3) 查看有哪些版本:yum list docker-ce --showduplicates | sort -r
(4) 安装:yum install docker-ce-17.12.0.ce(可选)
(5) 启动docker:systemctl start docker
(6) 设置开机自启:systemctl enable docker
(7)查看当前docker是否正常了:docker version
输出docker版本之后至此docker安装完毕,docker常用命令请去官方查看
3、搭建sentry
(1)官方文档:https://hub.docker.com/_/sentry/(有个坑 一会说)
(2)sentry依赖redis和postgres: docker pull redis docker pull postgres docker pull sentry
(3)安装完毕后启动redis:docker run -d --name sentry-redis redis
(4)启动postgres:docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
(5)生成一个加密key:docker run --rm sentry config generate-secret-key
(6)第一次安装需要运行upgrade:docker run -it --rm -e SENTRY_SECRET_KEY=’’ --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade (’‘内填入上一步生成的key,这一步会让你创建一个管理员账户邮箱加密码这是你之后登录sentry的凭证)
(7)现在启动sentry服务:docker run -d --name my-sentry -p 8080:9000 -e SENTRY_SECRET_KEY=’’ --link sentry-redis:redis --link sentry-postgres:postgres sentry(注意此步官方那有个坑,他是在后面备注的想在容器外访问sentry的话要做端口映射)
(8)默认配置需要一个celery beat和celery worker,根据需要启动任意数量的worker(每个都有唯一的名称):docker run -d --name sentry-cron -e SENTRY_SECRET_KEY=’’ --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
(9)docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY=’’ --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
(10)浏览器输入你的虚拟机ip:9000此时sentry打开成功!
4、在yii2.0内集成sentry服务:
(1):composer require notamedia/yii2-sentry
(2):在main-local文件内加入:

 'sentry' => [
            'class' => 'mito\sentry\Component',
            'enabled' => true, // 设置为 false 以跳过收集错误,即禁用 Sentry,默认:true
            'dsn' => '', //你在sentry创建的项目会给你一个私有的dsn复制到这里来
            'environment' => 'dev', // 环境,development:开发环境;production:生产环境,默认:production
            'jsNotifier' => false, // 收集 JS 错误,默认:false
            'jsOptions' => [ // raven-js 配置参数
//                'whitelistUrls' => [ // 收集JS错误的网址
//                    'https://www.baidu.com/',
//                ],
            ],
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'notamedia\sentry\SentryTarget',
                    'dsn' => '',//你在sentry创建的项目会给你一个私有的dsn复制到这里来
                    'levels' => ['error', 'warning'],
                    // Write the context information (the default is true):
                    'context' => true,
                    // Additional options for `Sentry\init`:
                    'clientOptions' => ['release' => '[email protected]']
                ]
            ],
        ],


      (3)找个接口:\Yii::error("hello error"); 然后访问这个接口在sentry就可以看到这个信息啦!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章