在Ubuntu 16.04上通过Python设置Sentry

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com

介绍

Sentry是用于错误跟踪的开源解决方案。 Sentry跟踪来自应用程序的异常和其他有用消息,这些消息和消息通常会写入日志文件,而是使用用户友好的界面。

先决条件

运行Sentry所需的一些基本先决条件:

最新的Ubuntu 16.04服务器。
sudo用户。

安装

首先更新您的系统:

sudo apt-get update

创建将运行软件的哨兵用户:

sudo adduser sentry
sudo adduser sentry sudo

安装 pythonbuild-essential 套餐:

sudo apt-get install -y python build-essential

创建文件 /etc/apt/sources.list.d/pgdg.list

sudo touch /etc/apt/sources.list.d/pgdg.list

导入签名密钥并更新软件包列表:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

安装PostgreSQL:

sudo apt-get install postgresql-9.5

下载最新的Redis 4.x来源:

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

将Redis源解压缩到其自己的文件夹中,这样我们就可以 cd 并在下一步中构建它:

tar -xvf redis-4.0.1.tar.gz

从源代码构建:

cd redis-4.0.1
make

在后台运行Redis:

src/redis-server --daemonize yes

安装 pip 及相关库:

cd ~
sudo apt-get install python-setuptools python-dev libxslt1-dev gcc libffi-dev libjpeg-dev libxml2-dev libxslt-dev libyaml-dev libpq-dev python-pip

安装Python虚拟环境:

sudo pip install -U virtualenv

安装 postgresql-contrib

sudo apt-get install postgresql-contrib-9.5

作为登录 postgres 用户并启用 citext 延期:

sudo su - postgres
$ psql -d template1 -U postgres
psql (9.5.12)
Type "help" for help.
template1=# create extension citext;
CREATE EXTENSION
template1=# q

创建 sentry 数据库:

$ createdb sentry_db
$ createuser sentry --pwprompt
$ psql -d template1 -U postgres

template1=# GRANT ALL PRIVILEGES ON DATABASE sentry_db to sentry;
GRANT
template1=# ALTER USER sentry WITH SUPERUSER;
ALTER ROLE
template1=# q
exit

作为登录 sentry 用户并为Sentry创建虚拟环境:

sudo su - sentry
virtualenv ~/sentry_app/
source ~/sentry_app/bin/activate

在计算机上安装Sentry:

pip install -U sentry

初始化哨兵:

sentry init

此命令将在目录中创建配置文件 ~/.sentry/

打开配置文件 ~/.sentry/sentry.conf.py

nano ~/.sentry/sentry.conf.py

然后添加数据库凭据。它应类似于以下示例:

DATABASES = {
    'default': {
        'ENGINE': 'sentry.db.postgres',
        'NAME': 'sentry_db',
        'USER': 'sentry',
        'PASSWORD': 'securedpassword',
        'HOST': 'localhost',
        'PORT': '5432',
        'AUTOCOMMIT': True,
        'ATOMIC_REQUESTS': False,
    }
}

初始化数据库:

sentry upgrade

将哨兵作为服务运行

登出 sentry 用户:

exit

安装主管:

sudo apt-get install -y supervisor

将Sentry服务器配置为每当服务器使用以下命令启动时启动 supervisord。将以下配置放入文件中 /etc/supervisor/conf.d/sentry.conf

[program:sentry-web]
directory=/home/sentry/sentry_app/
environment=SENTRY_CONF="/home/sentry/.sentry"
command=/home/sentry/sentry_app/bin/sentry run web
autostart=true
autorestart=true
redirect_stderr=true
user=sentry
stdout_logfile=syslog
stderr_logfile=syslog

[program:sentry-worker]
directory=/home/sentry/sentry_app/
environment=SENTRY_CONF="/home/sentry/.sentry"
command=/home/sentry/sentry_app/bin/sentry run worker
autostart=true
autorestart=true
redirect_stderr=true
user=sentry
stdout_logfile=syslog
stderr_logfile=syslog

[program:sentry-cron]
directory=/home/sentry/sentry_app/
environment=SENTRY_CONF="/home/sentry/.sentry"
command=/home/sentry/sentry_app/bin/sentry run cron
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=syslog
stderr_logfile=syslog

保存文件并重新加载Supervisor:

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all

Sentry现在已配置并在端口上侦听 9000。导航 http://you_server_ip:9000 在您喜欢的浏览器中完成Sentry的设置。

注:本教程在Vultr VPS上测试通过,如需部署请前往Vultr.com