通过官方文档https://docs.sentry.io/可以得知,安装服务有两种方式,一种是使用Python,这种方式个人感觉比较麻烦。于是选择了第二种方式:使用docker。
我是在Windows上使用的docker,前后执行了如下命令:
1. 获取redis、postgres、sentry。sentry对redis和postgres的版本有要求,不能使用太低版本的。
docker pull redis
docker pull postgres
docker pull sentry
2.启动redis和postgres。
docker run -d --name sentry-redis redis
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
docker run --rm sentry config generate-secret-key
#上一行得到secret-key,然后把key复制到下面四行的单引号中。
3. 启动sentry。
docker run -it --rm -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
docker run -d -p 9000:9000 --name my-sentry -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-redis:redis --link sentry-postgres:postgres sentry
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='<secret-key>' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
完成后,在浏览器中输入http://192.168.99.100:9000 即可访问。
在上面某一步中会有要求输入账号密码,输入即可,输入的账号密码可以在页面上直接登录。
登录进去后,会有个默认的Internal项目,在该项目的setting中可以获取到客户端需要的DSN地址。
当然也可以添加自己的project和team。
sentry的客户端支持以下语言:Python JavaScript PHP Ruby Objective-C Java Cocoa C# Go Elixir
Java语言又支持 'Raven' 'Log4j' 'Log4j 2' 'Logback' 'Google App Engine'。这些信息都可以从官方文档中获取。
我使用的是logback
logback配置如下:
<appender name="Sentry" class="net.kencochrane.raven.logback.SentryAppender"> <dsn>http://fb3db0354d984f328234b7f00edadee1:74f9b511c4ca4109916ea5907f45b50c@192.168.99.100:9000/1</dsn> <ravenFactory>net.kencochrane.raven.DefaultRavenFactory</ravenFactory> --> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> </appender> <root level="INFO"> <appender-ref ref="Sentry" /> </root>
这样就会把logback记录的error级别的日志发送到sentry服务端,通过页面可以即时获得。
项目中引用的客户端jar包:
<dependency> <groupId>net.kencochrane.raven</groupId> <artifactId>raven-logback</artifactId> <version>6.0.0</version> </dependency>
参考: