linux下docker+sentry安装配置

本文详细介绍如何在CentOS环境下安装配置Sentry错误日志服务器,包括Docker安装、源配置、服务部署及常见问题解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、成功安装

1.安装docker

sudo yum -y install docker-io

2.启动docker

service docker start

3.docker换源

sudo curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://6616fe43.m.daocloud.io

4.将docker加入到开机启动中

chkconfig docker on

5.docker拉取redis postsql 和sentry 

docker pull redis 
docker pull postgres 
docker pull sentry

6.启动redis和sentry 

docker run -d --name sentry-redis redis 
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres 
docker run --rm sentry config generate-secret-key

 7.启动sentry(上一行得到secret-key,然后把key复制到下面四行的单引号中) 

docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade

(这一步会提示输入邮箱和密码) 

docker run -d -p 9000:9000 --name my-sentry -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron 
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker 

 

二、其他安装

1.卸载旧版本

sudo yum remove docker \
docker-common \
docker-selinux \
docker-engine

2.安装依赖包

sudo yum install -y yum-utils device-mapper-presistent-data lvm2

3.添加稳定源

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

4.安装docker ce(比较耗时)

sudo yum makecache fast
sudo yum install docker-ce

5.启动docker

sudo systemctl start docker

6.测试docker

sudo docker run hello-world

7.查看docker版本

docker --version

8.安装docker-compose(可能会报错,参考报错解决)

sudo yum install epel-release
sudo yum install -y python-pip
sudo pip install docker-compose

9.安装git

sudo yum install git

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

sudo mkdir -p data/{sentry,postgres}
git clone https://github.com/getsentry/onpremise.git
cd onpremise/

11.更新和运行

docker-compose run --rm web config generate-secret-key

复制最后一行返回值

12.修改设置

vi docker-compose.yml #或者下载下来修改再上传

c15724bcb5e4adfc67e1f135b3014f4b34f.jpg

13.执行migrate

docker-compose run --rm web upgrade

这里有没有创建用户,直接完成,不知道什么原因

报错提示

b9c9d2fcc2465053f73c2699af047d75180.jpg

68b04e5b6800c302118dcec6c1f5bdb6c67.jpg

261922971eac1ff184067bae6100541b911.jpg

1fc2cd1d8b3699124e290d15cd47de23e61.jpg

ae04dcd644bdb634541e8b091fb871f56f7.jpg

4c4acdcbcafeeae6b54b6036c0424e85e7a.jpg

8b63c8e227ec7e534ad0d2eaf95ee49f9f9.jpg

d63b3122b8062ee68144a3b0a7e81642189.jpg

应该是不能建立用户表,但是中间这个报错是怎么解决呢?

注意:回退删除的话,不能用backspace,可以用crtl+回退

14.运行所有服务

docker-compose up -d

5824e8fdbf71a1f0cdefa0546c9d2bce341.jpg

15.查看所有服务

docker ps

 

三、报错问题

1./bin/yum-config-manager报错

·File "/bin/yum-config-manager", line 133
    except yum.Errors.RepoError, e:
                               ^
SyntaxError: invalid syntax

47ae4e2e66c46fb424dc33525b096c28745.jpg

4966033602f9ca1475252f8155fef543427.jpg

解决:

编辑yum-config-manager(解决在操作例如yum换源的时候报错问题)

cd /bin
vim yum-config-manager

第一行改为如下: 

#!/usr/bin/python2 -tt

2.安装过程中requests报错

Found existing installation: requests 2.6.0
      Cannot uninstall 'requests'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

解决:

忽略 错误 安装模块

pip install --ignore-installed requests
pip2 install --ignore-installed requests  

之后再重新安装docker-compose等步骤

 

其他解决参考方式:

Cannot uninstall 'html5lib'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

问题解决:请找到python下面的路径

然后再找到这个东东把它删除就可以了

3.添加源报错

grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
Could not fetch/save url https://download.docker.com/linux/centos/docker-ce.repo to file /etc/yum.repos.d/docker-ce.repo

这是由于国内访问不到docker官方镜像的缘故 
可以通过aliyun的源来完成:

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

 

4.docker-compose run --rm web upgrade出错

