银河麒麟部署自托管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的错误:

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

相关推荐
Mintopia3 天前
无界微前端:父子应用通信、路由与状态管理最佳实践
架构·前端框架·全栈
Mintopia3 天前
🎭 小众语言 AIGC:当 Web 端的低资源语言遇上“穷得只剩文化”的生成挑战
人工智能·aigc·全栈
爷_3 天前
Golang: sqlc 和 goose 最佳实践
后端·go·全栈
前端开发工程师请求出战4 天前
Advanced RAG实战:评估闭环与持续优化体系
人工智能·全栈
Mintopia4 天前
Claude Code CLI UI
人工智能·aigc·全栈
pixle05 天前
从零学习Node.js框架Koa 【六】Koa文件上传下载实现:@koa/multer 与 koa-send 深度解析
node.js·web·koa·js·全栈·服务端·文件上传下载
Mintopia5 天前
🧩 Claude Code Hooks 最佳实践指南
人工智能·claude·全栈
小小小怪兽7 天前
关于氛围编程(Vibe Coding)的一切
人工智能·全栈
玉宇夕落8 天前
用 LLM 自动生成 SQL:从 SQLite Schema 到自然语言查询的完整实践
全栈
Mintopia10 天前
🧠 Claude Code 接入 Context7 MCP:一场上下文扩展的浪漫协作
人工智能·claude·全栈