Sentry日志管理
目录
Sentry是个很好用的错误日志服务器,可以将程序错误的详细情况集中捕获,并提供一个很漂亮的Web界面来浏览错误。 Sentry本身是用python写的,但它支持python、php、ruby、iOS等多种语言。
Sentry安装
采用Python virtualenv搭建sentry安装环境:
$sudo apt-get install python-dev python-pip $sudo pip install -U virtualenv $virtualenv sentry $source sentry/bin/activate $pip install -U sentry #由于sentry依赖的包比较多,安装过程可能会出现缺少某些Linux类库,sudo apt-get install下载安装即可; #sudo apt-get install libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev #sentry usage: [SENTRY_CONF=/path/to/settings.py] sentry [command] [options] # install sentry and its postgresql dependencies $pip install -U sentry[postgres] # or if you choose, mysql. 个人使用情况,习惯采用mysql $pip install -U sentry[mysql] #sentry初始化,默认生成配置文件 ~/.sentry/sentry.conf.py $sentry init
编辑配置文件:
# ~/.sentry/sentry.conf.py
# 配置数据库
# for more information on DATABASES, see the Django configuration at:
# https://docs.djangoproject.com/en/1.6/ref/databases/
DATABASES = {
'default': {
# We suggest PostgreSQL for optimal performance
#'ENGINE': 'sentry.db.postgres',
# Alternatively you can use MySQL
'ENGINE': 'django.db.backends.mysql',
'NAME': 'sentry',
'USER': 'postgres',
'PASSWORD': '',
'HOST': '',
'PORT': '',
}
}
# No trailing slash!
# 默认为空
SENTRY_URL_PREFIX = ''
# 配置web server
SENTRY_WEB_HOST = '127.0.0.1'
SENTRY_WEB_PORT = 9000
SENTRY_WEB_OPTIONS = {
'workers': 3, # the number of gunicorn workers
'secure_scheme_headers': {'X-FORWARDED-PROTO': 'https'}, # detect HTTPS mode from X-Forwarded-Proto header
}
# 配置redis
SENTRY_REDIS_OPTIONS = {
'hosts': {
0: {
'host': '127.0.0.1',
'port': 6379,
'timeout': 3,
#'password': 'redis auth password'
}
}
}
为sentry新建一个数据库,然后继续配置:
$sentry upgrade # 新建一个用户 $sentry createuser # 启动Web service $sentry start # 启动Workers $sentry celery worker -B
这样就可以通过浏览器来访问了 http://localhost:9000
使用supervisor进行配置:
[program:sentry-web] directory=/www/sentry/ # 安装目录(virtualenv出来的目录) command=runinenv /www/sentry sentry start user=xxx autostart=true autorestart=true redirect_stderr=true stdout_logfile=syslog stderr_logfile=syslog [program:sentry-worker] directory=/www/sentry/ command=runinenv /www/sentry sentry celery worker -B user=xxx autostart=true autorestart=true redirect_stderr=true stdout_logfile=syslog stderr_logfile=syslog
定期清理旧的日志,节约磁盘空间
$crontab -e 0 3 * * * sentry cleanup --day=30
客户端
通过在sentry的后台,新建一个项目后,获取sentry dsn,客户端可以使用raven-go。
参考:
http://blog.charlee.li/sentry-manage-log/
http://sentry.readthedocs.org/en/latest/
码字很辛苦,转载请注明来自ChenJiehua的《Sentry日志管理》
2015-07-10 2015-10-01 log

评论