【实施】Sentry-self-hosted部署

Sentry-self-hosted部署

介绍

Sentry 是一个开源的错误追踪(error tracking)平台。它主要用于监控和追踪应用程序中的错误、异常和崩溃。Sentry允许开发人员实时地收集和分析错误,并提供了强大的工具来排查和修复问题,研发最近是需要使用这个工具,因为大家都熟,就帮忙部署了一下。

部署过程

官方文档

把链接先放出来:官方文档

其实没什么有用的内容,就是运行./install.sh然后docker compose,但是真按照文档说的就会各种踩坑了,下面一点点说。

安装包获取

首先是获取安装包,不要直接按照教程使用git clone,因为master分支上可能有各种变更影响部署,一定要直接从release中下载部署脚本包,这里我下载最新的 self-hosted-23.10.1

image-20231116095932626

下载完后放到你的服务器上解压,可以看到解压出来的目录下有这些文件,install.sh是我们要运行的脚本:

image-20231116100056798

修改Dockerfile

由于大国特色,正常的部署方式会存在一些限制,比如网络问题,这里手动修改一些Dockerfile内容避免网络影响部署:

# 修改jq/Dockerfile
FROM debian:bullseye-slim
LABEL MAINTAINER="oss@sentry.io"
# 增加修改国内阿里debian源的步骤
RUN set -x \
  && echo "deb http://mirrors.aliyun.com/debian  stable main contrib non-free" > /etc/apt/sources.list  \
  && echo "deb http://mirrors.aliyun.com/debian  stable-updates main contrib non-free" >> /etc/apt/sources.list  \
  && apt-get update -y \
  && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends jq \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["jq"]
