阿里云ubuntu搭建sentry服务

时间:2024-03-09 09:30:46

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/