文章预览
简介
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 及依赖包,经过漫长的等待,终于安装成功。
CentOS 6安装 docker
yum install docker-io
安装完毕, 通过 docker version 可以查看版本号并确认是否安装成功。
安装完毕记得启动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相关错误,
可能由于版本兼容性原因, 这时候可以先升级配置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
搭建 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未启动,需先启动docker
service docker restart
生成密钥错误2
按照提示执行
docker volume create --name=sentry-data
生成密钥错误3
按照提示执行
docker volume create --name=sentry-postgres
生成密钥错误4
按照提示执行
docker volume create --name=sentry-redis
生成密钥错误5
按照提示执行
docker volume create --name=sentry-zookeeper
生成密钥错误6
按照提示执行
docker volume create --name=sentry-kafka
生成密钥错误7
按照提示执行
docker volume create --name=sentry-clickhouse
生成密钥错误8
按照提示执行
docker volume create --name=sentry-symbolicator
解决以上错误后再次执行命令:生成secret key
docker-compose run --rm web config generate-secret-key
再次经过漫长的等待,一切顺利的话,key生成成功:过程中可能出现下载超时(timeout),重新执行命令,重试就可以了。
复制获取到的 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账号信息
配置完之后就会下一步就会进入 dashboard 界面.
………………………………