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 。现在开始一个项目和和跟踪错误