centos 6.5 sentry搭建过程

sentry安装手册

 sentry  cenots6.5 PostgreSQL

Sentry 是一个实时的事件日志和聚合平台,基于 Django 构建。 Sentry 可以帮助你将 Python 程序的所有 exception 自动记录下来,然后在一个好用的 UI 上呈现和搜索。处理 exception 是每个程序的必要部分,所以 Sentry 也几乎可以说是所有项目的必备组件。

sentry官方提供了一个控制台,也可以自己搭建,参考文档 SENTRY

sentry需要的软件环境有

  • 一个基于UNIX架构的系统,本文使用Centos6.5
  • Python2.7
  • python-setuptools, python-pip, python-dev, libxslt1-dev, libxml2-dev, libz-dev, libffi-dev, libssl-dev, libpq-dev, libyaml-dev
  • PostgreSQL 注意:从sentry8.0开始,就不在支持MySQL数据库了
  • Redis 有版本要求,本文使用的是3.0.7

ps: 本文通过pip安装sentry,如果通过编译安装,还需要Node.js >= 0.12以上的版本

系统开发者环境

关于系统需要的一些开发者环境就不做赘述,常用的可以通过以下两条命令安装

yum -y install gcc gcc-c++ ncurses-devel perl pcre-devel openssl openssl-devel

yum -y groupinstall "Development Tools"

yum install libxslt-devel # 后期可能会遇到一个安装lxml失败的问题,可以通过  解决

 

安装Python2.7

因为Centos6.5系统默认的python版本是2.6.6,需要升级下python,同时要不影响yum的使用(yum使用python2.6)

1.下载Python2.7.11安装包

yum -y install gcc gcc-c++ ncurses-devel perl pcre-devel openssl openssl-devel

如果没有wget命令,可以通过yum -y install wget安装

2.解压并进入python包

tar -zxvf Python-2.7.11.tgz&&cd Python-2.7.11

3.编译

./configure

如果报错,可根据错误提示,看看是不是缺少什么包

4.安装

make&&make install

5.安装完成以后,备份原来的python2.6

mv /usr/bin/python /usr/bin/python2.6.6

6.创建python2.7的链接,

ln -s /usr/local/bin/python2.7 /usr/bin/python

7.配置yum使用python2.6,

sudo vim /usr/bin/yum

 把第一行#!/usr/bin/python改为#!/usr/bin/python2.6.6

8.测试在终端中输入python,显示版本2.7.11,同时yum可继续使用

安装pip

pip是一个比较好用的python包管理器,建议使用

1.下载get-pip.py文件

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

2.安装

pip python get-pip.py

安装virtualenv

virtualenv是python的一套虚拟环境,为了解决不同python项目,依赖的包会有冲突的情况

1.

pip install -U virtualenv

2.在你需要的位置,新建sentry文件夹,

mkdir /home/sentry

3.创建虚拟环境,

virtualenv /home/sentry

4.激活sentry环境,

source /home/sentry/bin/activate

 ps:从该环境退出使用命令deactivate

5.此时,可以在该环境中安装各种需要的python包,需要使用的时候激活该环境就可以

安装redis

1.从官网下载最新的稳定版本,

wget http://download.redis.io/releases/redis-3.0.7.tar.gz

2.解压并进入文件夹,

tar -zxvf redis-3.0.7.tar.gz&&cd redis-stable

3.安装 

make

可能会遇到的一些异常:

1.make[2]: cc: Command not found

异常原因:没有安装gcc

解决方案:yum install gcc-c++

2.zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory

异常原因:一些编译依赖或原来编译遗留出现的问题

解决方案:make distclean。清理一下,然后再make。
在make成功以后,需要make test。在make test出现异常。

异常一:

couldn't execute "tclsh8.5": no such file or directory

异常原因:没有安装tcl

解决方案:yum install -y tcl。

4.安装成功以后,会有 redis-server,redis-cli 等执行文件

安装PostgreSQL

再次说明下,从sentry8.0以后开始 就不支持MySQL了…我被mysql的问题卡了好久,死活删不掉索引,如果喜欢折腾,可以自己查看下源码,看看如何解决。

  • 涉及PostgreSQL,后期有个问题,是psycopg2模块,安装失败,可通过yum install postgresql-devel解决,所以我们在这里,先安装好。

1.PostgreSQL官网介绍,centos6.5 默认yum安装的postgresql版本是8.4,使用该版本数据库,安装sentry,在创建数据库的时候,一直有一个语言错误,the error was:language “plpgsql” does not exist,查询了很多postgresql地方,原本是可以通过CREATE LANGUAGE plpgsql;解决的,但是还是一直报这个错误,所以我使用了postgresql9.2版本,该问题解决。

