Sentry
跳转到导航
跳转到搜索
安装
安装 postgresql-devel 等需要的库。
安装 Python 2 的 pip,然后建立一个 virtualenv:
pip install virtualenv
virtualenv /usr/local/sentry
. /usr/local/sentry/bin/activate
在激活了 virtualenv 的 shell 中安装:
pip install sentry
配置
基本配置
初始化模板配置文件:
sentry init /etc/sentry
准备目录与用户:
mkdir -p /var/lib/sentry /data/logs/sentry
useradd -r -s /bin/sh -U -d /var/lib/sentry sentry
chown sentry: /var/lib/sentry /data/logs/sentry
编辑生成的配置文件,设置好邮件(比如 Postfix)、Redis 与 PostgreSQL。
确保 Redis 与 PostgreSQL 已经在运行。
初始化数据库:
sudo -u postgres createuser -d sentry
sudo -u sentry createdb
sudo -u sentry SENTRY_CONF=/etc/sentry /usr/local/sentry/bin/sentry upgrade
nginx 反代:
server {
server_name sentry.example.com;
access_log /data/logs/nginx/access_$host.log;
location / {
proxy_pass http://localhost:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
速率限制
(旧版本;可能已经失效。)
SENTRY_QUOTAS = 'sentry.quotas.redis.RedisQuota'
SENTRY_QUOTA_OPTIONS = {
'hosts': {
0: {
'host': 'localhost',
'port': 6379,
'db': 8,
}
}
}
SENTRY_SYSTEM_MAX_EVENTS_PER_MINUTE = 500
运行
手动
sudo -u sentry SENTRY_CONF=/etc/sentry /usr/local/sentry/bin/sentry run web >> /data/logs/sentry/sentry.log 2>&1 &
sudo -u sentry SENTRY_CONF=/etc/sentry /usr/local/sentry/bin/sentry run worker >> /data/logs/sentry/sentry-worker.log 2>&1 &
sudo -u sentry SENTRY_CONF=/etc/sentry /usr/local/sentry/bin/sentry run cron >> /data/logs/sentry/sentry-cron.log 2>&1 &
或者,使用当前用户:
SENTRY_CONF=$HOME/etc/sentry $HOME/sentry/bin/sentry run web >> $HOME/sentry/var/logs/sentry.log 2>&1 &
SENTRY_CONF=$HOME/etc/sentry $HOME/sentry/bin/sentry run worker >> $HOME/sentry/var/logs/sentry-worker.log 2>&1 &
SENTRY_CONF=$HOME/etc/sentry $HOME/sentry/bin/sentry run cron >> $HOME/sentry/var/logs/sentry-cron.log 2>&1 &
使用 supervisord
[group:sentry]
programs = sentry-web,sentry-worker,sentry-cron
[program:sentry-web]
environment = SENTRY_CONF=/home/work/sentry/etc/sentry
command = /home/work/sentry/bin/sentry run web
user = work
group = work
redirect_stderr = true
stdout_logfile = /home/work/.local/var/log/sentry-web.log
[program:sentry-worker]
environment = SENTRY_CONF=/home/work/sentry/etc/sentry
command = /home/work/sentry/bin/sentry run worker
user = work
group = work
redirect_stderr = true
stdout_logfile = /home/work/.local/var/log/sentry-worker.log
[program:sentry-cron]
environment = SENTRY_CONF=/home/work/sentry/etc/sentry
command = /home/work/sentry/bin/sentry run cron
user = work
group = work
redirect_stderr = true
stdout_logfile = /home/work/.local/var/log/sentry-cron.log
注意事项
- 要求 Redis 版本 >= 2.8.9
- 要求 PostgreSQL 版本 >= 9 并且安装 contrib 包
- 邮件设置中,
mail.use-tls
实际上使用的是STARTTLS
而非直接进行 TLS 连接,因此需要选择非加密端口然后协商(版本 8.22.0,使用 Django 版本 1.6.11)