CentOS搭建异常监控服务平台:Sentry

简介

Sentry 是一个实时事件的日志聚合平台。它专门监测错误并提取所有有用信息用于分析,不再麻烦地依赖用户反馈来定位问题。
Sentry发展多年,几乎没有同类产品可与其媲美。它能覆盖大部分的主流编程语言与框架,很适合应用到实际生产环境中采集异常日志。
Sentry 中文翻译过来是 哨兵 的意思,不错,Sentry 是程序的 哨兵 ,它可以监控我们在生产环境中项目的运行状态,一旦某段代码运行报错或者异常,会第一时间把报错的 路由异常文件,请求方式 等一些非常详细的信息以消息或者邮件给我们,让我们第一时间知道:程序出错,然后我们可以从 Sentry 给我们的详细的错误信息中瞬间找到我们需要处理的代码,悄悄把 Bug 修复。

环境搭建

你如果试用 Sentry 官方提供给你的服务是需要收费的,当然我们可以自己搭建 Sentry 。
Sentry可以使用Python2.7搭建,也可以利用Docker直接部署。考虑到目前大部分用户已经使用Python3,直接安装Sentry可能弄乱Python环境,因此强烈推荐使用Docker搭建Sentry环境

CentOS 7安装 docker

获取最新版本的 Docker 安装包,CentOS 6.X 使用此命令安装会报错, 请使用后面的方式安装

wget -qO- https://get.docker.com/ | sh

由于某种原因国内无法直接从 docker 官方库直接获取镜像, 我们可以使用 Docker 加速器 运行下面命令即可。

curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://4031ebb7.m.daocloud.io

等待下载脚本并且安装 Docker 及依赖包,经过漫长的等待,终于安装成功。
docker安装

CentOS 6安装 docker

yum install docker-io

安装完毕, 通过 docker version 可以查看版本号并确认是否安装成功。
Centos6安装docker
安装完毕记得启动docker

service docker start

安装 docker-compose

这里推荐使用 Python 的 pip 管理工具来安装 docker-compose

先安装pip

yum -y install python-pippi
pip install --upgrade pip

pip安装docker-compose

pip install -U docker-compose

如果安装过程中可能提示python2相关错误,
pip安装docker-compose错误
可能由于版本兼容性原因, 这时候可以先升级配置Python3和pip3环境
安装EPEL和IUS软件源

yum install epel-release -y
yum install https://centos7.iuscommunity.org/ius-release.rpm -y

安装Python3.6

yum install python36u -y
yum install python36u-devel -y

创建python3连接符

ln -s /bin/python3.6 /bin/python3

安装pip3

yum install python36u-pip -y

创建pip3链接符

ln -s /bin/pip3.6 /bin/pip3

使用pip3安装docker-compose

pip3 install -U docker-compose

安装就结束了;查看是否安装成功

docker-compose --version 

pip3安装docker-compose

搭建 sentry

做完了准备工作,就可以开始搭建 sentry 了。
GitHub 上面获取最新的 sentry

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

进入 clone 下来的 onpremise 目录

自动安装

注意: 通过 Docker 本地搭建 Sentry 的时候,需要 docker 版本为 1.10.0 以上,docker-compose
版本为 1.17.0 以上,同时要求最低有 3GB 的可用内存。
这里要求是3G以上内容, 如果你在虚拟机安装注意设置内存大小

如果并没有特殊要求或者额外的组件配置的话(比如说使用已有的 Postgresql 和 redis),可以直接运行 ./install.sh 将 Sentry 及其依赖都通过 docker 安装。

./install.sh

安装过程中会出现输入超级管理员账号密码, 输入完毕, 一切顺利就安装成功了.
安装成功
等待安装完成之后可以访问你的 Sentry了

运行 sentry服务

docker-compose up -d

访问地址: http://192.168.0.251:9000/
注意对 Mac 或使用 ToolBox 的 docker 用户来说,应该是其 VirtualBox 虚拟机的网络地址, 默认端口:9000

如果不使用 install.sh 进行部署的话,可以采用如下步骤(建议采用自动安装, 手动安装会出现比较多问题):

手动安装

注意以下操作都在项目目录下进行
创建对应的目录

