CentOS7上面搭建sentry24版本详细教程与踩坑记录

news/2025/3/17 12:11:23

文章目录

    • 一、选择机器配置
    • 二、安装docker-ce和docker-compose
    • 三、安装sentry服务
      • 3.1 安装sentry
      • 3.2 外部代理Nginx配置
    • 四、报错与踩坑解决记录
      • 4.1 yum update 报错Could not retrieve mirrorlist http://mirrorlist.centos.org
      • 4.2 yum install docker-ce出现如下报错 Requires: slirp4netns >= 0.4
      • 4.3 install.sh执行过程clickhouse服务启动不起来Waiting for clickhouse server, 18 remaining attempts...
      • 4.4 install.sh执行过程数据库字段冲突报错
      • 4.5 geoipupdate服务报错
      • 4.6 关于报错 Error in bootstrap-snuba.sh:3
      • 4.7 关于sentry启动后无法登录报错CSRF验证失败的问题。


这次搭建sentry24.8这个版本,这是一个比较新的版本,安装过程中多去github以及stack overflow上面去寻找问题,由于百度上面可以搜索到的内容很有限,所以本次将一些踩坑记录都记录一下。

一、选择机器配置

先列一下我的操作配置:

操作系统:CentOS Linux release 7.6
docker版本:Docker version 26.1.4
docker-compose版本:Docker Compose version v2.5.0
服务器情况:8核16G,磁盘至少50G,建议实际使用配置100G以上。

注意:
docker尽量用新版的,docker低于21的版本不建议考虑,因为新版的sentry要求比较新的docker。建议大家都用到我这个配置之上,不然会出现一些莫名奇妙的问题。服务器配置不低于8核16G,因为启动的时候有50多个docker服务,有条件直接上32G的。

由于业务需要,我搭建的是比较新的版本,sentry 24.8.0。

dockercedockercompose_16">二、安装docker-ce和docker-compose

如果有报错请去下面报错专区寻找相关问题

dockerce_18">2.1 安装docker-ce

配置源

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

or

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

然后开始安装docker-ce

yum install docker-ce docker-ce-cli containerd.io

安装完成后启动并检查版本

service docker start
docker --version

dockercompose_37">2.2 安装docker-compose

依次执行下面的命令即可,这个步骤一般没啥问题,比较顺利

sudo curl -L "https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
docker-compose --version

sentry_44">三、安装sentry服务

sentry_45">3.1 安装sentry

这次我们使用的离线项目本地安装的方式安装sentry

# 创建源码目录
mkdir /root/sentry
cd /root/sentry
# 获取基于dokcer-compose的构建项目并解压进入
wget https://github.com/getsentry/self-hosted/archive/refs/tags/24.8.0.zip
unzip 24.8.0.zip 
cd self-hosted-24.8.0/
# 开始安装
./install.sh

原则上讲这里就结束了,启动起来就够了,但是会遇到很多问题,如果有问题请见下面的报错部分查找,大概问题有如下一些。

  1. clickhouse服务启动不起来
  2. 数据库字段冲突报错
  3. geoipupdate服务启动不起来
  4. Error in bootstrap-snuba.sh:3

3.2 外部代理Nginx配置

因为sentry在机器上面启动的是9000端口,为了更好的对外通过80提供服务,我们在宿主机器上面搭建一个Nginx进行一层代理。
安装Nginx。

yum install nginx

主要配置如下

