依賴說明
sentry官方推薦docker方式安裝,使用到了docker-compose。docker至少是1.10.3以上的版本。為此需要使用centos7。
安裝docker
#添加yum 源
# sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
#安裝docker-engine
# yum update
# yum install -y docker-engine
# systemctl enable docker
# systemctl start docker
# groupadd docker
# usermod -aG docker $USER
安裝docker-compose
pip install docker-compose
配置daocloud docker加速器
登錄daocloud.io注冊一個帳號后,即可訪問到加速器的配置,然后在終端上執行,如下:
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://b24820b7.m.daocloud.io
下載getsentry/onpremise倉庫
git clone https://github.com/getsentry/onpremise.git
cd onpremise
按以下步驟啟動服務
- step1,生成密鑰,並將生成的結果回填到文件docker-compose.yml中的環境變量SENTRY_SECRET_KEY中。
docker-compose run --rm web config generate-secret-key
services:
base:
build: .
environment:
# Run `docker-compose run web config generate-secret-key`
# to get the SENTRY_SECRET_KEY value.
SENTRY_SECRET_KEY: 's2z8av!g*99vlatf5(2d3ncy)b+j5df(01i&x!+#9l0lm3xc^^'
SENTRY_MEMCACHED_HOST: memcached
SENTRY_REDIS_HOST: redis
SENTRY_POSTGRES_HOST: postgres
SENTRY_EMAIL_HOST: smtp
# volumes:
# - ./data/sentry:/var/lib/sentry/files
- step2,生成數據庫,根據提示創建superadmin帳號
docker-compose run --rm web upgrade - step3,運行所有容器
docker-compose up -d - step4,sentry ui默認的端口是9000,訪問[ip]:9000即可打開web管理界面
具體使用參考:https://github.com/getsentry/onpremise
如何集成到應用中
- step1, pom.xml中引入io.sentry
<dependency>
<groupId>io.sentry</groupId>
<artifactId>sentry-logback</artifactId>
</dependency>
- step2:在src/resources/logback-spring.xml中配置appender,並添加相應的appender-ref引用。
<!--寫日志到sentry, 需要提供更多參數在sentry.properties中配置-->
<appender name="sentry" class="io.sentry.logback.SentryAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>WARN</level>
</filter>
</appender>
<springProfile name="qc,prod">
<root level="INFO">
<appender-ref ref="asyncFileAppender"/>
<appender-ref ref="sentry"/>
</root>
</springProfile>
- 在/etc/supervisor/conf.d/中的各個配置文件中增加環境變量SENTRY_DSN,該值是從sentry web 平台中創建項目生成的。
vi /etc/supervisor/conf.d/ielong-portal.conf
[program:ielong-portal]
directory = /opt/ibuild ; 程序的啟動目錄
command = java -jar ielong-portal-1.0-SNAPSHOT.jar --spring.profiles.active=qc ; 啟動命令,可以看出與手動在命令行啟動的命令是一樣的
environment=SENTRY_DSN="http://eb5c47da4a5942188c62da86ffc19cab:639141c14bf649be8fca803f30aeeb66@192.168.0.1111:9000/2"
autostart = true ; 在 supervisord 啟動的時候也自動啟動
startsecs = 30 ; 啟動 5 秒后沒有異常退出,就當作已經正常啟動了
autorestart = true ; 程序異常退出后自動重啟
startretries = 3 ; 啟動失敗自動重試次數,默認是 3
user = root ; 用哪個用戶啟動
redirect_stderr = true ; 把 stderr 重定向到 stdout,默認 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默認 50MB
stdout_logfile_backups = 20 ; stdout 日志文件備份數
; stdout 日志文件,需要注意當指定目錄不存在時無法正常啟動,所以需要手動創建目錄(supervisord 會自動創建日志文件)
stdout_logfile = /var/log/ielong-portal.log