mkdir -p data/{sentry,postgres} 

初始化环境:必须先执行以下命令,不然生成key会连续报相关错误

docker volume create --name=sentry-data
docker volume create --name=sentry-postgres
docker volume create --name=sentry-redis
docker volume create --name=sentry-zookeeper
docker volume create --name=sentry-kafka
docker volume create --name=sentry-clickhouse
docker volume create --name=sentry-symbolicator

查看目录是否存在.env文件, 不存在则从.env.example 复制一份重命名为 .env 即可
根据需要修改 docker-compose.yml (比方说 Sentry 的 Web 默认使用 9000 端口,而我这边这个端口分配给了 portainer,所以需要修改 web 的 port ‘9000:9000’ 为 ‘9001:9000’)

使用 docker-compose 构建镜像

docker-compose build --pull

生成 Sentry 密钥,并将这个值填到 .env 的 SENTRY_SECRET_KEY 配置上

docker-compose run --rm web config generate-secret-key

安装期间遇到问题及解决方案

生成密钥错误1
docker-compose错误
由于docker未启动,需先启动docker

service docker restart

生成密钥错误2
compose错误2
按照提示执行

docker volume create --name=sentry-data

生成密钥错误3
compose错误3
按照提示执行

docker volume create --name=sentry-postgres

生成密钥错误4
compose错误4
按照提示执行

docker volume create --name=sentry-redis

生成密钥错误5
compose错误5
按照提示执行

docker volume create --name=sentry-zookeeper

生成密钥错误6
compose错误6
按照提示执行

docker volume create --name=sentry-kafka

生成密钥错误7
compose错误7
按照提示执行

docker volume create --name=sentry-clickhouse

生成密钥错误8
compose错误8
按照提示执行

docker volume create --name=sentry-symbolicator

解决以上错误后再次执行命令:生成secret key

docker-compose run --rm web config generate-secret-key

再次经过漫长的等待,一切顺利的话,key生成成功:过程中可能出现下载超时(timeout),重新执行命令,重试就可以了。
生成key
复制获取到的 key 字符串,添加环境配置.env

vim .env

填写环境密匙

SENTRY_SECRET_KEY=bvwf-fm6=o*=)ae@vmd_ls6ivmey#-oqi5vuxwo#5y()+di*o7
SENTRY_IMAGE=sentry:9.1.2

环境配置

更新配置及创建超级管理员用户

docker-compose run --rm web upgrade

注意在这个过程中会询问你是否创建超级用户,如果确定,则输入邮箱和密码。
等待安装完成之后可以访问你的 Sentry了

运行 sentry服务

docker-compose up -d

如果修改配置, 需重启docker使配置生效

docker-compose down && docker-compose up -d

Sentry 的邮件配置

Sentry 支持邮件发送的功能非常重要,当 Sentry 捕获事件之后,可以将此捕获的事件发送到你的个人邮箱(针对 Sentry 管理员账号)。要修改目前的邮件配置是不能在界面上操作的,需要进行以下步骤:

修改 .env 文件,补充以下环境变量

SENTRY_SERVER_EMAIL 邮件的发送地址
SENTRY_EMAIL_HOST smtp 服务器主机地址
SENTRY_EMAIL_USER smtp 服务器用户
SENTRY_EMAIL_PASSWORD smtp 服务器密码
SENTRY_EMAIL_PORT smtp 服务器端口
SENTRY_EMAIL_USE_TLS 是否使用 TLS,默认为 false

修改 docker-compose.yml ,注释掉 SENTRY_EMAIL_HOST 配置,因为这个配置默认为 smtp ,会导致 .env 文件中的相同配置失效。

配置修改后 update 一下 Sentry 并重启

docker-compose build
docker-compose run --rm web upgrade
docker-compose up -d

sentry管理后台

访问地址: http://192.168.0.251:9000/
如下图所示,使用刚才安装过程中创建的超级管理员账号密码登录
安装成功
第一次访问会提示填写域名信息和Email账号信息
Email配置
配置完之后就会下一步就会进入 dashboard 界面.
主界面

发布了65 篇原创文章 · 获赞 88 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/uisoul/article/details/103887850