使用openstack dockerr搭建sentry初始化报错

Docker部署Sentry+Django(无法收到告警邮件解决)...
Docker部署Sentry+Django(无法收到告警邮件解决)
docker部署
docker run -d --name sentry-redis redis
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres\
# 生成秘钥,后面的容器执行都使用这个
docker run --rm sentry config generate-secret-key
# r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j
docker run -it --rm -e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
# 如果发现无法收到告警邮件,或者可以收到测试邮件,但无法收到告警邮件,配置环境变量如下
docker run -d --name my-sentry \
-p 9000:9000 \
-e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' \
-e SENTRY_EMAIL_HOST='mail.xxx.com' \
-e SENTRY_EMAIL_PORT='587' \
-e SENTRY_EMAIL_USER='tao.' \
-e SENTRY_EMAIL_PASSWORD='xxx' \
-e SENTRY_EMAIL_USE_TLS=True \
-e SENTRY_SERVER_EMAIL='tao.' \
--link sentry-postgres:postgres \
--link sentry-redis:redis sentry
docker run -d --name sentry-cron
-e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' \
-e SENTRY_EMAIL_HOST='mail.xxx.com' \
-e SENTRY_EMAIL_PORT='587' \
-e SENTRY_EMAIL_USER='tao.' \
-e SENTRY_EMAIL_PASSWORD='xxx' \
-e SENTRY_EMAIL_USE_TLS=True \
-e SENTRY_SERVER_EMAIL='tao.' \
--link sentry-postgres:postgres \
--link sentry-redis:redis sentry run cron
docker run -d --name sentry-worker \
-e SENTRY_SECRET_KEY='r0#ymrm(42#_veib26ywn1wyn=o+qg)^y=9!ya8o2zsq@my84j' \
-e SENTRY_EMAIL_HOST='mail.xxx.com' \
-e SENTRY_EMAIL_PORT='587' \
-e SENTRY_EMAIL_USER='tao.' \
-e SENTRY_EMAIL_PASSWORD='xxx' \
-e SENTRY_EMAIL_USE_TLS=True \
-e SENTRY_SERVER_EMAIL='tao.'
--link sentry-postgres:postgres \
--link sentry-redis:redis sentry run
创建管理员账号
docker run -it --rm -e SENTRY_SECRET_KEY='&secret-key&' --link sentry-redis:redis --link sentry-postgres:postgres sentry createuser
配置Django项目
访问sentry()
点击new project,选择django确定,按提示在你django项目中进行如下配置
在settings中增加app
INSTALLED_APPS = (
'raven.contrib.django.raven_compat',
在settings中设置(dsn在提示中可以看到,也可以在project设置中看到)
import raven
RAVEN_CONFIG = {
'dsn': 'http://b44d12bf180:f51cb5d0ea@192.168.232.199:9000/3',
然后触发代码异常,可以发现sentry异常提示信息
捕获404异常,需要在配置的MIDDLEWARE中加如下配置
'raven.contrib.django.raven_compat.middleware.Sentry404CatchMiddleware',
如docker中提示vim: command not found
apt-get update
apt-get install vim
docker安装部署sentry
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865575",
container: s,
size: "300,250",
display: "inlay-fix"sentry搭建过程
sentry搭建过程
sentry是一个强大的分布式报错信息收集平台,图形化程度很高,可以帮助我们直观的发现当前部署的系统存在哪些问题。
1 准备工作
官方提供了两种部署方案
处于操作方便的考虑,我选择了docker。
这种方法需要先安装和
1.1 安装docker
这一部分比较简单,不过为了过程的完整性,还是把它列出来。
docker需要安装在内核版本大于3.10的64位Ubantu上才可以发挥全部功能。
通过uname -r可以查看当前操作系统的内核版本。
可以通过apt-get或者wget安装
$ wget -qO- https://get.docker.com/ | sh
通过docker --version可以查看版本号并确认是否安装成功。
1.2 安装docker-compose
Compose是用于定义和运行复杂Docker应用的工具。你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成。
通过curl从github上获取最新的版本,目前最新的发行版是1.9.0。这个命令需要使用sudo -i切换到root用户。
curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` & /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
执行完成后通过exit退出root用户。
可以通过docker-compose --version查看版本号并确定是否安装成功。
至此,准备工作就完成了。
2 正式搭建sentry
做完了准备工作,就可以开始搭建sentry了。
2.1 获取sentry
从github上可以获取最新的sentry。
git clone https:
获取到本地之后,就可以根据他的README.md开始着手搭建了,整个过程还是比较顺利的。
2.2 搭建sentry
-p data/{sentry,postgres}
sudo docker-compose run --rm web config generate-secret-key
这个步骤比较耗时,其间会提示创建superuser,用户名是一个邮箱,这个邮箱今后会收到sentry相关的消息,口令可以随便设置,只要自己记得住就可以了。最后会在命令行输出一串乱七八糟的字符(形如:z#4zkbxk1@8r*t=9z^@+q1=66zbida&dliunh1@p–u#zv63^g),这个就是secretkey,将这串字符复制到docker-compose.yml文件中并保存。
因为我的ubuntu没有图形界面,所以如果纯用vim操作的话,也很简单——
将输出的key重定向到一个文件中(例如:file)
sudo docker-compose run --rm web config generate-secret-key & file
打开docker-compose.yml
sudo vim docker-compose.yml
将光标定位到要插入的地方,输入命令
:r!cat file
sudo docker-compose run
sudo docker-compose up -d
至此,就可以访问本机的9000端口,使用superuser的邮箱和口令进入sentry平台了。
具体的使用,我明天做了再和大家分享吧~
Sentry手动安装、使用手册
搭建自己的 sentry 服务
纯净centOs
安装sentry
Docker部署Sentry+Django(无法收到告警邮件解决)
centos7下搭建sentry错误日志服务器
Apache Sentry手动安装、使用手册
apache sentry安装
&转&Apache Sentry安装及简单使用
关于Sentry
Install Sentry Server(Sentry Server的搭建)[for_wind]
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865575",
container: s,
size: "300,250",
display: "inlay-fix"利用 entry/onpremise 搭建一个 Sentry 异常汇总工具...
利用 entry/onpremise 搭建一个 Sentry 异常汇总工具
sentry-and-laravel
之前我们说过利用「钉钉群」来通知 Laravel 的异常,但我们发现钉钉的作用更多的是通知我们有异常了,要跟进异常问题了。
我们还是需要有一个地方,很直观的来汇总异常和分析异常,总不能每次出现问题我们都去服务器上看项目的 Log 吧。
在 Laravel 的文档说明中,推荐使用 Bugsnag 或 Sentry:
所有异常都由 App\Exceptions\Handler 类处理。 这个类包含两个方法:report 和 render。report 方法用于记录异常或将其发送到外部服务,如 Bugsnag 或 Sentry。默认情况下,report 方法只是简单地将异常传递给记录异常的基类。你可以根据需要来记录异常。
今天我们推荐 getsentry/onpremise 用于搭建 Sentry 工具,收集项目异常。
Stop hoping your users will report errors
Open-source error tracking that helps developers monitor and fix crashes in real time. Iterate continuously. Boost efficiency. Improve user experience.
简言之,Sentry 是一个日志平台,主要分为客户端和服务端,客户端嵌入到我们的应用程序中,当应用出现异常时,就会向服务端发送异常信息,服务端则将信息记录到数据库汇总,并提供 web 方式,方便我们对异常进行查看和分析,避免于我们需要登录自己的服务器后台去查看生硬的 log 文件。
getsentry/onpremise
Official bootstrap for running your own Sentry with Docker.
利用 docker 安装工具,是最好的方式,因为如果觉得不合适,直接 rm,不会影响到我们的服务器环境。
按照 README 说明的来就行:
// 1. 下载 docker-compose 安装文件
git clone https://github.com/getsentry/onpremise.git
// 2. 创建 data 文件夹,存储我们的项目文件和数据库
mkdir -p data/{sentry,postgres}
// 3. 创建 secret-key,并把 key 添加到 docker-compose.yml
docker-compose run --rm web config generate-secret-key
// 4. 创建数据库、admin 账号等
docker-compose run --rm web upgrade
// 5. 开启各个服务,后台运行
docker-compose up -d
// 6. 我们可以修改配置文件,或端口等信息
我们把端口改成 ,接着就是利用 nginx 或者其他服务器工具进行方向代理,配置二级域名,关联到该端口上。
nginx 配置
配置二级域名反向解析到该 9999 端口上,比较简单,直接看:
使用 Sentry
使用 Sentry,主要是创建一个项目,生成一个客户端密钥 (DSN)。
当 new 一个项目时,你会发现,Sentry 可以集成的项目语言涵盖很多,如 C#、Java、Node.js、Laravel 等等
当然,我们先选择尝试使用 Laravel,创建好后,会出现一篇如何集成到客户端的说明文档:
当然也包含了 DSN。
创建好了项目后,接下来就是看看如何集成到客户端使用了。
Laravel 项目集成
根据文档提示,我们一步步操作,安装插件:
composer require sentry/sentry-laravel
添加代码,捕获异常:
public function report(Exception $exception)
if (app()-&bound('sentry') && $this-&shouldReport($exception)) {
app('sentry')-&captureException($exception);
parent::report($exception);
添加配置文件
php artisan vendor:publish --provider="Sentry\SentryLaravel\SentryLaravelServiceProvider"
在 env 配置文件上,添加刚才创建的 DNS:
SENTRY_LARAVEL_DSN=http://49bafc6a1e263205abfe:63afbafbf61b@yoururl/2
利用 Artisan 测试看看:
php artisan sentry:test
test 发送的 event id 和
Sentry 项目中获取的 event id 一致。
工具的使用就是为了方便我们平时开发使用。有了 Sentry,我们可以将不同项目的异常都放在 Sentry 上去汇总和分析。
不仅仅 Laravel 项目,其他的项目如VUE 的,我们也可以把异常实时推送到 Sentry 上。
至于如何使用好 Sentry,以及使用 Sentry 提供的 API 等。有待于我们的实际生成和开发中,需要去不断熟悉使用了。
以后有时间也会写写 Sentry 使用心得。
没有更多推荐了,Sentry--错误日志收集框架
Sentry--错误日志收集框架
Sentry’s real-time error tracking gives you insight into production deployments and information to reproduce and fix crashes.---官网介绍
Sentry是一个实时事件日志记录和汇集的日志平台,其专注于错误监控,以及提取一切事后处理所需的信息。他基于Django开发,目的在于帮助开发人员从散落在多个不同服务器上的日志文件里提取发掘异常,方便debug。Sentry由python编写,源码开放,性能卓越,易于扩展,目前著名的用户有Disqus, Path, mozilla, Pinterest等。它分为客户端和服务端,客户端就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web节目方便查看。
DSN(Data Source Name)
当你完成sentry配置的时候,你会得到一个称为“DSN”的值,看起来像一个标准的URL。Sentry 服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的 PUBLIC_KEY 和 SECRET_KEY。由此组成一个这样的 DSN:
'{PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID}'
PROTOCOL 通常会是 http 或者 https,HOST 为 Sentry 服务的主机名和端口,PATH 通常为空。
Sentry支持的语言:
这里有两种方式安装sentry,我这里介绍用docker的安装方式(官网推荐用docker)。
sentry运行需要的服务:
PostgreSQL
Outbound Email
启动sentry需要依赖的服务:
Web Service
Background Workers
Cron Process
容器安装sentry需要的环境:
Docker 1.10.0+
Compose 1.6.0+ (optional)
另外redis、数据库等也可以配置cluster,并结合HAProxy使用。我这里docker容器全部只安装在了一台机器(Ubuntu1404)上。
安装docker
增加GPG key:
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 \
--recv-keys AADBF09D
配置apt仓库:
在/etc/apt/sources.list文件最好追加一行:
deb https://apt.dockerproject.org/repo ubuntu-trusty main
安装 docker-engine:
$ sudo apt-get update
$ sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual
$ sudo apt-get install docker-engine
2、安装docker-compose
使用pip安装,如果没有pip需要先安装:
$ sudo apt-get install python-pip
$ sudo pip install docker-compose
3、构建容器并创建数据库和sentry安装目录
$ sudo apt-get install git
$ sudo git clone
$ sudo mkdir -p data/{sentry,postgres}
4、生成secret key并添加到docker-compose文件里:
$ sudo docker-compose run --rm web config generate-secret-key
$ sudo vim docker-compose.yml
5、重建数据库,并创建sentry超级管理员用户
$ sudo docker-compose run --rm web upgrade
这里采用交互方式创建用户:
upgrade过程:
创建用户,sentry新建的时候需要一个超级管理员用户:
6、启动所有的服务:
$ sudo docker-compose up -d
7、访问sentry
打开浏览器,输入url:
访问之前可以检查下容器和端口情况:
docker ps看下当前运行的容器:
netstat查看端口打开情况:
登陆界面,这里会提示你的Root URL,如果不想更改继续下一步即可完成:
页面展示:
至此sentry搭建完成!
Sentry目前用户类型有四种: 超级管理员, 管理员,普通用户和System agents. 超级用户只能通过命令行来创建,其他用户可以自己注册或由其他用户邀请注册加入,然后由超级管理员或管理员分配项目和权限。为了更好支持团队协助以及信息安全,新版本Sentry(5.4.2)经过了重新设计,重新设计后的Sentry以Team为中心组织权限。所谓Team就是一个团队,一些用户组织在一起对某些项目有操作权限的组织。一个项目只能属于一个Team, 一个用户却可以属于多个Team, 并可在不同Team中扮演不同角色,
如用户A在Team X是管理员而在Team Y中是System agents. Sentry对用户角色的指定只能到Team级别,不能到Project级别, 所以将某个用户加入到某个Team之后,这个用户就对所有所有属于这个Team下所有project有了相同的权限。
超级管理员: 能创建各种用户, team和project只能由超级管理员创建。项目的一些设置比如改变Owner, 数据公开可见与否(设为public的数据可以通过url不登陆也能查看)以及客户端domain限制的设定。另外还有管理项目的api key(客户端只有得到此api key才能向Sentry发送消息)的权限等等。
管理员: 能创建用户, team和项目设定中除改变owner之外的权限, 可以对项目中具体数据做resolve, bookmark, public/public和remove操作。
普通用户: 无Team界面,只能对项目中具体数据做resolve, bookmark, public/unpublic和remove操作。
System agents: 无Team界面,只能对项目中具体数据做bookmark, unpublic和remove操作。
参考链接:
docker安装:
sentry安装:
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865575",
container: s,
size: "300,250",
display: "inlay-fix"django使用sentry错误日志管理系统
django使用sentry错误日志管理系统
django使用sentry管理系统
sentry是用python写的日志管理系统,可在上面管理出现的错误日志
在上面我们可以分项目,分组别的处理错误日志
sentry的github地址:
sentry on prepose的github地址:
他俩的区别:sentry是介绍sentry的使用的,而sentry onpremise则是使用docker安装sentry系统的
1. 使用docker安装sentry
先安装docker和docker-compose,可以上daocloud上安装,速度快
先找个文件夹,从onpremise上clone下来项目:sudo git clone
再cd进入clone下来的文件夹,在里面创建数据文件夹和生成web密钥:
cd onpremise
sudo mkdir -p data/{sentry,postgres}
docker-compose run --rm web config generate-secret-key
sudo vi docker-compose.yml
迁移数据库的表
docker-compose run --rm web upgrade
开启docker运行
docker-compose run up -d
这时候可以在浏览器输入: 登录确认了
2. 配合django里面使用
进入 localhost:9000 之后,在里面登录后,点击new project,选择django,最后查看dsn值,得到一串字符串,dsn值
pip install raven –upgrade
# 安装raven
配置django的settings.py
INSTALLED_APP = [
'raven.contrib.django.raven_compat'
RAVEN_CONFIG = {
'dsn': '你上面创建项目的时候得到的dsn'
其他的都不需要配置,就可以了,至于sentry网页上的分组等操作,则需要自己去摸索了
sentry搭建过程
搭建自己的 sentry 服务
docker 安装部署sentry (带docker-compose文件)
实时事件日志记录和聚合的平台——Sentry
Django sentry配置
Sentry--错误日志收集框架
docker安装部署sentry
拿到一个新服务器后我都做了什么(安装docker&sentry)
Sentry介绍及使用
Docker安装私有Sentry服务
没有更多推荐了,
(window.slotbydup=window.slotbydup || []).push({
id: "5865575",
container: s,
size: "300,250",
display: "inlay-fix"}

我要回帖

更多关于 docker有什么用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信