安装redis
# 安装 redis
yum install redis
# 启动 redis
systemctl start redis
# 加入开机启动
chkconfig redis on
安装 postgresql
sudo yum install -y postgresql-server
# 初始化
postgresql-setup initdb
# 修改配置
vi /var/lib/pgsql/data/pg_hba.conf
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# 启动
systemctl start postgresql
# 创建 账号sentry 密码 sentry 数据库 sentry
[root@localhost ~]# sudo su - postgres
-bash-4.2$ psql
psql (9.2.24)
输入 "help" 来获取帮助信息.
postgres=# create user sentry with password 'sentry';
CREATE ROLE
postgres=# CREATE DATABASE sentry OWNER sentry;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE sentry to sentry;
GRANT
postgres=# \q
-bash-4.2$ exit
#重启
systemctl restart postgresql
安装sqlite3
# 系统没有 sqllite 的可以执行这个操作
wget https://www.sqlite.org/2019/sqlite-autoconf-3270200.tar.gz
tar -zxvf sqlite-autoconf-3270200.tar.gz
cd sqlite-autoconf-3270200
./configure --prefix=/usr/local
make && make install
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
echo 'export LD_LIBRARY_PATH="/usr/local/lib"' >> ~/.bashrc
exec $SHELL -l
安装 pyenv
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel libffi-devel gcc
git clone https://gitee.com/baicai101/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
exec $SHELL -l
pyenv install 3.7.0
Downloading Python-3.7.0.tar.xz...
-> https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
Installing Python-3.7.0...
Installed Python-3.7.0 to /root/.pyenv/versions/3.7.0
# 设置python
pyenv global 3.7.0
安装sentry
yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
pip install setuptools==40.3.0
pip install --upgrade pip
pip install sentry==21.10.0
pip install importlib-metadata==4.13.0
修改文件
/root/.pyenv/versions/3.7.0/lib/python3.7/site-packages/sentry/utils/strings.py
将 unicode-escape
替换成 raw_unicode-escape
def unescape_string(value):
"""Unescapes a backslash escaped string."""
return value.encode("ascii", "backslashreplace").decode(
"unicode-escape", "unicode-escape-recovery"
)
修改后
def unescape_string(value):
"""Unescapes a backslash escaped string."""
return value.encode("ascii", "backslashreplace").decode(
"raw_unicode-escape", "unicode-escape-recovery"
)
修改邮箱字段
/root/.pyenv/versions/3.7.0/lib/python3.7/site-packages/sentry/models/email.py
class Email(Model):
"""
Email represents a unique email. Email settings (unsubscribe state) should be associated here.
UserEmail represents whether a given user account has access to that email.
"""
__include_in_export__ = True
# email = CIEmailField(_("email address"), unique=True, max_length=75)
email = models.EmailField(unique=True, max_length=75)
date_added = models.DateTimeField(default=timezone.now)
class Meta:
app_label = "sentry"
db_table = "sentry_email"
__repr__ = sane_repr("email")
初始化
sentry init
cd ~/.sentry/
# 修改配置文件
vim sentry.conf.py
# 填写刚才建库的账号密码等信息
DATABASES = {
'default': {
'ENGINE': 'sentry.db.postgres',
'NAME': 'sentry',
'USER': 'sentry',
'PASSWORD': 'sentry',
'HOST': '127.0.0.1',
'PORT': '5432',
'AUTOCOMMIT': True,
'ATOMIC_REQUESTS': False,
}
}
迁移建表
cd /root/.pyenv/versions/3.7.0/lib/python3.7/site-packages/sentry
cp -R migrations/ migrationsbak
cd migrations
# 删除迁移数据
rm -rf 0*
#生成迁移数据
sentry django makemigrations -n sentry
# 建表
sentry django migrate
#此处会创建账户 选择Y创建
Would you like to create a user account now? [Y/n]: Y
Email:
启动
sentry --config ~/.sentry/ run web
端口 数据库等需要在 ~/.sentry/
中修改。
成功界面http://ip:9000/
最后就是别折腾了,用官方给的使用docker的吧。貌似弃用pypi了