简介
Sentry 是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。
环境准备
- ubuntu
- docker-ce
- git
- sentry
在ubuntu安装docker-ce
- ubuntu的旧版本被称为docker,docker.io 或docker-engine。如果已安装,请卸载它们
sudo apt-get remove docker docker-engine docker.io containerd runc
- 更新apt包索引
sudo apt-get update
- 安装包以允许apt通过HTTPS使用存储库
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
- 添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
通过搜索指纹的最后8个字符,验证您现在拥有带指纹的密钥 。
sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
- 设置稳定存储库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
如果出现ModuleNotFoundError: No module named 'apt_pkg'
错误的解决办法
sudo apt-get remove --purge python-apt
sudo apt-get install python-apt -f
cd /usr/lib/python3/dist-packages/
sudo cp apt_pkg.cpython-3?m-x86_64-linux-gnu.so apt_pkg.cpython-36m-x86_64-linux-gnu.so
- 更新apt包索引。
sudo apt-get update
- 安装最新版本的Docker CE和containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
要安装特定版本的Docker CE,请在repo中列出可用版本,然后选择并安装:
- 列出您的仓库中可用的版本
apt-cache madison docker-ce
docker-ce | 5:18.09.1~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 5:18.09.0~3-0~ubuntu-xenial | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.1~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
docker-ce | 18.06.0~ce~3-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages
...
例如,使用第二列中的版本字符串安装特定版本5:18.09.1~3-0~ubuntu-xenial
sudo apt-get install docker-ce=5:18.09.0~3-0~ubuntu-xenial
- 启动docker服务
systemctl status docker
- 通过运行hello-world 映像验证是否正确安装了Docker CE 。
sudo docker run hello-world
-
以下代表docker-ce安装成功。
hello-world
安装git
安装git主要是用来克隆sentry在github上的项目
sudo apt-get install git
安装sentry服务端
- 在本地ubuntu随便找个路径存储克隆下来的sentry,执行下面路径开始克隆
git clone -b stable https://github.com/getsentry/onpremise.git
克隆完sentry项目后, cd到项目
cd onpremise
- 创建本地数据库和sentry存储文件
docker volume create --name=sentry-data && docker volume create --name=sentry-postgres
- 创建env配置文件
cp -n .env.example .env
- 构建和标记Docker服务
docker-compose build
如果出现提示:Service 'cron' failed to build: invalid reference format
把SENTRY_IMAGE=sentry:9.1.2
添加到.env
文件中即可。
5 . 生成密钥
docker-compose run --rm web config generate-secret-key
把生成的key复制到.env文件的SENTRY_SECRET_KEY=后面
注意:.env是隐藏文件 ls -a 可以查看
vim .env
6 . 构建数据库。使用交互式提示创建用户帐户
docker-compose run --rm web upgrade
- 启动服务
docker-compose up -d
- 打开浏览器访问 localhost:9000
ok,输入上面创建的账户密码登陆。
本次sentry系统就算搭建好了,接下来就是把它集成到项目中了。
具体集成方法参考sentry官方文档
查看postgres数据的表信息
(1)使用docker命令进入postgres数据库
docker exec -it onpremise_postgres_1 bash
(2)进入postgres数据库
psql -h 127.0.0.1 -d postgres -U postgres
(3)查看这两个表是否有数据sentry_project,sentry_organization
select * from sentry_project;
select * from sentry_organization ;
(4) 查看所有表
\dt
(5) 查看表结构
\d tablename
如果创建用户失败从新创建
(1)新开一个终端,进入sentry的web的shell里面,其实就是一个python端
docker-compose run --rm web shell
(2)输入以下命令进行初始化数据
from sentry.models import Project
from sentry.receivers.core import create_default_projects
create_default_projects([Project])
(3)退出第五步的shell,创建自己的用户
docker-compose run --rm web createuser
配置邮箱
修改config.yml文件
vim config.yml
# 修改这里,取消原本的注释
# mail.backend: 'smtp' # Use dummy if you want to disable email entirely
mail.host: 'smtp.exmail.qq.com'
mail.port: 587
mail.username: 'test@tt.com' # 邮箱
mail.password: 'xxxx' # 授权码 不是登录邮箱密码
mail.use-tls: true
# The email address to send on behalf of
mail.from: 'test@tt.com' # 从哪个邮箱发出去的
重新构建,启动
docker-compose build
docker-compose run --rm web upgrade
docker-compose up -d
集成钉钉
vim requirements.txt
# Add plugins here
# 钉钉通知插件
sentry-dingding~=0.0.3
# 发邮件支持SSL协议
django-smtp-ssl~=1.0
# redis版本
redis-py-cluster==1.3.4
重新构建
docker-compose build
docker-compose up -d
打开web填入钉钉的token
sentry
网友评论