分享

Spring Boot实战之配置使用Sentry上报错误日志(一)

 WindySky 2017-07-21

spring Boot实战之配置使用Sentry上报错误日志(一)

本文介绍Sentry Server环境的安装与配置,本文基于Centos7进行测试

Sentry 是一款基于 Django实现的错误日志收集和聚合的平台,它是 Python 实现的,但是其日志监控功能却不局限于python,对诸如 Node.js, PHP,ruby, C#,Java 等语言的项目都可以做到无缝集成,甚至可以用来对iOS, Android 移动客户端以及 Web前端异常进行跟踪。我们可以在程序中捕获异常,并发送到 Sentry服务端进行聚合统计、展示和报警。


一、安装MySQL

1) 获取并安装mysql社区版本

  1. wget http://repo.//mysql57-community-release-el7-8.noarch.rpm  
  2. rpm -ivh mysql57-community-release-el7-8.noarch.rpm  
  3. yum install mysql-community-server  

2) 启动mysql
  1. service mysqld restart  


3) 刚安装时,已经生成了root的初始密码,使用以下命令进行查看
  1. grep 'temporary password' /var/log/mysqld.log  
  2. 2016-08-09T04:36:57.654274Z 1 [Note] A temporary password is generated for root@localhost: jDTcYtBnu4=v  

4) 使用上面的密码进行登录

  1. mysql -uroot -p  
5) 将临时密码修改为自己的新密码
  1. ALTER USER 'root'@'localhost' IDENTIFIED BY 'mypassword';  
6) 新建数据库sentry,之后sentry的配置文件会用到
  1. create database sentry;  


二、安装epel源
  1. wget https://dl./pub/epel/epel-release-latest-7.noarch.rpm  
  2. rpm -ivh epel-release-latest-7.noarch.rpm   


三、安装redis
  1. yum -y install redis  
 1) 启动redis
  1. systemctl start redis.service  
2) 其它基本命令(供参考)

  1. #停止  
  2. systemctl stop redis.service  
  3. #重启  
  4. systemctl restart redis.service  
  5. #检查状态  
  6. systemctl status redis.service  
  7. #打开开机启动  
  8. systemctl enable redis.service  


四、python环境
本文测试环境为centos7,默认已经安装python 2.7.5版本。Python的版本要>= 2.7,如果系统的Python版本过低,需要升级python。

  1. [root@sunt2 home]# python -V && pip -V  
  2. Python 2.7.5  
  3. -bash: pip: 未找到命令  
1) 安装pip

  1. wget https://bootstrap./get-pip.py  
  2. python get-pip.py  

2) 安装virtualenv virtualenvwrapper

  1. pip install virtualenv virtualenvwrapper  

3) 修改~/.bashrc文件,设置环境变量,添加以下内容:

  1. export WORKON_HOME=/var/sentryenv  
  2. export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python  
  3. export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv  
  4. source /usr/bin/virtualenvwrapper.sh  

4) 使环境变量生效

  1. source ~/.bashrc  


五、安装Sentry Server
1) 按顺序安装以下包

  1. mkvirtualenv sentry  
  2. yum install python-devel  
  3. yum install libffi-devel  
  4. yum install openssl-devel  
  5. easy_install Cython  
  6. yum install libxslt-devel libxml2-devel  
  7. yum install postgresql-devel  
  8. pip install sentry[mysql]  
  9. pip install sentry  
  10. yum install mysql-devel  
  11. pip install sentry[mysql] --upgrade  

2)启用virtualenv,进入Python环境

  1. source /var/sentryenv/sentry/bin/activate  
3)安装相关的Python库:

  1. pip install redis hiredis nydus  
  2. pip install redis hiredis nydus --upgrade  
  3. pip install gevent  
  4. pip install eventlet  
  5. easy_install MySQL-python  

4)初始化Sentry的配置文件,会在/var/sentryenv/sentry/etc下生成配置文件sentry.conf.py :
  1. mkdir -p /var/sentryenv/sentry/etc  
  2. /var/sentryenv/sentry/bin/sentry  init /var/sentryenv/sentry/etc/  