server {
    listen 80;
    listen 443 ssl;
    
    error_log /var/log/nginx/error.log;
    access_log /var/log/nginx/access.log;
    
    index           index.php index.html index.htm;
    server_name sentry.{your domian}.com;
    
    # 443需要证书,这里自行寻找配置即可
    ssl_certificate /etc/nginx/ssl/ssl.crt;
    ssl_certificate_key /etc/nginx/ssl/ssl.key;
    
    location / {
        proxy_pass http://127.0.0.1:9000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

然后启动Nginx后就可以通过域名进行访问了。

nginx

在这里插入图片描述

如果访问这里可能存在问题CSRF验证失败,解决方式见报错处理部分。

四、报错与踩坑解决记录

4.1 yum update 报错Could not retrieve mirrorlist http://mirrorlist.centos.org

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error"
http://mirror.centos.org/centos/7/os/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: mirror.centos.org; Unknown error"
Trying other mirror.

在这里插入图片描述

解决办法是:
从 2024 年 7 月 1 日起,在 CentOS 7 上,请切换到 Vault 存档存储库:

vi /etc/yum.repos.d/CentOS-Base.repo

复制/粘贴以下内容并注意您的操作系统版本。如果需要,请更改。此配置中的版本为 7.9.2009:

[base]
name=CentOS-$releasever - Base
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://vault.centos.org/7.9.2009/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

如果需要,请执行以下操作:

yum clean all

dockerce_Requires_slirp4netns__04_154">4.2 yum install docker-ce出现如下报错 Requires: slirp4netns >= 0.4

在这里插入图片描述
解决办法:
vi /etc/yum.repos.d/docker-ce.repo 在结尾添加:

[centos-extras]
name=Centos extras - $basearch
baseurl=http://vault.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=0

然后执行:

yum remove slirp4netns fuse-overlayfs container-selinux
yum -y install slirp4netns fuse-overlayfs container-selinux

4.3 install.sh执行过程clickhouse服务启动不起来Waiting for clickhouse server, 18 remaining attempts…

在这里插入图片描述
这个问题我的主要报错是先用dokcer logs查看clickhouse容器的报错,显示
DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool)
Probably you are trying to upgrade from version older than 20.7. If so, you should upgrade through intermediate version
这个提示比较明显,就是要通过中间版本来依次升级。解决方式是查看cat install/upgrade-clickhouse.sh这个文件。
在这里插入图片描述
然后更改docker-compose文件,将原来代码这个位置更换成21.8.13.1.altinitystable,不得不说官方这里留了一个坑。
在这里插入图片描述
然后重新执行install.sh,我的这个问题得以解决。

4.4 install.sh执行过程数据库字段冲突报错

constraint "sentry_externalactor_actor_id_a8478274_fk_sentry_actor_id" for relation "sentry_externalactor" already exists
在这里插入图片描述
这个问题也是一个坑,后面的数据库迁移文件执行的时候需要创建这个约束,但是前面又有,我处理这个做法是,在install/set-up-and-migrate-database.sh文件中先删除这个字段。还有一个user_case也是这个问题。添加如下两行到这个位置。

cursor.execute('ALTER TABLE IF EXISTS sentry_externalactor DROP CONSTRAINT IF EXISTS sentry_externalactor_actor_id_a8478274_fk_sentry_actor_id;')
cursor.execute('ALTER TABLE IF EXISTS sentry_projectkey DROP COLUMN IF EXISTS use_case;')

在这里插入图片描述
然后重新执行install.sh,我的这个问题得以解决。

4.5 geoipupdate服务报错

这个包主要用于更新这个文件:geoip/GeoLite2-City.mmdb,就是通过IP定位城市的功能。

通过docker日志发现这里主要是没有 /sentry/GeoIP.conf这个文件,这又是官方包的一个坑。
error loading configuration file /sentry/GeoIP.conf: error opening file: open /sentry/GeoIP.conf: no such file or directory
在这里插入图片描述
我采取的方式是直接创建,执行如下三行命令。

vi geoip/GeoIP.conf 
rm -rf sentry/GeoIP.conf
cp geoip/GeoIP.conf sentry/

GeoIP.conf 里面的内容主要是三行。

AccountID 12312123
LicenseKey asdfasdfaf
EditionIDs GeoLite2-City

AccountID和LicenseKey可以去 这里注册后获取。并登录后在这里生成。

在这里插入图片描述

然后重新执行docker-compose up geoipupdate,我的这个问题得以解决。

geoipupdate启动一次后会自行退出,容器处于exit状态,属于正常情况。

4.6 关于报错 Error in bootstrap-snuba.sh:3

这个问题通过升级docker版本后得以解决,之前我的版本是20,现在是26。

sentryCSRF_225">4.7 关于sentry启动后无法登录报错CSRF验证失败的问题。

在这里插入图片描述

这个问题的解决方式是找到sentry/config.yml,将如下配置放开,并改成你的域名。

system.url-prefix: http://xx.xx.x.xx

并且Nginx的反向代理按照我上面给出的配置配好,然后执行docker-compose restart。


http://www.niftyadmin.cn/n/5891089.html

相关文章

C++双端队列知识点+习题

在C中,双端队列(Deque,发音为“deck”)是标准模板库(STL)中的一种容器适配器,其全称为Double-Ended Queue。它结合了队列和栈的特点,允许在容器的两端(前端和后端&#x…

Kubernetes学习笔记-移除Nacos迁移至K8s

项目服务的配置管理和服务注册发现由原先的Nacos全面迁移到Kubernetes上。 一、移除Nacos 移除Nacos组件依赖。 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <…

ROS实践(三)机器人描述文件xacro(urdf扩展)

目录 一、定义 二、xacro 文件常见组成部分 1. 命名空间声明 2. 定义宏 3. 调用宏 4. 定义参数 5. 条件语句 6. 转换 xacro 文件为 urdf 7. gazebo标签 三、代码示例 1. gazebo标签使用&#xff08;仿真参数配置&#xff09; 2. 引用仿真配置并定义机器人模型&#x…

FSC森林认证:推动全球森林的可持续管理

FSC森林认证是由森林管理委员会&#xff08;Forest Stewardship Council&#xff0c;简称FSC&#xff09;颁发的认证&#xff0c;旨在推动全球森林的可持续管理。该认证通过严格的评估标准&#xff0c;确保森林经营符合环境、社会和经济三方面的可持续性。 核心内容 环境可持续…

【草堂笔记】ARM5到ARM6 分散文件加载错误问题

一 、 背景 在最近的一次项目中&#xff0c;使用的是ciu32L系列的单片机&#xff0c;因为初始化时&#xff0c;需要对flash进行一些数据写入&#xff0c;发现其使用的是ARM5编译 用官方的历程编译一切正常&#xff0c;但我项目使用的是ARM6编译器&#xff0c;所以我也试了下&a…

Adobe Acrobat Pro setting

防火墙断网组织弹窗 Adobe软件突然弹窗“THIS APP HAS BEEN DISABLED”&#xff1f;别慌&#xff0c;几步教你轻松解决&#xff01; 禁用代理 解决Adobe出现This unlicensed Photoshop app has been disabled.禁止使用 rules:- DOMAIN-KEYWORD,adobe,REJECT

C++20 `<bit>` 中的整数 2 的幂运算和 `std::bit_cast`:由浅入深的探索

文章目录 引言 1\. 整数 2 的幂运算1.1 检测是否为 2 的幂&#xff1a;std::has_single_bit1.2 计算不小于 x 的最小 2 的幂&#xff1a;std::bit_ceil1.3 计算不大于 x 的最大 2 的幂&#xff1a;std::bit_floor 2\. std::bit_cast2.1 基本用法2.2 实用场景&#xff1a;字节序…

Vue3实战学习(Vue3快速搭建后台管理系统(网页头部、侧边导航栏、主体数据展示区的设计与实现)(超详细))(9)

目录 一、Vue3工程环境配置、项目基础脚手架搭建、Vue3基础语法、Vue3集成Element-Plus的详细教程。(博客链接如下) 二、Vue3集成Element-Plus详细教程。(博客链接如下) 三、Vue3集成Vue-Router详细教程。(博客链接如下) 四、Vue3快速搭建后台管理系统。(实战学习) &#xff08…