银河麒麟部署自托管Sentry流程及问题记录(暂未成功)

Sentry

是什么?

Sentry 是一个开源的应用错误监控(Error Tracking)系统。它的主要功能是:

  • 自动捕获应用中的错误(比如 JavaScript 报错、Python 异常、Java 崩溃等)。
  • 记录错误的堆栈信息、发生时间、用户信息、浏览器/操作系统等上下文。
  • 提供 Web 界面便于查看、分类、排查错误。
  • 支持告警(比如通过邮件、Slack 通知严重错误)。

简单说,它就像一个"监控摄像头",专门盯着应用有没有出错。

怎么用?

官方文档:develop.sentry.dev/getting-sta...

  1. 部署 Sentry 服务

    方式 说明
    Sentry 官方 托管在 Sentry 官方服务器,开箱即用,按用量付费。
    自托管 部署在自己的服务器上,数据完全自主可控,长期使用更经济。
  2. 项目中集成 Sentry SDK

部署自托管 Sentry

本文使用 Docker Compose 进行部署

流程

流程很简单,但是中间的问题一个接一个。。。

  1. 安装 Docker、Docker Compose

  2. 克隆自托管仓库

    bash 复制代码
    VERSION=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/getsentry/self-hosted/releases/latest)
    VERSION=${VERSION##*/}
    git clone https://github.com/getsentry/self-hosted.git
    cd self-hosted
    git checkout ${VERSION}

    ⚠️ 上述是官方给的流程,根据上述流程切分支后发现 docker-compose.yml 中缺少 Web 项后续会报错,所以直接 clone 仓库后用 master 分支就行。

  3. 运行安装脚本./install.sh (问题集中在此,并未完全解决完)

  4. 启动 Sentry 服务

    bash 复制代码
     docker compose up --wait

    👉 启动成功后,打开浏览器访问:http://127.0.0.1:9000

遇到的问题

  1. ❌ 拉取镜像超时 ✅ 在/etc/docker/daemon.json中配置镜像源

    json 复制代码
    "registry-mirrors": [
        "https://docker.1ms.run",
        "https://docker-0.unsee.tech"
    ]
  2. ❌ (未彻底解决,如果有朋友知道如何解决,求分享)

    ⚠️ 这里应该是有两个问题:

    1. apt-utils is not installed
    2. dpkg: error: need an action option
    • 针对第一个问题,修改jq/Dockerfile文件:

      Dockerfile 复制代码
      FROM debian:bookworm-slim
      LABEL MAINTAINER="oss@sentry.io"
      RUN apt-get update
      RUN apt-get install -y apt-utils
      RUN set -x \
          && apt-get update \
          && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends jq \
          && apt-get clean \
          && rm -rf /var/lib/apt/lists/*
      ENTRYPOINT ["jq"]

      ❓ 但是这个问题应该不会导致报错,并且该提示出现过多次,最开始通过修改上述代码解决了,但后续仍会出现这个提示,所以对该方案是否能解决问题存疑。

    • 针对第二个问题,docker builder prune

      ❓ 这个问题在第一次通过清除缓存解决了,但后续依然出现,目前也是卡在这个问题上,清除缓存失效,所以依旧存疑。

  3. ❌ 镜像拉取失败 ✅ 最开始没有统一配镜像源,遇到拉取失败手动安装,这也导致了下一个问题的出现。

  4. ❌ 架构不匹配 我的CPU是ZHAOXIN kaixian KX-7000对应于X86(也称为X64架构),而我最开始下载了arm64版本。

  5. ❌ Github 上 Python 包安装失败 ✅ 修改sentry/Dockerfile

    Dockerfile 复制代码
    ARG SENTRY_IMAGE
    FROM ${SENTRY_IMAGE}
    
    
    RUN pip install https://gh.llkk.cc/https://github.com/stayallive/sentry-nodestore-s3/archive/main.zip
    
    COPY . /usr/src/sentry
    
    RUN if [ -s /usr/src/sentry/enhance-image.sh ]; then \
        /usr/src/sentry/enhance-image.sh; \
        fi
        
    RUN if [ -s /usr/src/sentry/requirements.txt ]; then \
        echo "sentry/requirements.txt is deprecated, use sentry/enhance-image.sh - see https://develop.sentry.dev/self-hosted/#enhance-sentry-image"; \
        pip install -r /usr/src/sentry/requirements.txt; \
        fi
  6. ❌ 镜像源拉取失败 ✅ 尝试了几个镜像仓库拉取失败,手动拉取clickhouse-server:25.3.6.10034.altinitystable

  7. ❌ 权限问题 + 参数列表过长

    • 针对权限问题,尝试了添加在上述目录中添加USER:0,不生效;尝试将cronsentry目录下的entrypoint.sh文件中权限相关代码注释:

      sh 复制代码
      #if [ "$(ls -A /usr/local/share/ca-certificates/)" ]; then
      #    update-ca-certificates
      #fi

      解决权限问题后,又出现问题2中的dpkg问题。

    • ❓ 针对参数列表过长问题,尝试清除缓存,重新安装,但未成功,并且卡在了最开始的步骤,一直报问题2的错误:

准备重新拉仓库下来尝试一下,网上搜到的教程都很丝滑,我这儿实在是困难重重啊,有经验的小伙伴求分享!

相关推荐
jun_不见33 分钟前
nest初体验-用nest实现一个简单的CRUD功能
前端·node.js·全栈
前端双越老师2 小时前
自由职业者 2025 年终总结:转型 AI 全栈
面试·ai编程·全栈
小皮虾1 天前
搞全栈还在纠结 POST、GET、RESTful?试试这个,像调用本地函数一样写接口
前端·node.js·全栈
小皮虾4 天前
别再封装 Axios 了!用 RPC 像调用本地函数一样写接口(支持 Vue/React/Node)
前端·rpc·全栈
Mintopia4 天前
🧭 Next.js 服务器部署摘要
react.js·全栈·next.js
_阿南_5 天前
重温UTF-8和UTF-16
全栈
全栈老石6 天前
别再折腾端口转发了:使用 Cloudflare Tunnel 优雅地分享你的 localhost
前端·后端·全栈
Mintopia10 天前
🚀 AIGC 如何重塑 Web 内容生产的价值链 —— 一场“硅基文艺复兴”的技术变革
人工智能·aigc·全栈
LYFlied11 天前
在AI时代,前端开发者如何构建全栈开发视野与核心竞争力
前端·人工智能·后端·ai·全栈