centos7 sentry部署指南

依赖说明

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

posted on 2017-08-18 14:38  James.H.Fu  阅读(1688)  评论(0编辑  收藏  举报

导航