前端监控(Sentry)
Sentry是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。它分为客户端和服务端,客户端(目前客户端有Python, PHP,C#, Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web页方便查看。Sentry由python编写,源码开放,性能卓越,易于扩展,目前著名的用户有Disqus, Path, mozilla, Pinterest等。
为什么选择 Sentry?
- 免费
- Sentry 可直接使用也可自行搭建
- 兼容性强,基本不受语言限制,搭建一套系统可用于多个项目。
部署
方法一:使用命令行的形式部署
本次服务器配置
- Docker 20.10.10 (最新)
- docker-compose 1.28.6
- 最小需要 2400MB RAM,为了后续拓展建议使用8G内存
安装docker、docker-compose
- 1、卸载旧版本Docker
yum remove docker docker-common docker-selinux docker-engine
- 2、安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
- 3、安装docker-ce
yum -y install docker-ce
- 4、启动 docker
sudo systemctl start docker
- 5、安装指定版本的 docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.6/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# https://github.com/docker/compose/releases docker-compose 版本号查询
部署sentry
- 1、拉取镜像
docker pull sentry ###目前最新版本9.1.2
docker pull redis
docker pull postgres
- 2、启动服务
docker run -d --name sentry-redis --restart=always redis ###保证了,异常自动拉起
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry --restart=always postgres
- 3、生成sentry秘钥
docker run --rm sentry config generate-secret-key
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxddd ###打印出secret-keys
- 4、数据库及账户初始化
# 注意:过程中需要你创建用户和密码
docker run -it --rm -e SENTRY_SECRET_KEY='xxxxx' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
- 5、启动sentry的web服务
docker run -d -p 9000:9000 --name my-sentry -e SENTRY_SECRET_KEY='xxxxx' --link sentry-redis:redis --link sentry-postgres:postgres --restart=always sentry
- 6、启动sentry-cron/work服务
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='xxxx' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='xxxxx' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
- 7、登录测试效果
方法二:使用官方的 onpremise
服务器配置要求
- 4 核 8G 内存
- Docker 17.05.0+
- Compose 1.23.0+
害~ 我的服务器配置不够,没尝试这种
部署sentry
- 1、从 github 上获取 Sentry 最新代码
git clone https://github.com/getsentry/onpremise.git
- 2、进入 onpremise ,运行 install.sh 脚本。
cd onpremise
./install.sh
- 3、安装完成后
docker-compose up -d # 成功后访问 http://127.0.0.1:9000 即可进入 sentry 主界面
- 4、账号注册
# 安装完毕后可以用以下指令创建用户:(创建用户,该用户为超级用户,不加 --superuser 则为普通用户,--force-update 可以用来覆盖已经存在的相同账号)
docker-compose run --rm web createuser --superuser --force-update
然后打开 sentry 主界面(http://127.0.0.1:9000 )用刚刚申请的账号登录,第一次登陆的时候可以进行一些基础配置,例如是否允许注册、隐私、邮箱服务器的配置等等(因为 sentry 中的团队管理会涉及到用发邮箱来邀请用户的部分,因此可以选择是否配置邮箱服务器),自行配置完毕后即可进入 sentry 管理的主界面
- 5、停止 sentry 服务
docker-compose down
小技巧
# 一键加速 git clone
只需要将www.github.com/后面为代码库 改为
www.github.com.cnpmjs.org/后面为代码库地址就可以实现一键式加速。
# 一键启动容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)