python方式部署sentry
1.sentry介绍
Sentry是一个开源的实时错误收集报告工具,支持web前后端、移动应用以及游戏等,支持Python、JavaScript、Java、Go、Nodejs、Django、PHP等主流编程语言和框架平台,还提供了对GitHub、Gitlab等常见开发工具的集成及Mail邮件通知(收集到的错误告警),除此之外我们还可以自主开发插件以满足项目需求。
2.部署方式
- 部署方式分俩种:docker方式和python方式。
- docker方式部署操作比较简单,也是【Sentry官方】比较推崇的方式,直接按【Sentry On-Premise】提供的方式按部就班部署就好了。或者可直接参考【Docker部署Sentry监控Django应用并使用email+钉钉通知】即可。
- 插入一句题外话,最初我也是使用docker方式部署在机器上的也成功部署和配置好了,当时考虑到使用docker部署的不可控风险等系列问题,加之项目工作需要转而改用python虚拟环境部署。
- python方式部署相对比较麻烦但还是比较稳妥,可参考:【sentry官方提供的python安装方式】。下面我就以我后来使用的python方式部署sentry的过程做个详细介绍供他人借鉴。
3.python方式部署sentry具体过程
1.本文使用python虚拟环境的说明:如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的python运行环境,我们可以使用virtualenv来解决这个问题,它可以为一个应用创建一套“隔离”的python运行环境以免相互影响干扰。
2.本文介绍具体过程的前提:
-
涉及的环境工具:
-
Linux服务器(虚拟机安装一个即可。例如本人使用服务器:10.80.80.238)
-
python虚拟环境
-
Postgresql或者MySQL(本文使用MySQL)
-
Redis
-
邮箱账号密码(用于配置邮件通知,如果需要配置邮件通知的话,就需要,否则不需要。本文是会进行配置的。)
-
钉钉群机器人的webhook(用于配置钉钉通知)。具体如何获取配置钉钉群机器人的webhook:参考【获取自定义机器人webhook】
-
说明:需保持本地网络通畅连接Internet。
3.具体安装配置步骤:
-
1)安装常用开发工具:
$yum -y groupinstall "Development Tools"
-
2)安装redis,可参考:【Redis的安装和部署】和【在CentOS 7下安装Redis】。或者参考以下:
$yum -y install tcl $wget http://download.redis.io/releases/redis-3.2.5.tar.gz $tar -zxvf redis-3.2.5.tar.gz $cd redis-3.2.5/src/ $make test $ls /usr/local/bin/ ##结果:redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-sentinel redis-server $vim /etc/profile 添加内容: ##HISTSIZE HISTSIZE=100000 #修改默认保存1000条history历史命令为100000条。 ##redis export PATH=$PATH:/usr/local/bin $source /etc/profile $redis-server & #后台运行redis服务
-
3)安装一套python虚拟环境:
$pip install -U virtualenv #安装一套python虚拟环境 $pip install virtualenvwrapper #方便后续用来建立一个虚拟环境安装的存储目录 $mkdir -p /www #/www:虚拟环境存储目录 $vim /etc/profile 添加内容: ##配置python虚拟环境存储目录等 #if [ `id -u` != '0' ]; then #若id -u为0表示是root用户 export VIRTUALENV_USE_DISTRIBUTE=1 # <-- Always use pip/distribute export WORKON_HOME=/www # <-- Where all virtualenvs will be stored source /usr/bin/virtualenvwrapper.sh export PIP_VIRTUALENV_BASE=$WORKON_HOME export PIP_RESPECT_VIRTUALENV=true #fi $source /etc/profile $#vim /usr/bin/virtualenvwrapper.sh查看发现:(1)mkvirtualenv envDirName 创建虚拟环境(虚拟环境目录为envDirName)(1)workon 列举虚拟环境(2)workon envDirName 激活envDirName虚拟环境 $#/usr/bin/virtualenvwrapper.sh具体内容可参考:https://bitbucket.org/dhellmann/virtualenvwrapper/src/67108f0e2abdda349cb22997612b3e22a9178ab3/virtualenvwrapper.sh?at=master&fileviewer=file-view-default $#事实上virtualenvwrapper是对virtualenv的一次封装 $virtualenv /www/sentry/ #/www/sentry:python虚拟环境工作空间(用于安装sentry),即创建sentry虚拟环境 $source /www/sentry/bin/activate #激活进入sentry虚拟环境 $deactivate #退出当前运行的虚拟环境。 $workon #列举所有虚拟环境 $workon sentry #激活进入sentry虚拟环境,相当于source /www/sentry/bin/activate $deactivate #退出当前运行的虚拟环境。
-
4)安装sentry:
$workon sentry #安装sentry前,得进入sentry虚拟环境 $yum -y install python-devel $pip install -U sentry #sentry源码位于:/www/sentry/lib/python2.7/site-packages/sentry/ $#sentry官方源码位于:ht