欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-16 17:17:16
...

本文主要介绍在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)

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)

添加key到.env中

[aaa@qq.com onpremise]$ vi .env

# Run `docker-compose run web config generate-secret-key`
# to get the SENTRY_SECRET_KEY value.
SENTRY_SECRET_KEY= 'aaa@qq.com#hd&g6p4)qzkmfi8iu#n(&aaa@qq.com*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)

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

异常情况如下图:
阿里云Centos7部署sentry(可发送邮件,亲测OK)
统计中有数据:
阿里云Centos7部署sentry(可发送邮件,亲测OK)
解决方法:

  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)

  3. 重新启动sentry服务

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

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

进入用户设置

ip:9000/account/settings/