乐趣区

关于sentry:聊聊如何解决官方提供的onpremise项目安装sentry速度过慢问题

前言

何为 sentry

sentry 是一个基于 Django 构建的现代化开源的实时谬误追踪零碎,能够帮忙开发者发现问题、追踪问题

sentry 官网文档

https://docs.sentry.io/

sentry 装置

咱们能够应用官网提供的 https://github.com/getsentry/onpremise.git 的我的项目进行装置。

装置步骤如下

以在 centos7 装置为例

1、克隆 onpremise 我的项目

yum install git
git clone https://github.com/getsentry/onpremise.git

2、切换到 onpremise 目录,执行 install.sh 装置脚本

 cd onpremise
 ./install.sh

只有执行这两步,就能够悠哉的喝杯咖啡期待装置实现了。前面你会发现,这个装置的工夫,绝不是喝一杯咖啡的工夫就能够解决了,可能是要喝 N 杯。因为这个等待时间切实是有点漫长,我第一次装置耗时差不多有 3 个小时。因为有了这次体验,前面再装置,我就在思考如何晋升这个装置速度了

如何晋升 onpremise 我的项目装置 senrty 的速度

通过观察执行的 install.sh 脚本的日志,发现他执行到

RUN apt-get update && apt-get install -y --no-install-recommends cron && \
    rm -r /var/lib/apt/lists/*

这句脚本就会十分慢,他会下载 debian,而且一旦下载没胜利,就会报错退出,就得从新再来一次,让人会很抓狂。因为下载 debian 的地址是在国外,所以下载速度就异样慢,那咱们解决的思路就有要么翻墙,要么就是切换 debian 的镜像源。我的计划是前面一种

因而这句脚本执行前,咱们能够加如下脚本

Run sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list

这句话的意思就是将 debian 的镜像源切换成 163 镜像源

或者你也能够用以下脚本,也能够达到下面的成果( 不过不是很举荐这种形式,因为上面这句脚本的意思是装置 debian10 版本的镜像源,如果 sentry 依赖是高于 debian10 版本,那就完犊子

RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \

    echo deb http://mirrors.163.com/debian/ buster main non-free contrib >>/etc/apt/sources.list && \

    echo deb http://mirrors.163.com/debian/ buster-updates main non-free contrib >>/etc/apt/sources.list && \

    echo deb http://mirrors.163.com/debian/ buster-backports main non-free contrib >>/etc/apt/sources.list && \

    echo deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib >>/etc/apt/sources.list && \

    echo deb-src http://mirrors.163.com/debian/ buster main non-free contrib >>/etc/apt/sources.list && \

    echo deb-src http://mirrors.163.com/debian/ buster-updates main non-free contrib >>/etc/apt/sources.list && \

    echo deb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib >>/etc/apt/sources.list && \

    echo deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib >>/etc/apt/sources.list

这个脚本的批改地位在 onpremise/cron/Dockerfile, 就是批改 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
Run sed -i 's#http://deb.debian.org#https://mirrors.163.com#g' /etc/apt/sources.list
RUN apt-get update --fix-missing && apt-get install -y --no-install-recommends cron --fix-missing && \
    rm -r /var/lib/apt/lists/*
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

批改后,从新执行 install.sh,你就会发现速度会有不一样晋升

总结

本文次要是基于切换 debian 镜像源来进步 sentry 装置速度,因为 sentry 的版本更新还是比拟快的,不同的版本,解决方案可能就不一样,本文仅能当做参考。不过大道至简,咱们遇到这种问题,咱们能够通过观察他的装置过程,从中找一些蛛丝马迹。说点题外的,也不懂为啥 sentry 会依赖那么多种组件,基本上支流的中间件,比方 kafka、zookeeper、clickhouse、redis 等它都用上了,这对运维可是要进步了不少要求。

本文的装置次要是基于 docker 装置,至于如果是想装置到 k8s 上,举荐用 helm,因为 sentry 依赖的组件切实有点多。上面的链接是 sentry 的 charts,感兴趣的敌人能够尝试一下
https://github.com/helm/charts/tree/master/stable/sentry

退出移动版