Ubuntu16.04部署Sentry(Python环境)

官方安装教程

Sentry安装 Python环境

依赖

  • Ubuntu16.04
  • Python 2.7.12
  • pip 8.1.1 +
  • PostgreSQL 9.4 (docker镜像)
  • Redis 3.2 (docker镜像)
  • python-setuptools, python-dev, libxslt1-dev, gcc, libffi-dev, libjpeg-dev, libxml2-dev, libxslt-dev, libyaml-dev, libpq-dev

创建环境

环境搭建请使用root用户, 避免出现文件读写问题

  • 安装Python virtualenv包

    pip install -U virtualenv
    
  • 选择一个目录创建Python virtualenv环境

    virtualenv /home/sentry/env
    
  • 激活virtualevn环境

    source /home/sentry/env/bin/activate
    

安装Sentry

pip install -U sentry

配置Sentry

  • 初始化配置

    sentry init /home/sentry/init_s 
    

    当语句执行完毕后可在/home/sentry/init_s文件夹下看到config.ymlsentry.conf.py两个文件

  • 配置数据库

# This file is just Python, with a touch of Django which means
# you can inherit and tweak settings to your hearts content.
from sentry.conf.server import *

import os.path

CONF_ROOT = os.path.dirname(__file__)

DATABASES = {
  'default': {
      'ENGINE': 'sentry.db.postgres',
      #数据库名称,默认sentry
      'NAME': 'sentry',
      #数据库登录用户
      'USER': 'postgres',
      #数据库连接密码
      'PASSWORD': 'password',
      #数据库ip
      'HOST': '192.168.50.71',
      #数据库端口, postgres默认5432
      'PORT': '5432',
      'AUTOCOMMIT': True,
      'ATOMIC_REQUESTS': False,
  }
}
  • 配置redis
#sentry.conf.py文件中
#########
# Queue #
#########

# See https://docs.sentry.io/on-premise/server/queue/ for more
# information on configuring your queue broker and workers. Sentry relies
# on a Python framework called Celery to manage queues.

BROKER_URL = 'redis://{IP}:6379'
#config.yml文件中
# The ``redis.clusters`` setting is used, unsurprisingly, to configure Redis
# clusters. These clusters can be then referred to by name when configuring
# backends such as the cache, digests, or TSDB backend.
#
# Two types of clusters are currently supported:
#
#   rb.Cluster
#   A redis blaster cluster is the traditional cluster used by most services
#   within sentry. This is the default type cluster type.
#
#   rediscluster.StrictRedisCluster
#   An official Redis Cluster can be configured by marking the named group with
#   the ``is_redis_cluster: True`` flag. In future versions of Sentry more
#   services will require this type of cluster.
#
redis.clusters:
  default:
    hosts:
      0:
        host: {IP}
        port: 6379
  • 配置邮箱
    可参见官网连接
    若邮件使用SSL, 则需要 SMTP SSL email backend for Django

    pip install django-smtp-ssl
    

    若邮件中按钮等链接不能正确跳转, 需要在config.yml文件中配置url前缀

    system.url-prefix: 'https://sentry.example.com'
    

运行数据库迁移

  • 执行该语句将会在配置好的postgres的sentry数据库中创建出Sentry需要的数据表。这一步比较耗内存(2G左右),我就是在执行这一步的时候出了很多意外,比如进程被 killed,报很多异常等等。

    SENTRY_CONF=/home/sentry/init_s sentry upgrade
    

创建超级管理员

  • 执行数据库迁移完成后会提示创建用户, 若未提示或选择跳过; 可通过该命令进行设置。

    SENTRY_CONF=/home/sentry/init_s sentry createuser  
    

    此步骤若出现IndexError: list index out of range报错, 可参考#7015sentry.conf.py文件中的SENTRY_SINGLE_ORGANIZATION设置为False

开启web页面服务

 SENTRY_CONF=/home/sentry/init_s sentry run worker

开启后台workers服务

SENTRY_CONF=/home/sentry/init_s sentry run worker

开启定时任务服务

SENTRY_CONF=/home/sentry/init_s sentry run worker

将Sentry当做服务启动

  • 使用systemd实现服务自启动
    在Ubuntu上, 在/etc/systemd/system目录下创建sentry-web.service, sentry-worker.service, sentry-cron.service三个文件
    sentry-web.service
[Unit]
Description=Sentry Main Service
After=network.target
Requires=sentry-worker.service
Requires=sentry-cron.service

[Service]
Type=simple
User=执行用户名
Group=执行用户所在分组
WorkingDirectory=/home/sentry/env
Environment=SENTRY_CONF=/home/sentry/init_s
ExecStart=/home/sentry/env/bin/sentry run web

[Install]
WantedBy=multi-user.target

sentry-worker.service

[Unit]
Description=Sentry Background Worker
After=network.target

[Service]
Type=simple
User=执行用户名
Group=执行用户所在分组
WorkingDirectory=/home/sentry/env
Environment=SENTRY_CONF=/home/sentry/init_s
ExecStart=/home/sentry/env/bin/sentry run worker

[Install]
WantedBy=multi-user.target

sentry-cron.service

[Unit]
Description=Sentry Beat Service
After=network.target

[Service]
Type=simple
User=执行用户
Group=执行用户所在分组
WorkingDirectory=/home/sentry/env
Environment=SENTRY_CONF=/home/sentry/init_s
ExecStart=/home/sentry/env/bin/sentry run cron

[Install]
WantedBy=multi-user.target
  • 使用systemctl命令设置应用自启动

    systemctl enable sentry-web.service
    sysetmctl enable sentry-worker.service
    systemctl enable sentry-cron.service
    
  • systemctl其他命令

    systemctl status service_name  #查看服务状态
    systemctl start service_name #启动服务
    systemctl stop service_name #停止服务
    systemctl --help #查看systemctl命令使用文档
    

PS

若使用root运行worker会出现提示:
If you really want to continue then you have to set the C_FORCE_ROOT environment variable (but please think about this before you do).
此时需要加入环境变量C_FORCE_ROOT
SENTRY_CONF=/home/sentry/init_s C_FORCE_ROOT=a sentry run worker

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342