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. 生成密鑰。將其添加.env
為SENTRY_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面板不顯示新建的項目,或者不顯示接收到異常信息,但是統計中有記錄!!!!
統計中有數據:
解決方法:
-
執行這個命令進入 postgres docker
docker exec -it onpremise_postgres_1 bash
-
進入postgre database
psql -h 127.0.0.1 -d postgres -U postgres
View Code
-
執行這段代碼:
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;
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/