Sentry--错误日志收集框架 ,其专注于错误监控,以及提取一切事后处理所需的信息
它分为客户端和服务端,客户端就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web节目方便查看。
Raven是Sentry的客户端,它对很多框架都有直接支持,包括Django和Flask,并且顺带支持与WSGI兼容的网络应用。
基本配置:
DSN(Data Source Name):
Sentry 服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的 PUBLIC_KEY 和 SECRET_KEY。由此组成一个这样的 DSN:
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
PROTOCOL 通常会是 http 或者 https,HOST 为 Sentry 服务的主机名和端口,PATH 通常为空。
实例:
from raven.contrib.django.raven_compat.models import client
RAVEN_CONFIG = {
'dsn':
'http://a08d6885175d411785b67c8c2f9606d7:5e839802c9c240b890191a85d1aa19f8@172.16.20.157:9000/4',
# If you are using git, you can also automatically configure the
# release based on the git info.
'release': 'test_',
}
client.captureException()
client.captureMessage('msg’)
Docker安装:
1.安装Docker:
yum install docker
运行docker --version可以查看版本号并确认是否安装成功。
2.安装Docker-compose:
Compose是用于定义和运行复杂Docker应用的工具。你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成。
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
运行docker-compose --version查看版本号并确定是否安装成功
3.启动Docker服务:
service docker start
sentry 安装:
Dependencies
docker版本需要在1.10+
docker-compose
步骤:
setp1 克隆 git clone https://github.com/getsentry/onpremise.git
setp2 构建容器并创建数据库和sentry安装目录 mkdir -p data/{sentry,postgres}
setp3 生成secret key并添加到docker-compose文件里 docker-compose run --rm web config generate-secret-key
setp4 第四步时间有点长。其间会提示创建superuser,用户名是一个邮箱,这个邮箱今后会收到sentry相关的消息,
口令可以随便设置,只要自己记得住就可以了。最后会在命令行输出一串乱七八糟的字符,这个就是secretkey,
将这串字符复制到docker-compose.yml文件中并保存
setp5 重建数据库,并创建sentry超级管理员用户 sudo docker-compose run --rm web upgrade 创建用户,
sentry新建的时候需要一个超级管理员用户
step 6.启动所有的服务 docker-compose up -d
用浏览器访问 {ip}:9000
修改了配置文件应用到docker镜像中:
修改sentry.conf.py,比如添加smtp配置:
SENTRY_OPTIONS['mail.backend'] = 'smtp' SENTRY_OPTIONS['mail.host'] = 'smtp.***.com' SENTRY_OPTIONS['mail.password'] = '*******' SENTRY_OPTIONS['mail.username'] = 'sentry@**.com' SENTRY_OPTIONS['mail.port'] = 25 SENTRY_OPTIONS['mail.use-tls'] = False
参考:
https://www.cnblogs.com/CallMeUncle/p/6843513.html
http://blog.51cto.com/xujpxm/1868597