阿里云Centos7部署sentry(可发送邮件,亲测OK)

本文主要介绍在centos7 下通过docker安装sentry

1.安装docker:

方法一:
按照官网安装docker:https://docs.docker.com/install/linux/docker-ce/centos/
方法二:
执行下面这个安装脚本:

#/bin/sh

# update yum
sudo yum update -y

# install some tools
sudo yum install -y git vim gcc glibc-static telnet bridge-utils

# install docker
curl -fsSL get.docker.com -o get-docker.sh

#sh /vagrant/get-docker.sh --mirror=Aliyun	
sh get-docker.sh --mirror=Aliyun	

# start docker service
sudo groupadd docker
sudo usermod -aG docker username   #  !!!!!! 一定要把username换成你的用户名,不然只有sudo权限才能运行docker
sudo systemctl start docker.service

rm -rf get-docker.sh

2.安装docker-compose:

安装官网安装docker-compose:https://docs.docker.com/compose/install/
阿里云Centos7部署sentry(可发送邮件,亲测OK)_第1张图片

3.安装sentry

  1. 安装git:

    $ sudo yum install git

  2. 下载docker镜像并构建容器

    $ git clone  https://github.com/getsentry/onpremise.git
    $ cd onpremise
    
  3. 按照GitHub安装步骤进行安装:https://github.com/getsentry/onpremise
    点打开链接,按照下图红框进行安装,
    阿里云Centos7部署sentry(可发送邮件,亲测OK)_第2张图片

添加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步时,没有提示创建超用户!!!!

解决方法:

  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      # 启动
    

当然也可以查看数据库用户信息:

  1. 使用docker命令进入postgres数据库
    # docker exec -it onpremise_postgres_1 bash

  2. 进入postgres数据库
    # psql -h 127.0.0.1 -d postgres -U postgres

  3. 查看这两个表是否有数据sentry_project,sentry_organizationation

    postgres=# select * from sentry_project;
    postgres=# select * from sentry_organization;
    
异常情况二:安装完成后无法登录(请求超时)!!!!

解决方法:重新执行安装步骤中的3~4,重新生成key,并重新生成数据表,如下图:
阿里云Centos7部署sentry(可发送邮件,亲测OK)_第3张图片

异常情况三:sentry面板不显示新建的项目,或者不显示接收到异常信息,但是统计中有记录!!!!

异常情况如下图:
阿里云Centos7部署sentry(可发送邮件,亲测OK)_第4张图片
统计中有数据:
在这里插入图片描述
解决方法:

  1. 执行这个命令进入 postgres docker

    docker exec -it onpremise_postgres_1 bash

  2. 进入postgre database

    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.配置邮箱发送

  1. 打开docker-compose.yml文件(在git clone 的目录onpremise下)
    $ vi docker-compose.yml

  2. 复制以下几行到docker-compose.yml文件

    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'   # 阿里云必须写这一项
    

    阿里云Centos7部署sentry(可发送邮件,亲测OK)_第5张图片

  3. 重新启动sentry服务

    $ docker-compose down      # 停止
    $ docker-compose up -d      # 启动
    
  4. 如下图可以测试邮件是否可以发送
    阿里云Centos7部署sentry(可发送邮件,亲测OK)_第6张图片

    阿里云Centos7部署sentry(可发送邮件,亲测OK)_第7张图片

进入用户设置

ip:9000/account/settings/

你可能感兴趣的:(sentry部署)