2.导入9.2版本的yum包 

yum install https://download.postgresql.org/pub/repos/yum/9.2/redhat/rhel-6-x86_64/pgdg-redhat92-9.2-8.noarch.rpm

3.安装postgresql9.2 

yum install postgresql92-server postgresql92-contrib

4.初始化数据库

 service postgresql-9.2 initdb

5.添加服务

chkconfig postgresql-9.2 on

 启动服务 

sudo service postgresql-9.2 restart

6.PostgreSQL在创建后,会创建一个postgres的用户,只有该用户可以使用psql控制台 需要切换到该用户 

sudo su postgres

psql

7.创建用户

CREATE USER sentry WITH PASSWORD 'sentry';

8.创建数据库

CREATE DATABASE sentry OWNER sentry;

9.修改下配置文件,在/var/lib/pgsql/9.2/data/下有两个配置文件postgresql.conf和pg_hba.conf

10.修改pg_hba.conf最下面的host把需要的host的ident参数,改为trust

11.修改postgresql.conf下面的listen_addresses = ‘*’

12.保存重启postgresql 

sudo service postgresql-9.2 restart

安装sentry

本文通过pip安装,十分简单 运行命令

 pip install -U sentry

即可,该过程时间有点长,可能遇到某些包,下载终端,超时,重复运行该命令即可,遇到某些错误,都是一些包未安装导致的,可根据错误提示,具体查看是缺少什么。

1.安装完成后,初始化sentry环境 

sentry init /etc/sentry

,会在该文件下出现sentry的两个配置文件,sentry.conf.py 和 config.yml,在sentry.conf.py 中需要配置 postgresql和redis数据库的链接信息,根据自己情况,配置就可以。在config.yml中配置mail信息

2.因为我们创建了sentry数据库,就不需要执行官网说的createdb -E utf-8 sentry,我们之间写入数据,执行SENTRY_CONF=/etc/sentry sentry upgrade,数据写入完成,会自动提示,是否创建用户,按照提示操作即可。

3.此时通过SENTRY_CONF=/etc/sentry sentry run web启动,访问http://localhost:9000/就可以看到界面了。

4.sentry需要同时启动worker和cron,是sentry的队列和任务(个人理解),对于这个,我使用supervisor管理,supervisor的安装过程,就不在赘述,下面是supervisor的项目配置

[program:sentry-web]
directory=/www/sentry/
environment=SENTRY_CONF="/etc/sentry"
command=/www/sentry/bin/sentry start
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=syslog
stderr_logfile=syslog

[program:sentry-worker]
directory=/www/sentry/
environment=SENTRY_CONF="/etc/sentry"
command=/www/sentry/bin/sentry celery worker
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=syslog
stderr_logfile=syslog

[program:sentry-cron]
directory=/www/sentry/
environment=SENTRY_CONF="/etc/sentry"
command=/www/sentry/bin/sentry celery beat
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=syslog
stderr_logfile=syslog

ps:路径和日志地址,安装实际情况配置,启动worker依赖一个python消息队列的包,不能以root的权限启动,同时建议 三个的日志,不要写在一个文件里面…

5.使用nginx代理

sentry支持所有版本的nginx,nginx的安装很简单,不在赘述。

修改nginx配置文件添加

location / {
  proxy_pass         http://localhost:9000;
  proxy_redirect     off;

  proxy_set_header   Host              $host;
  proxy_set_header   X-Forwarded-For   $proxy_add_x_forwarded_for;
  proxy_set_header   X-Forwarded-Proto $scheme;
}

reload nginx即可。

6.清除旧数据

crontab -e

0 3 * * * sentry cleanup --days=30

备注:更高级的用法和配置还没接触到,只是简单的搭建起来,遇到各种文件,官网的文档才是王道!!!

常见报错解决办法:

ValueError: jpeg is required unless explicitly disabled using –disable-jpeg, aborting

经搜索,找到以下方案:

sudo yum install libjpeg-turbo-devel

Package libffi was not found in the pkg-config search path.

sudo yum install libffi-devel

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 4: ordinal not in range

import sys   
reload(sys) # Python2.5 初始化后会删除 sys.setdefaultencoding 这个方法,我们需要重新载入   
sys.setdefaultencoding('utf-8') 

参考文章:

  • http://blogmao.com/post/sentry

  • http://stackoverflow.com/questions/22073516/failed-to-install-python-cryptography-package-with-pip-and-setup-py

  • http://blog.csdn.net/a657941877/article/details/9063883

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值