5)生成key

  1. /var/sentryenv/sentry/bin/sentry config generate-secret-key  
  2. d5c=igv90h(r+zbtgd+ea=^%_fd!-x5b=fdyh4vv#%#i7_ll#k            #配置文件中使用  

6)修改配置文件/var/sentryenv/sentry/etc/sentry.conf.py 如下

  1. # This file is just Python, with a touch of Django which means  
  2. # you can inherit and tweak settings to your hearts content.  
  3. from sentry.conf.server import *  
  4.   
  5. import os.path  
  6.   
  7. CONF_ROOT = os.path.dirname(__file__)  
  8.   
  9. DATABASES = {  
  10.     'default': {  
  11.         'ENGINE': 'django.db.backends.mysql',  
  12.         'NAME': 'sentry',  
  13.         'USER': 'root',  
  14.         'PASSWORD': 'mypassword',  
  15.         'HOST': 'localhost',  
  16.         'PORT': '3306',  
  17.         'AUTOCOMMIT': True,  
  18.         'ATOMIC_REQUESTS': False,  
  19.     }  
  20. }  
  21.   
  22. SENTRY_USE_BIG_INTS = True  
  23.   
  24. SENTRY_SINGLE_ORGANIZATION = True  
  25. DEBUG = False  
  26.   
  27. SENTRY_OPTIONS["redis.clusters"]={  
  28.     'default':{  
  29.         'hosts':{  
  30.         0: {  
  31.             'host': '127.0.0.1',  
  32.             'port': 6379,  
  33.         }  
  34.      }  
  35.    }  
  36. }  
  37.   
  38. SENTRY_CACHE = 'sentry.cache.redis.RedisCache'  
  39.   
  40. BROKER_URL = 'redis://localhost:6379'  
  41.   
  42. SENTRY_RATELIMITER = 'sentry.ratelimits.redis.RedisRateLimiter'  
  43.   
  44. SENTRY_BUFFER = 'sentry.buffer.redis.RedisBuffer'  
  45.   
  46. SENTRY_QUOTAS = 'sentry.quotas.redis.RedisQuota'  
  47.   
  48. SENTRY_TSDB = 'sentry.tsdb.redis.RedisTSDB'  
  49.   
  50. SENTRY_DIGESTS = 'sentry.digests.backends.redis.RedisBackend'  
  51.   
  52. SENTRY_FILESTORE = 'django.core.files.storage.FileSystemStorage'  
  53. SENTRY_FILESTORE_OPTIONS = {  
  54.     'location': '/tmp/sentry-files',  
  55. }  
  56.   
  57. SENTRY_OPTIONS['system.url-prefix']='http://192.168.1.112:9000'  
  58. SENTRY_WEB_HOST = '0.0.0.0'  
  59. SENTRY_WEB_PORT = 9000  
  60. SENTRY_WEB_OPTIONS = {  
  61.     'daemon':True  
  62.     # 'workers': 3,  # the number of web workers  
  63.     # 'protocol': 'uwsgi',  # Enable uwsgi protocol instead of http  
  64. }  
  65.   
  66. SENTRY_OPTIONS['mail.mailgun-api-key']=''  
  67. SENTRY_OPTIONS['system.secret-key']='d5c=igv90h(r+zbtgd+ea=^%_fd!-x5b=fdyh4vv#%#i7_ll#k'  
更加详细配置可以参考https://github.com/getsentry/sentry/blob/master/src/sentry/conf/server.py#L351

7)配置完成之后,初始化Sentry数据库

  1. /var/sentryenv/sentry/bin/sentry --config=/var/sentryenv/sentry/etc/sentry.conf.py upgrade  
初始化过程中提示要不要创建用户,创建用户并设置为超级用户。

8)启动Sentry server:

  1. /var/sentryenv/sentry/bin/sentry --config=/var/sentryenv/sentry/etc/sentry.conf.py  start  


9)打开端口号
  1. firewall-cmd --zone=public --add-port=9000/tcp --permanent  
  2. firewall-cmd --reload  
10)浏览器中输入http://192.168.1.112:9000/就可以看到 Sentry的主界面了:


11) 用刚才初始化的用户名和密码登陆。提示如下错误:

解决方法使用普通用户(非root用户登陆Linux),执行以下命令,然后再启动sentry

  1. /var/sentryenv/sentry/bin/sentry --config=/var/sentryenv/sentry/etc/sentry.conf.py celery worker -B  

到这边sentry server安装配置完成


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多