阿里云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/
3.安装sentry
-
安装git:
$ sudo yum install git
-
下载docker镜像并构建容器
$ git clone https://github.com/getsentry/onpremise.git $ cd onpremise
-
按照GitHub安装步骤进行安装:https://github.com/getsentry/onpremise
点打开链接,按照下图红框进行安装,
添加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步时,没有提示创建超用户!!!!
解决方法:
-
打开一个终端,进入sentry的web的shell里面,其实就是一个python端
# docker-compose run --rm web shell
-
输入以下命令进行初始化数据
from sentry.models import Project from sentry.receivers.core import create_default_projects create_default_projects([Project])
-
退出shell,创建自己的用户
# docker-compose run --rm web createuser
-
重新启动sentry服务
$ docker-compose down # 停止 $ docker-compose up -d # 启动
当然也可以查看数据库用户信息:
-
使用docker命令进入postgres数据库
# docker exec -it onpremise_postgres_1 bash
-
进入postgres数据库
# psql -h 127.0.0.1 -d postgres -U postgres
-
查看这两个表是否有数据sentry_project,sentry_organizationation
postgres=# select * from sentry_project; postgres=# select * from sentry_organization;
异常情况二:安装完成后无法登录(请求超时)!!!!
解决方法:重新执行安装步骤中的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
-
执行这段代码:
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.配置邮箱发送
-
打开docker-compose.yml文件(在git clone 的目录onpremise下)
$ vi docker-compose.yml
-
复制以下几行到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' # 阿里云必须写这一项
-
重新启动sentry服务
$ docker-compose down # 停止 $ docker-compose up -d # 启动
-
如下图可以测试邮件是否可以发送
进入用户设置
ip:9000/account/settings/