通過官方文檔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>
參考:
https://hub.docker.com/_/sentry/