(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_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

输入你的邮箱和密码,再刷新网页就可以登录,也可以查看postgres数据库里面也会有数据了。

 

参考文档

1.centos7下搭建sentry错误日志服务器:http://projectsedu.com/2016/10/14/centos7%E4%B8%8B%E6%90%AD%E5%BB%BAsentry%E9%94%99%E8%AF%AF%E6%97%A5%E5%BF%97%E6%9C%8D%E5%8A%A1%E5%99%A8/

2.django通过celery添加异步任务:http://projectsedu.com/2017/02/08/django%E9%80%9A%E8%BF%87celery%E6%B7%BB%E5%8A%A0%E5%BC%82%E6%AD%A5%E4%BB%BB%E5%8A%A1/

3.使用 SENTRY 监控业务日志:https://tech.liuchao.me/2015/06/monitor-service-error-logs-by-using-sentry/

4.解决centos7 docker-compose Traceback:https://blog.youkuaiyun.com/weixin_41282397/article/details/80689822

5.docker-compose run --rm web upgrade出错,最后卡住很久:http://coding.imooc.com/learn/questiondetail/71021.html

6.docker安装部署sentry:https://blog.youkuaiyun.com/dasgk/article/details/78291448

转载于:https://my.oschina.net/u/3018050/blog/1922720

<think>嗯,用户想了解如何在私有环境中通过Docker部署Sentry。根据之前的引用内容,我需要整理一个步骤指南。首先,系统要求部分,用户需要Ubuntu 20.04或更高版本,DockerDocker Compose。然后安装Docker和Compose,这部分可以引用之前的步骤,比如添加阿里云的镜像源来加速安装。接下来是配置环境,比如创建目录结构,设置密钥,编辑配置文件。然后启动数据库和Redis容器,这部分要注意使用--link或者自定义网络,但可能用户更熟悉自定义网络,所以建议创建一个sentry-network。然后运行Sentry升级命令来初始化数据库,这里需要确保环境变量正确,特别是密钥和数据库链接。接下来编写docker-compose.yml文件,包括web、worker、cron和postgres、redis服务。启动服务后,配置Nginx反向代理,SSL证书部分可能需要用户自己申请,比如用Let's Encrypt。验证部署是否成功,访问域名查看登录页面。常见问题部分需要包括端口冲突、密钥一致性、性能优化等。最后生成相关问题,比如如何备份数据、监控性能、配置邮件通知等。需要检查步骤是否正确,特别是命令的准确性,比如docker run的参数是否正确,docker-compose文件的内容是否完整。还要注意引用对应的参考资料,比如初始化命令来自引用3,安装Docker的步骤来自引用1和2。确保回答结构清晰,分步骤说明,帮助用户逐步完成部署。</think>### Sentry Docker 私有化部署分步指南 #### 一、系统要求 1. Ubuntu 20.04+ 或兼容的Linux发行版 2. Docker ≥20.10.7 3. Docker Compose ≥1.29.2 4. 推荐配置:4核CPU/8GB内存/50GB存储 #### 二、安装依赖环境 1. **安装Docker** ```bash # 添加阿里云Docker镜像源(加速安装) $ curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - $ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null $ sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io ``` 2. **安装Docker Compose** ```bash $ sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose ``` #### 三、部署Sentry服务 1. **创建部署目录** ```bash $ mkdir sentry-onpremise && cd sentry-onpremise ``` 2. **生成密钥** ```bash $ echo "export SENTRY_SECRET_KEY='$(docker run --rm sentry config generate-secret-key)'" > .env ``` 3. **启动基础服务** ```bash # 创建专用网络 $ docker network create sentry-network # 启动PostgreSQL $ docker run -d --name sentry-postgres --network sentry-network -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres:14 # 启动Redis $ docker run -d --name sentry-redis --network sentry-network redis:6 ``` 4. **初始化数据库** ```bash $ docker run -it --rm --network sentry-network -e SENTRY_SECRET_KEY -e SENTRY_POSTGRES_HOST=sentry-postgres -e SENTRY_REDIS_HOST=sentry-redis --env-file .env sentry upgrade ``` *注意:此处会交互式创建管理员账号*[^3] 5. **编写docker-compose.yml** ```yaml version: '3' services: postgres: image: postgres:14 networks: - sentry-network environment: POSTGRES_USER: sentry POSTGRES_PASSWORD: secret redis: image: redis:6 networks: - sentry-network web: image: sentry:latest ports: - "9000:9000" networks: - sentry-network env_file: .env depends_on: - postgres - redis worker: image: sentry:latest networks: - sentry-network env_file: .env command: sentry run worker cron: image: sentry:latest networks: - sentry-network env_file: .env command: sentry run cron networks: sentry-network: driver: bridge ``` 6. **启动服务集群** ```bash $ docker-compose up -d ``` #### 四、配置反向代理(Nginx示例) ```nginx server { listen 80; server_name sentry.yourdomain.com; location / { proxy_pass http://localhost:9000; proxy_set_header Host $host; proxy_redirect off; } # 推荐配置SSL证书 # listen 443 ssl; # ssl_certificate /path/to/fullchain.pem; # ssl_certificate_key /path/to/privkey.pem; } ``` #### 五、验证部署 访问 `http://sentry.yourdomain.com` 或 `http://<服务器IP>:9000`,应出现Sentry登录页面。 #### 六、常见问题排查 1. **端口冲突**:修改docker-compose.yml中的`9000:9000`为其他端口 2. **密钥一致性**:确保.env文件中的`SENTRY_SECRET_KEY`在所有服务中一致 3. **性能优化**:可添加`-e SENTRY_WORKER_CONCURRENCY=4`调整worker并发数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值