# 修改cron/Dockerfile
ARG BASE_IMAGE
FROM ${BASE_IMAGE}
USER 0
RUN if [ -z "${http_proxy}" ]; then echo "Acquire::http::proxy \"${http_proxy}\";" >> /etc/apt/apt.conf; fi
RUN if [ -z "${https_proxy}" ]; then echo "Acquire::https::proxy \"${https_proxy}\";" >> /etc/apt/apt.conf; fi
# 增加修改国内阿里debian源的步骤
RUN echo "deb http://mirrors.aliyun.com/debian  stable main contrib non-free" > /etc/apt/sources.list  \
    && echo "deb http://mirrors.aliyun.com/debian  stable-updates main contrib non-free" >> /etc/apt/sources.list  \
  && echo "deb https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib" >> /etc/apt/sources.list  \
  && echo "deb-src https://mirrors.aliyun.com/debian/ bookworm main non-free non-free-firmware contrib" >> /etc/apt/sources.list  \
  && echo "deb https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.list  \
  && echo "deb-src https://mirrors.aliyun.com/debian-security/ bookworm-security main" >> /etc/apt/sources.list  \
  && echo "deb https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib" >> /etc/apt/sources.list  \
  && echo "deb-src https://mirrors.aliyun.com/debian/ bookworm-updates main non-free non-free-firmware contrib" >> /etc/apt/sources.list  \
  && echo "deb https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib" >> /etc/apt/sources.list  \
  && echo "deb-src https://mirrors.aliyun.com/debian/ bookworm-backports main non-free non-free-firmware contrib" >> /etc/apt/sources.list  \
    && apt-get update && apt-get install -y --no-install-recommends cron && \
    rm -r /var/lib/apt/lists/*
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

修改安装脚本

部署脚本install/install-wal2json.sh会从github拉取软件发布包,这个过程可能会出现超时,我把git的仓库拉到了gitee中,仓库地址为https://gitee.com/li-jia-dong/wal2json,然后对脚本做如下修改:

# 修改install/install-wal2json.sh
echo "${_group}Downloading and installing wal2json ..."

WAL2JSON_DIR=postgres/wal2json
FILE_TO_USE="$WAL2JSON_DIR/wal2json.so"
ARCH=$(uname -m)
FILE_NAME="wal2json-Linux-$ARCH-glibc.so"

docker_curl() {
  # The environment variables can be specified in lower case or upper case.
  # The lower case version has precedence. http_proxy is an exception as it is only available in lower case.
  docker run --rm -e http_proxy -e https_proxy -e HTTPS_PROXY -e no_proxy -e NO_PROXY curlimages/curl:7.77.0 \
    --connect-timeout 5 \
    --max-time 10 \
    --retry 5 \
    --retry-max-time 60 \
    "$@"
}

if [[ $WAL2JSON_VERSION == "latest" ]]; then
  VERSION=0.0.2
else
  VERSION=$WAL2JSON_VERSION
fi

mkdir -p "$WAL2JSON_DIR"
if [ ! -f "$WAL2JSON_DIR/$VERSION/$FILE_NAME" ]; then
  mkdir -p "$WAL2JSON_DIR/$VERSION"
  # 更改git的url
  docker_curl -L \
    "https://gitee.com/li-jia-dong/wal2json/releases/download/$VERSION/$FILE_NAME" \
    >"$WAL2JSON_DIR/$VERSION/$FILE_NAME"
fi
cp "$WAL2JSON_DIR/$VERSION/$FILE_NAME" "$FILE_TO_USE"

echo "${_endgroup}"

如果这里不做操作,可能出现访问超时的情况,当然如果你的网络很好就当我没说:

image-20231116101447470

部署过程操作

上述的操作做过以后,部署过程会很顺利,只有几个要手动输入的地方,第一个就是是否发送使用数据,正常来说都给禁用就行:

image-20231116100952473

还有个地方就是部署完成的时候让你输入一个用户名密码的地方,根据指引进行操作就可以:

image-20231116101044926

服务启动

当完成部署以后,会出现下面的提示,将命令复制出来执行就会启动Sentry服务了:

-----------------------------------------------------------------

You're all done! Run the following command to get Sentry running:

  docker compose up -d

-----------------------------------------------------------------

image-20231116092825542

页面访问

默认情况下访问http://${ip}:9000就能访问Sentry的web页面了:

image-20231116101840636

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/152612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML特殊字符对照码(避免字符乱码)

最近做了个vue项目,页面上写大于等于符号,小于等于符号的时候,总是出现乱码。特别让人头疼,后来查了资料,使用特殊字符的方式,能解决掉这个问题。所以将这些HTML 特殊字符对照码列出来,方便日后…

电影《惊奇队长2》观后感

上周看完了电影《惊奇队长2》,可能是最近国片看多了,看看国外电影还是感觉非常不错的,其中就有特效部分。目前来说,国内特效和国外还是有一定差距的,在过年时,备受好评的《流浪地球2》据说也是用的国外特效…

2024清理mac苹果电脑内存免费工具CleanMyMac X4.15

当你使用苹果电脑时,内存的优化和清理变得至关重要。随着时间的推移,我们的电脑内存可能会变得拥挤,导致性能下降。清理内存可以提高电脑的速度和反应能力,并确保它始终在良好状态下运行。本文将向您介绍怎么清理苹果电脑内存的方…

2016Outlook显示正在启动无法进入Outlook

2016Outlook显示正在启动无法进入Outlook 故障现象: 因上次非正常关闭,导致Outlook启动时,一直处于启动界面,无法进入主界面正常工作 故障截图: 故障原因: 数据文件异常导致 解决方案: 1、关…

[模版总结] - 树的基本算法3 - 结构转化

二叉树结构转化 通常将二叉树根据某些要求进行结构重构,比如线性结构转化(链表,数组),序列化等。 常见题型 注:这类题目最基本的解题思路是利用递归分治 (也可以使用迭代方法),在构建树结构的时候,我们通…

有什么进销存软件,比较适合零售行业日常开单要求及库存记录?

本文将为大家总结一下对于进销存软件要求: 基础功能:可以日常开单、退换货处理、出入库进阶功能:电脑、手机数据同步,保障数据安全,可进行数据分析 其实无论是小型创业公司,还是一家大型企业,…

Linux下好玩的指令(持续更新)

适用于centOS下,别的Linux换个指令就行,内容是一样的 centOS有的指令安装不了?试试拓展yum源,再安装基本就OK啦! yum install -y epel-release 下面是作者在centOS环境下亲测可以使用的,如果你是root用户直…

软件测试/测试开发丨掌握未来,引领人工智能测试新潮流!

点此领取人工智能课程 在数字化革命的浪潮中,人工智能软件成为企业创新和成功的关键推动力。为了在这个竞争激烈的市场中脱颖而出,精湛的人工智能软件测试技能变得至关重要。 ChatGPT应用实战: 学员将深入了解 ChatGPT 的实际应用&#xf…

微服务和Spring Cloud Alibaba介绍

1、微服务介绍 1.1 系统架构演变 随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程: 单体应用架构 —> 垂直应用架构 —> 分布 式架构—>…

2022年6月 电子学会青少年软件编程 中小学生Python编程 等级考试一级真题答案解析(判断题)

2022年6月Python编程等级考试三级真题解析 判断题(共10题,每题2分,共20分) 26、运行下列python代码后可绘制出下面的半径为50的圆形 import turtle turtle.color(red) turtle.penup() turtle.circle(50) turtle.pendown() 答案:错 考点分析:考查turtle模块的使用,程…

为什么阿里不推荐使用 keySet() 遍历HashMap?

为什么阿里不推荐使用 keySet() 遍历HashMap? HashMap相信所有学Java的都一定不会感到陌生,作为一个非常重用且非常实用的Java提供的容器,它在我们的代码里面随处可见。因此遍历操作也是我们经常会使用到的。HashMap的遍历方式现如今有非常多…

Java爬取哔哩哔哩视频(可视化)

链接:我的讲解视频https://www.bilibili.com/video/BV14e411Q7oG/ 本文仅供学术用途 先上图 代码 爬虫核心 import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.gargoylesoftware.htmlunit.*; import org.apache.commons.…

系列二十六、idea安装javap -c

一、概述 javap -c是一个能够将.java文件反编译为.class文件的指令,例如我在idea中编写了一个Car.java文件,我想看看这个类被编译后长什么样的,就可以使用该指令进行查看。 二、配置 2.1、 Java Bytecode Decompiler File>Settings>Pl…

大数据分析与应用实验任务八

大数据分析与应用实验任务八 实验目的 进一步熟悉pyspark程序运行方式;熟练掌握pysaprk RDD基本操作相关的方法、函数。 实验任务 进入pyspark实验环境,在图形界面的pyspark命令行窗口中完成下列任务: 在实验环境中自行选择路径新建以自…

非对口专业测试人,婉拒猎头、放弃6份高薪offer,你敢信?

从非对口的国贸专业,步入测试之路;从红色旅游小城湘潭,迈入国际化都市上海。“明确方向-及时实践-谨慎选择-踏实扎根-计划未来”。她的每一步,都走得格外坚定有力......话不多说,让我们一起来看看这位小姐姐的成长故事…

PyTorch:张量与矩阵

PyTorch 是一个基于 Python 的科学计算包,专门针对深度学习研究,提供了丰富的工具和库。在 PyTorch 中,张量(tensor)是深度学习的核心数据结构,它可以看作是可以进行自动微分的多维数组。张量不仅可以代表标…

DSVPN简介

定义 动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN,是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。 目的 越来越多的企业希望建立Hub-Spoke方式的IPSec VPN网络将企业总部…

Linux学习第42天:Linux RS232/485/GPS 驱动实验:天外来客

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 Linux的学习笔记今天更新到了第42天。鉴于国往笔记内容整理中出现的问题,我尽量按照平时学习时笔记的要求进行优化。尽量不再大段大段的贴代码。而是…

解决Tomcat中文乱码

cmd乱码如图: idea中运行Tomcat控制台出现乱码: 解决办法: 找到两个idea的vmoptions配置文件,在文件中追加-Dfile.encodingUTF-8 -Dfile.encodingUTF-8保存退出。 重启idea重新运行Tomcat: maven、tomcat 超级详…

什么是 SSL?SSL/TLS是如何工作的?HTTP和HTTPS有什么区别?

SSL 代表安全套接字层,是指用于加密、保护和验证互联网上之通信的协议。尽管 SSL 在一段时间前已被称为 TLS(传输层安全性)的更新协议代替,但“SSL”仍是该技术的常用术语。 SSL/TLS 的主要用例是保护客户端和服务器之间的通信安…