Spring Boot实战之配置使用Sentry上报错误日志(一)

Spring Boot实战之配置使用Sentry上报错误日志(一)

本文介绍Sentry Server环境的安装与配置,本文基于Centos7进行测试

Sentry 是一款基于 Django实现的错误日志收集和聚合的平台,它是 Python 实现的,但是其日志监控功能却不局限于python,对诸如 Node.js, php,ruby, C#,java 等语言的项目都可以做到无缝集成,甚至可以用来对iOS, Android 移动客户端以及 Web前端异常进行跟踪。我们可以在程序中捕获异常,并发送到 Sentry服务端进行聚合统计、展示和报警。


一、安装mysql

1) 获取并安装mysql社区版本

wget http://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum install mysql-community-server

2) 启动mysql
service mysqld restart


3) 刚安装时,已经生成了root的初始密码,使用以下命令进行查看
grep 'temporary password' /var/log/mysqld.log
2016-08-09T04:36:57.654274Z 1 [Note] A temporary password is generated for root@localhost: jDTcYtBnu4=v

4) 使用上面的密码进行登录

mysql -uroot -p
5) 将临时密码修改为自己的新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';
6) 新建数据库sentry,之后sentry的配置文件会用到
create database sentry;


二、安装epel源
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm 


三、安装redis
yum -y install redis
 1) 启动redis
systemctl start redis.service
2) 其它基本命令(供参考)

#停止
systemctl stop redis.service
#重启
systemctl restart redis.service
#检查状态
systemctl status redis.service
#打开开机启动
systemctl enable redis.service


四、python环境
本文测试环境为centos7,默认已经安装python 2.7.5版本。Python的版本要>= 2.7,如果系统的Python版本过低,需要升级python。

[root@sunt2 home]# python -V && pip -V
Python 2.7.5
-bash: pip: 未找到命令
1) 安装pip

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

2) 安装virtualenv virtualenvwrapper

pip install virtualenv virtualenvwrapper

3) 修改~/.bashrc文件,设置环境变量,添加以下内容:

export WORKON_HOME=/var/sentryenv
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv
source /usr/bin/virtualenvwrapper.sh

4) 使环境变量生效

source ~/.bashrc


五、安装Sentry Server
1) 按顺序安装以下包

mkvirtualenv sentry
yum install python-devel
yum install libffi-devel
yum install openssl-devel
easy_install Cython
yum install libxslt-devel libxml2-devel
yum install postgresql-devel
pip install sentry[mysql]
pip install sentry
yum install mysql-devel
pip install sentry[mysql] --upgrade

2)启用virtualenv,进入Python环境

source /var/sentryenv/sentry/bin/activate
3)安装相关的Python库:

pip install redis hiredis nydus
pip install redis hiredis nydus --upgrade
pip install gevent
pip install eventlet
easy_install MySQL-python

4)初始化Sentry的配置文件,会在/var/sentryenv/sentry/etc下生成配置文件sentry.conf.py :
mkdir -p /var/sentryenv/sentry/etc
/var/sentryenv/sentry/bin/sentry  init /var/sentryenv/sentry/etc/

5)生成key

/var/sentryenv/sentry/bin/sentry config generate-secret-key
d5c=igv90h(r+zbtgd+ea=^%_fd!-x5b=fdyh4vv#%#i7_ll#k            #配置文件中使用

6)修改配置文件/var/sentryenv/sentry/etc/sentry.conf.py 如下

# This file is just Python, with a touch of Django which means
# you can inherit and tweak settings to your hearts content.
from sentry.conf.server import *

import os.path

CONF_ROOT = os.path.dirname(__file__)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sentry',
        'USER': 'root',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '3306',
        'AUTOCOMMIT': True,
        'ATOMIC_REQUESTS': False,
    }
}

SENTRY_USE_BIG_INTS = True

SENTRY_SINGLE_ORGANIZATION = True
DEBUG = False

SENTRY_OPTIONS["redis.clusters"]={
    'default':{
        'hosts':{
        0: {
            'host': '127.0.0.1',
            'port': 6379,
        }
     }
   }
}

SENTRY_CACHE = 'sentry.cache.redis.RedisCache'

BROKER_URL = 'redis://localhost:6379'

SENTRY_RATELIMITER = 'sentry.ratelimits.redis.RedisRateLimiter'

SENTRY_BUFFER = 'sentry.buffer.redis.RedisBuffer'

SENTRY_QUOTAS = 'sentry.quotas.redis.RedisQuota'

SENTRY_TSDB = 'sentry.tsdb.redis.RedisTSDB'

SENTRY_DIGESTS = 'sentry.digests.backends.redis.RedisBackend'

SENTRY_FILESTORE = 'django.core.files.storage.FileSystemStorage'
SENTRY_FILESTORE_OPTIONS = {
    'location': '/tmp/sentry-files',
}

SENTRY_OPTIONS['system.url-prefix']='http://192.168.1.112:9000'
SENTRY_WEB_HOST = '0.0.0.0'
SENTRY_WEB_PORT = 9000
SENTRY_WEB_OPTIONS = {
    'daemon':True
    # 'workers': 3,  # the number of web workers
    # 'protocol': 'uwsgi',  # Enable uwsgi protocol instead of http
}

SENTRY_OPTIONS['mail.mailgun-api-key']=''
SENTRY_OPTIONS['system.secret-key']='d5c=igv90h(r+zbtgd+ea=^%_fd!-x5b=fdyh4vv#%#i7_ll#k'
更加详细配置可以参考https://github.com/getsentry/sentry/blob/master/src/sentry/conf/server.py#L351

7)配置完成之后,初始化Sentry数据库:

/var/sentryenv/sentry/bin/sentry --config=/var/sentryenv/sentry/etc/sentry.conf.py upgrade
初始化过程中提示要不要创建用户,创建用户并设置为超级用户。

8)启动Sentry server:

/var/sentryenv/sentry/bin/sentry --config=/var/sentryenv/sentry/etc/sentry.conf.py  start


9)打开端口号
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload
10)浏览器中输入http://192.168.1.112:9000/就可以看到 Sentry的主界面了:


11) 用刚才初始化的用户名和密码登陆。提示如下错误:

解决方法使用普通用户(非root用户登陆linux),执行以下命令,然后再启动sentry

/var/sentryenv/sentry/bin/sentry --config=/var/sentryenv/sentry/etc/sentry.conf.py celery worker -B

到这边sentry server安装配置完成


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值