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

100 阅读2分钟

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. 克隆自托管仓库

    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 服务

     docker compose up --wait
    

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

遇到的问题

  1. ❌ 拉取镜像超时 f6cefa81-4e32-4c03-badf-b0db6ed00ef8.png ✅ 在/etc/docker/daemon.json中配置镜像源

    "registry-mirrors": [
        "https://docker.1ms.run",
        "https://docker-0.unsee.tech"
    ]
    
  2. ❌ (未彻底解决,如果有朋友知道如何解决,求分享) c91643e6-f3d5-4adc-b8dc-4c87c9d4c0b6.png

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

    1. apt-utils is not installed
    2. dpkg: error: need an action option
    • 针对第一个问题,修改jq/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. ❌ 镜像拉取失败 f1f0d6ff-9ab6-4c12-95bc-0315e6446ed7.png ✅ 最开始没有统一配镜像源,遇到拉取失败手动安装,这也导致了下一个问题的出现。

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

  5. ❌ Github 上 Python 包安装失败 efd19d19-b96e-4ebc-aee7-17ff61884829.png ✅ 修改sentry/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. ❌ 镜像源拉取失败 08e8a305-54e4-4c37-9aa7-f20c26ea428b.png ✅ 尝试了几个镜像仓库拉取失败,手动拉取clickhouse-server:25.3.6.10034.altinitystable

  7. ❌ 权限问题 + 参数列表过长 2205b32d-dac5-4f3d-abca-26a8cbadedb1.png

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

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

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

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

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