Ruby中在Ubuntu 16.04 LTS上配置一个Sentry服务器的方法

113 阅读3分钟

Sentry是一个错误跟踪软件产品,有许多不同的订阅选项。它的软件是开源的,如果你不熟悉服务器方面的事情和托管,可能很难安装。他们确实提供了一个免费的托管选项,每月最多有10k个事件,1个用户,最多保留7天。

在这个例子中,我使用的是最新的Ubuntu 16.04.2 LTS安装。为了开始工作,我们将安装几个软件包。注意,这将安装Redis和PostgreSQL。通常情况下,你会想把这些安装在它们自己的服务器上。

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y python-virtualenv python-setuptools python-pip libxslt1-dev gcc
sudo apt-get install -y libffi-dev libjpeg-dev libxml2-dev libxslt-dev libyaml-dev python-dev
sudo apt-get install -y python-setuptools python-dev libxslt1-dev gcc libffi-dev libjpeg-dev
sudo apt-get install -y libxml2-dev libxslt-dev libyaml-dev libpq-dev nginx
sudo apt-get install -y postgresql-server-dev-9.5 supervisor nodejs
sudo apt-get install -y postgresql redis-server

然后,我们将创建一个将运行该软件的sentry用户。我们还将允许这个用户成为一个sudoer。

sudo adduser sentry
sudo adduser sentry sudo

接下来,我们需要创建我们的数据库。要做到这一点,我们将以postgres用户的身份登录,并打开template1数据库。我们将创建一个sentry数据库用户和密码。请务必修改这个密码。然后我们需要创建citext 扩展。

sudo su - postgres
psql template1
create extension citext;
create user sentry with password 'sentry';
create database sentrydb with owner sentry;
\q
exit

然后我们将以sentry用户的身份登录,为sentry创建一个虚拟环境。

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

让我们安装sentry

pip install -U sentry
sentry init

让我们用vi,nano 或任何你喜欢的编辑器来配置sentry.conf.py

nano ~/.sentry/sentry.conf.py
DATABASES = {
    'default': {
        'ENGINE': 'sentry.db.postgres',
        'NAME': 'sentrydb',
        'USER': 'sentry', 
        'PASSWORD': 'sentry', # <-- or whatever you set with the psql command
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

我们现在准备升级了!这将迁移数据库;建立表和初始数据。你还会被要求创建一个用户,这将是你的登录信息。

sentry upgrade

让我们注销sentry 用户,并使sentry在服务器启动时启动。

exit
sudo nano /etc/supervisor/conf.d/sentry.conf

然后我们将这个粘贴到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 status

然后,该应用程序将在http://localhost:9000 。 如果你想设置SSL或在80端口运行sentry ,我们可以创建一个NGINX代理。

sudo nano /etc/nginx/sites-enabled/default

然后将location / 替换为以下内容。

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; 
}

如果你需要配置你的电子邮件设置,你可以编辑/home/sentry/.sentry/config.yml

你也可以设置crontab ,定期清理哨兵数据。

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

你的网站将在http://x.x.x.x/auth/login 。现在开始一个项目和和跟踪错误