文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python 实时日志平台 Sentry

2023-01-31 05:58

关注


简介

     Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建,其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。。

Sentry 可以帮助你将 Python 程序的所有 exception 自动记录下来,然后在一个好用的 UI 上呈现和搜索。处理 exception 是每个程序的必要部分,所以 Sentry 也几乎可以说是所有项目的必备组件。


      无论测试如何完善的程序,bug总是免不了会存在的,有些bug不是每次都会出现,测试时运行好好的代码可能在某个用户使用时就歇菜了,可是当程序在用户面前崩溃时,你是看不到错误的,当然你会说:”Hey, 我有记日志呢”。 但是说实话,程序每天每时都在产生大量的日志,而且分布在各个服务器上,并且如果你有多个服务在维护的话,日志的数量之多你是看不过来的吧。等到某天某个用户实在受不了了,打电话来咆哮的时候,你再去找日志你又会发现日志其实没什么用:缺少上下文,不知道用户什么操作导致的异常,异常太多(从不看日志的缘故)不知如何下手 等等。


       Sentry就是来帮我们解决这个问题的,它是一款精致的Django应用,目的在于帮助开发人员从散落在多个不同服务器上毫无头绪的日志文件里发掘活跃的异常,继而找到潜在的臭虫。


       Sentry是一个日志平台, 它分为客户端和服务端,客户端(目前客户端有Python, PHP,C#, Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web节目方便查看。Sentry由python编写,源码开放,性能卓越,易于扩展,目前著名的用户有Disqus, Path, mozilla, Pinterest等。

Pip

pip是python的一个很好的包管理软件,类似npm对于nodejs的关系。似乎pip一般不随python自动安装,但是一个叫easy_install的命令一般都是自带的,所以我们可以通过

sudo easy_install pip

来安装,至于为什么不直接用easy_install来安装所有依赖,通俗一点来讲,pip更流行



一、Virtualenv环境

virtualenv就是用来为一个应用创建一套“隔离”的Python运行环境

#pip install virtualenv

 

#virtualenv sentry

New python executable in/opt/sentry/bin/python

Please make sure you remove any previouscustom paths from your /root/.pydistutils.cfg file.

Installing setuptools, pip, wheel...done.

 

#source sentry/bin/activate

就能激活出一个新的环境,在这个新环境下我们在进行后续操作

#deactivate

退出环境

 

二、安装sentry
#pip install sentry==7.4.3

三、错误解决

错误

error: Python.h: No such file or directory

解决

yum install python-devel –y

 

错误

error: libxml/xmlversion.h: No such file ordirectory

error: libxml/xpath.h: No such file ordirectory

解决

yum install libxslt-devel –y

 

错误

error: openssl/opensslv.h: No such file ordirectory

解决

yum install openssl-devel –y

 

错误

Error loading MySQLdb module: No module namedMySQLdb

pip install MySQL-python

 

错误

EnvironmentError: mysql_config not found

yum -y install mysql-devel 

 

错误

error: libpq-fe.h: No such file ordirectory

yum install postgresql-devel -y

 

四、        安装mysql

#service postgresql initdb

#/bin/systemctlstart  postgresql.service

# su – postgres

 

五、        安装redis

yum install redis –y

systemctl start redis.service

 

六、        配置

初始化创建配置文件

# sentry init /sentry/sentry.conf.py

 

vim /sentry/sentry.conf.py

#修改mysql配置

#配置文件中你需要设置几处

#数据库配置,推荐Postgresql,其次是Mysql

#Redis配置

#邮件服务配置

#web服务配置

 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'sentry',
        #'NAME': os.path.join(CONF_ROOT, 'sentry.db'),
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}
SENTRY_ADMIN_EMAIL = 'yy520it@163.com'
 
SENTRY_REDIS_OPTIONS = {
    'hosts': {
        0: {
            'host': '127.0.0.1',
            'port': 6379,
        }
    }
}
 
BROKER_URL = 'redis://localhost:6379'
SENTRY_URL_PREFIX = 'http://10.1.1.1'
SENTRY_WEB_HOST = '0.0.0.0'
SENTRY_WEB_PORT = 9000
SENTRY_WEB_OPTIONS = {
    # 'workers': 3,  # the number of gunicorn workers
    # 'secure_scheme_headers': {'X-FORWARDED-PROTO': 'https'},
}
 
 
EMAIL_HOST = 'smtp.exmail.qq.com'
EMAIL_HOST_PASSWORD = 'w15034619520'
EMAIL_HOST_USER = 'wangyangyang@rqbao.com'
EMAIL_PORT = 25
SERVER_EMAIL = 'smtp.exmail.qq.com'

 

启动成功!

为sentry项目初始化数据

# sentry --config=/sentry/sentry.conf.py upgrade

创建新用户

# sentry --config=/sentry/sentry.conf.py createuser

然后就可以启动服务了

#sentry--config=/sentry/sentry.conf.py start

另外,还需要启动Worker

# sentry --config=/sentry/sentry.conf.py celery worker -B

 wKioL1eybz_AmlW5AADBjCUCoaY802.png-wh_50


 

浏览器访问:http://IP:9000


 wKiom1eyb0mgWaNkAABpQ59bldw168.png-wh_50


http://IP:9000/admin/

 wKiom1eyb1Ph4VkIAAAYHLRsFkw091.png-wh_50

 

复制API key链接


 wKioL1eyb26iln54AAC3Im-sYno915.png-wh_50


配置log4j(我配置的是log4j.properties)

#SentryAppender

log4j.rootLogger=WARN, Console, RollingFile,SentryAppender

log4j.appender.SentryAppender=net.kencochrane.raven.log4j.SentryAppender

log4j.appender.SentryAppender.dsn=http://9189bf0a8b064d6680eecec9f41538c0:634e759226b84ae5b745d5d9fefe55c9@10.1.0.1:9000/3

 

 

 

测试:

/root/sentry/bin/raven --help

wKiom1eyb3_w-5gwAAB3V-iEdIs317.png-wh_50

 

展示

wKioL1eyb5GzN7QlAADDVOdW3z8429.png-wh_50

wKiom1eyb5HScaggAAE0BvAQi4w002.png-wh_50



wKiom1eycBqRlmTcAAFKlhD51SU142.png-wh_50


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