搭建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就可以看到這個信息啦!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章