由于Sentry环境复杂,因此本文采取Docker方式安装,本教程安装版本为Sentry21.8.0,方法如下:
1、环境准备
安装所需环境docker、docker-compose、git(主要用于拉取代码,也可自行下载Sentry代码),注意docker和docker-compose的版本需满足Sentry安装的最低需求,相关需求在代码库说明中可以查看。由于docker和docker-compose的安装在其他博文已经详细叙述,本处将不再赘述。本文相关环境如下:
系统:CentOS8
docker:20.10.9, build c2ea9bc
docker-compose:1.28.6, build 5db8d86f
git: 2.27.0
Sentry: 21.8.0
安装完docker后需要更改docker的镜像源,不然会很慢。拉取Sentry代码后需在cron文件夹下修改DockerFile和添加sources.list,相关修改结果如下:
// 新增sources.list,并添加内容,该文件与DockerFile同级
deb http://mirrors.163.com/debian/ buster main non-free contrib
deb http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ buster main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ buster-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ buster/updates main non-free contrib
// 打开DockerFile,在RUN命令之前添加命令注入镜像源信息sources.list
ADD sources.list /etc/apt/sources.list
2、安装Sentry
直接运行./install.sh即可,在中途会提示是否创建用户,自行创建用户即可。安装完后会提示用 docker-compose up -d 启动项目。
3、配置钉钉通知
相关步骤及命令如下:
// 停止服务
docker-compose down
// 进入sentry目录,编辑requirements.txt
vim requirements.txt
// 添加插件内容
sentry-dingtalk-notify
// 保存退出,重新编译项目
docker-compose build
// 启动项目
docker-compose up -d
在项目启动完成后,在 Sentry 面板 Settings > Integrations 中找到 DingTalk 并配置 webhook、关键词等信息。注意,该插件不适用与加密情况的钉钉机器人,钉钉机器人webhook只能选择关键词验证的方式,其中Custom Keyword包含钉钉机器人设置的关键词即可,后续将对此进行改变。
4、配置Email通知
相关步骤及命令如下:
// 停止服务
docker-compose down
// 进入sentry目录下的config.yml
vim config.yml
// 修改smtp的配置
mail.host: 'smtp'
mail.port: 25
mail.username: '' //163邮箱账号
mail.password: '' //注意,这里的密码不是163的密码,而是163的SMTP授权码
mail.use-tls: false //不管
mail.use-ssl: false //不管
mail.from: '' //前面的163邮箱账户名
// 退出保存,并重启服务
docker-compose up -d
项目启动后,点击账户user settings,Eamil Address 添加邮件名,并发送测试邮件即可,发送逻辑是配置文件中的邮箱发送至刚填写的邮箱,需登录接收邮箱确认授权即可完成验证。
5、项目集成配置
Sentry中创建项目,选择SpringBoot项目,注意其DSN信息,在指引中会提示。
在需监控项目中配置pom文件,添加依赖:
<!--sentry-->
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-spring-boot-starter</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
<version>5.2.2</version>
</dependency>
配置文件修改,application.yml
sentry:
dsn: http://1a2dcc2b18bb4d528b6f4d6fa963d538@192.168.105.19:9000/2
# 采样率
traces-sample-rate: 1.0
修改日志配置文件logback-spring.xml,注意此处的xml文件是系统配置文件中指定的logback配置文件,修改错了将无法正常运行
<appender name="SENTRY" class="io.sentry.logback.SentryAppender">
<!-- 设置拦截的最低级别为warn 警告-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>warn</level>
</filter>
</appender>
<!-- 3. 根据环境对日志输出项选配 -->
<!-- 3.1 开发环境选配 -->
<springProfile name="dev">
<root level="info">
<appender-ref ref="SENTRY"/>
</root>
</springProfile>
<!-- 3.2 正式环境选配 -->
<springProfile name="pro">
<root level="info">
<appender-ref ref="WARN_FILE"/>
</root>
</springProfile>
然后执行错误测试代码编写
@GetMapping
@ResponseBody
@RequestMapping("/testSentry")
public String testSentry() {
logger.info("testSentry info test!");
logger.warn("testSentry warn test!");
logger.error("testSentry error test!");
return "testSentry is ok!";
}
运行项目,执行刚才的接口,刷新Sentry错误收集界面,即可看到错误信息。
后续将更新一些Sentry的运用教程,现在集成的钉钉消息也还比较简单,后续看是否能够修改插件以满足要求。若各位博友有什么相关建议欢迎留言交流。