sentry服務搭建

簡介

sentry 是目前比較流行的日誌上報告警平臺,集成多語言sdk,很是方便集成,並且它專門監測錯誤並提取開發日誌信息用於分析,經過自動上報及獲取免去了須要用戶提供日誌定位問題的煩惱,極大的提升了定位問題的效率。html

服務搭建

本文主要介紹centos7下經過docker搭建sentry服務,話很少說,直接上教程python

1、安裝docker:

centos7安裝docker參考 www.cnblogs.com/qgc1995/p/9… ,過程很詳細git

2、安裝相關依賴,須要用到git,docker-compose,pip等組件:

sudo yum install epel-release  
sudo yum install docker-compose
複製代碼

3、正式安裝sentry:

一、建立所需文件夾,建立本地數據庫github

cd /home/xxx
mkdir -p data/{sentry,postgres}
docker volume create --name=sentry-data && docker volume create --name=sentry-postgres
複製代碼

二、git克隆web

git clone https://github.com/getsentry/onpremise.git —— 這裏版本過新,可能存在bug,建議github上下載穩定版本上傳到服務器解壓
複製代碼

穩定版本9.1.2: github.com/getsentry/o…

三、複製相應環境文件:sql

cd onpremise
cp .env.example .env
複製代碼

四、構建依賴庫:docker

docker-compose build
複製代碼

\color{red}{注意:若出現以下bug}

ERROR: Service 'web' failed to build: invalid reference format
複製代碼

修改.env文件參數,onpremise/.env中添加shell

SENTRY_IMAGE=sentry:9.1.2
複製代碼

五、生成secret-key:數據庫

docker volume create --name=sentry-data
docker volume create --name=sentry-postgres
docker-compose run --rm web config generate-secret-key
複製代碼

六、把第5步生成的key加入到.env中:centos

vi .env
SENTRY_SECRET_KEY=your_key
複製代碼

七、配置docker-compose.yml文件中的sentry volumes和postgres volumes路徑爲第1步中所建立的路徑:

八、建立初始化數據:

docker-compose run --rm web upgrade
複製代碼

\color{red}{注意:這個命令通常第一次不會所有成功,須要多執行幾回,保證沒有數據須要更新再進行後面操做,不然後面的操做會一直失敗}

九、建立管理員帳號:

1.使用docker命令進入postgres數據庫
# docker exec -it onpremise_postgres_1 bash —— 這裏postgres的名字可使用docker ps 查看

2.進入postgres數據庫
# psql -h 127.0.0.1 -d postgres -U postgres

3.查看這兩個表是否有數據sentry_project,sentry_organization
postgres=# select * from sentry_project;
postgres=# select * from sentry_organization ;
若是沒有數據,進行建立

4.新開一個終端,進入sentry的web的shell裏面,其實就是一個python端
# docker-compose run --rm web shell 

5. 輸入如下命令進行初始化數據
from sentry.models import Project
from sentry.receivers.core import create_default_projects
create_default_projects([Project])

6.退出第五步的shell,建立本身的用戶
# docker-compose run --rm web createuser

ps:
\q #退出數據庫
exit #回車退出容
複製代碼

十、啓動全部服務:

docker-compose run --rm web upgrade
docker-compose up -d
複製代碼

十一、訪問服務:ip:9000登陸,建立項目接收異常日誌上報
\color{red}{注意:出現sentry沒法接收上報日誌錯誤解決方案}
查看具體錯誤:

docker stop onpremise_worker
docker logs -f --tail 100 onpremise_worker
複製代碼

亂七八糟的日誌裏出現一個錯誤:

ProgrammingError: ProgrammingError('function sentry_increment_project_counter(integer, integer) does not exist 複製代碼

基本上都會出現這個錯誤,解決方案以下:

1.運行命令進入postgres docker
docker exec -it onpremise_postgres_1 bash
     
2.進入postgre數據庫
psql -h 127.0.0.1 -d postgres -U postgres
     
3.執行:
create or replace function sentry_increment_project_counter( project bigint, delta int) returns int as $$ declare new_val int;
begin loop update sentry_projectcounter set value = value + delta where project_id = project returning value into new_val; if found then return new_val;
end if; begin insert into sentry_projectcounter(project_id, value) values (project, delta) returning value into new_val; return new_val;
exception when unique_violation then end; end loop; end $$ language plpgsql;
     
4.ctrl + D退出數據庫,exit退出bash
     
5.從新運行onpremise_worker docker start onpremise_worker
複製代碼

參考:
www.cnblogs.com/yunwangjun-…
blog.csdn.net/jabony/arti…

相關文章
相關標籤/搜索