阿里雲ubuntu搭建sentry服務


1. 安裝docker


 

首先先確定你的Ubuntu是否符合安裝Docker的前提下。如果沒有問題,你可以通過下邊的方式來安裝Docker: 

查看是否安裝了wget 

which wget

如果wget沒有安裝,先升級包管理器,然后再安裝他。 

sudo apt-get update $ sudo apt-get install wget

獲取最新版本的Docker安裝包 

wget -qO- https://get.docker.com/ | sh

通過 docker --version 可以查看版本號並確認是否安裝成功。 

由於某種神秘原因國內無法直接從 docker 官方庫直接獲取鏡像 這里我們使用 Docker 加速器 運行下面命令即可。

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4031ebb7.m.daocloud.io

2. 安裝 docker-compose 


 

推薦使用python的pip管理工具來安裝docker-compose 

sudo pip install -U docker-compose

到這里安裝就結束了;Compose 已經安裝完成。你可以使用 docker-compose --version 來進行測試

3. 正是搭建sentry

 


 

做完了准備工作,就可以開始搭建 sentry 了。

從 GitHub 上面獲取最新的 sentry

git clone https://github.com/getsentry/onpremise.git

獲取到本地之后,就可以根據他的 README.md 開始着手搭建了,整個過程還是比較順利的。

進入 clone 下來的 onpremise 目錄依次執行

1. 創建對應的目錄

mkdir -p data/{sentry,postgres} 

2. 創建env配置文件

cp -n .env.example .env

3. 構建和標記Docker服務 

docker-compose build

 

4. 生成密鑰。將其添加.envSENTRY_SECRET_KEY

docker-compose run --rm web config generate-secret-key

添加key到.env中

[dy@iz2zeacp86oa3ile21ueg2z onpremise]$ vi .env

# Run `docker-compose run web config generate-secret-key`
# to get the SENTRY_SECRET_KEY value.
SENTRY_SECRET_KEY= 'e@lcae#hd&g6p4)qzkmfi8iu#n(&j@vzx4*hkt0zm+n^o-4k37'  # 此處要寫自己生成的key

5. 構建數據庫。使用交互式提示創建用戶帳戶 

docker-compose run --rm web upgrade

異常情況一:如果在執行上圖紅框第5步時,沒有提示創建超用戶!!!!

解決方法:

1. 打開一個終端,進入sentry的web的shell里面,其實就是一個python端

docker-compose run --rm web shell

2. 輸入以下命令進行初始化數據

from sentry.models import Project
from sentry.receivers.core import create_default_projects
create_default_projects([Project])

3. 退出shell,創建自己的用戶

docker-compose run --rm web createuser

4. 重新啟動sentry服務 

$ docker-compose down      # 停止
$ docker-compose up -d      # 啟動

異常情況二:安裝完成后無法登錄(請求超時)!!!!

解決方法:重新執行安裝步驟中的3~4,重新生成key,並重新生成數據表,如下圖:

異常情況三:sentry面板不顯示新建的項目,或者不顯示接收到異常信息,但是統計中有記錄!!!!

 

統計中有數據:

解決方法:

 

  1. 執行這個命令進入 postgres docker

    docker exec -it onpremise_postgres_1 bash

     

  2. 進入postgre database

    psql -h 127.0.0.1 -d postgres -U postgres
    View Code
  3. 執行這段代碼: 

     1 create or replace function sentry_increment_project_counter(
     2 
     3             project bigint, delta int) returns int as $$
     4 
     5         declare
     6 
     7           new_val int;
     8 
     9         begin
    10 
    11           loop
    12 
    13             update sentry_projectcounter set value = value + delta
    14 
    15              where project_id = project
    16 
    17                returning value into new_val;
    18 
    19             if found then
    20 
    21               return new_val;
    22 
    23             end if;
    24 
    25             begin
    26 
    27               insert into sentry_projectcounter(project_id, value)
    28 
    29                    values (project, delta)
    30 
    31                 returning value into new_val;
    32 
    33               return new_val;
    34 
    35             exception when unique_violation then
    36 
    37             end;
    38 
    39           end loop;
    40 
    41         end
    42 
    43         $$ language plpgsql;
    View Code

 

4.配置郵箱發送

 


1. 打開docker-compose.yml文件(在git clone 的目錄onpremise下)

vim docker-compose.yml

2. 復制以下幾行到docker-compose.yml文件 

 開始的時候我用的是網易的,但是郵件死活發不出去,后來換了qq郵箱就好了

SENTRY_EMAIL_HOST: 'smtp.sina.com'
SENTRY_EMAIL_USER: 'dongyang***@sina.com'
SENTRY_EMAIL_PASSWORD: '*****'   # 填寫自己的密碼
SENTRY_SERVER_EMAIL: 'dongyang***@sina.com'
SENTRY_EMAIL_PORT: 587        # 阿里雲必須寫這一項
SENTRY_EMAIL_USE_TLS: 'true'   # 阿里雲必須寫這一項

 

3. 重新啟動sentry服務

docker-compose down      # 停止
docker-compose up -d      # 啟動

 

4. 如下圖可以測試郵件是否可以發送 

 

進入用戶設置

ip:9000/account/settings/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM