sentry

运维开发实践——基于Sentry搭建错误日志监控系统

て烟熏妆下的殇ゞ 提交于 2019-12-03 13:56:29
错误日志监控也可称为业务逻辑监控, 旨在对业务系统运行过程中产生的错误日志进行收集归纳和监控告警。似乎有那么点曾相识?没错... 就是提到的“APM应用性能监控”。但它又与APM不同,APM系统主要注重应用层的行为分析,收集的更多是运营方向的数据。而sentry所做的是收集应用底层代码的崩溃信息,便于码侬们排查代码异常。简单来说它就是一个面向技术码侬的排障工具。 1. 场景描述 随着运维自动化流程的推进, 各类运维工具和系统也像雨后春笋般涌现. 目前我们自主开发的运维系统的数量已经接近两位数. 这些系统部署在多台机器上, 通常还配套一批后台运行的脚本. web端如果出现异常, 开发人员可以及时得到反馈进行修复. 而脚本因为没有交互, 可能会出现发生重大故障时才定位到问题的情况. 2. 既有方案 后端和脚本用python内置的日志模块记录程序中间状态, 同时也将两者的输出重定向到指定文件, 以获取未捕获的异常信息. 同台服务器上多个系统的日志集中存放到同个目录 使用rsync定时从多台服务器中拉取日志文件 对日志文件进行关键字匹配, 并将过滤结果通过邮件发送给运维开发人员 最终整合的通知邮件如图 3. 存在的问题 上面的操作部分解决了脚本运行状态监控盲区的问题, 但还存在如下问题 无法第一时间感知错误 脚本日志的拉取不是实时的, web端用户的反馈也往往存在滞后.

CDH5.16.1安装Sentry

99封情书 提交于 2019-12-03 07:02:10
1.环境 CentOS 7.6 CDH 5.16.1 2.安装Sentry 1.创建数据库 create database sentry default character set utf8; CREATE USER 'sentry'@'%' IDENTIFIED BY 'admin'; GRANT ALL PRIVILEGES ON sentry. * TO 'sentry'@'%' IDENTIFIED BY 'admin'; FLUSH PRIVILEGES; 2.添加Sentry服务 3.通过Sentry配置权限 1.修改Hive下的HiveServer2配置 2.配置Hive的Sentry服务 3.配置HDFS的Sentry,控制用户访问的HDFS目录 4.配置Impala的Sentry 5.配置Hue的Sentry 6.开启hive服务的testing模式 来源: https://www.cnblogs.com/wuning/p/11756437.html

How can I use sentry with laravel 5?

匿名 (未验证) 提交于 2019-12-03 02:14:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 由 翻译 强力驱动 问题: I have tried installing sentry in laravel 5 but it doesn't work. I would like to know if anyone has done it and how to do it. Update: I used the instructions for Laravel 4. 回答1: I have this working. There is no official support right now for Sentry in L5. They state this right on their website. They are working on it however. Add the following to your composer.json file in the require section. "cartalyst/sentry" : "dev-feature/laravel-5" , "illuminate/html" : "~5.0" Add the following to the autoload section. "app/Http/Controllers"

hive记录-cdh配置hive和sentry

匿名 (未验证) 提交于 2019-12-03 00:41:02
1.cdh添加组件-sentry-选择主机-配置数据库 2.配置数据库 1)mysql -uroot -p DEFAULT CHARSET utf8 COLLATE utf8_general_ci ; 3) grant all privileges on sentry.* to root@‘%‘ identified by ‘123‘ with grant option; 选择mysql数据库主机、用户名、密码、需要将mysql jdbc驱动拷贝到对应主机下的cm/share/cmf/lib和/opt/cloudera/parcels/CDH-5.10.2-1.cdh5.10.2.p0.5/lib/sentry/lib 测试连接-下一步-创建数据库表,开启sentry服务 3.hive配置下勾选sentry和hue配置勾选sentry 4.重启hive和hue 5.beeline登录进行授权角色 beeline -u "jdbc:hive2://hadoop03:10000/" -n hive -p hive -d org.apache.hive.jdbc.HiveDriver 1)创建角色并授权给组 执行下面的 sql 语句创建 role、group等: create role admin_role; GRANT ALL ON SERVER server1 TO ROLE

sentry的搭建和使用

匿名 (未验证) 提交于 2019-12-02 23:48:02
Sentry是一个开源应用程序监控平台,可帮助您实时识别问题。支持 web 前后端、移动应用以及游戏,支持 Python、OC、Java、Go、Node、Django、RoR 等主流编程语言和框架 ,还提供了 GitHub、Slack、Trello 等常见开发工具的集成。 Sentry 服务支持多用户、多团队、多应用管理,每个应用都对应一个 PROJECT_ID,以及用于身份认证的 PUBLIC_KEY 和 SECRET_KEY。由此组成一个这样的 DSN: {PROTOCOL}://{PUBLIC_KEY}:{SECRET_KEY}@{HOST}/{PATH}{PROJECT_ID} Sentry搭建有两种方式: 1.通过Python安装 2.通过Docker容器安装 这里我们采用Docker安装(Docker的安装教程较简单,在这里就不重复造轮子) 搭建步骤 7月份的时候作者更新了一版,将安装的流程写成了一个shell脚本(./install.sh) 所以要开始使用所有默认设置,只需拉取 onpremise ( https://github.com/getsentry/onpremise )并运行 ./install.sh 即可 。 可能需要对包含的 docker-compose.yml 文件 进行修改以 满足您的需求或环境(例如添加GitHub凭据)。 如果要执行这些操作

centos7搭建安装sentry

匿名 (未验证) 提交于 2019-12-02 21:53:52
Sentry Django Python python Node.js php , ruby C# , java iOS Android Web Sentry 服务端进行聚合统计、展示和报警。    sentry官方推荐docker方式安装,使用到了docker-compose。docker至少是1.10.3以上的版本。为此需要使用centos7。   Docker在2016年很早的时候就明确了将会在企业级方面重点跟进。而在短短的一年时间之内推出的1.12和1.13的版本在功能上确实是很大的进步。而在2017年的3月1号之后,Docker的版本命名开始发生变化,同时将CE版本和EE版本进行分开了,EE是企业版,CE是社区版,如果直接使用。 yum install -y docker-engine 或者 yum install -y docker 安装的都是老版本docker 现在在网上看到的大部分教程都还是使用旧版本,本次我们采用的是安装Docker CE版: 1.卸载旧版本Docker 2.安装依赖包 install 3.添加docker yum 源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 4.安装Docker yum -y install

前端异常日志监控 - 使用Sentry

匿名 (未验证) 提交于 2019-12-02 21:53:52
现在的前端项目越来越复杂,在不同的客户端会产生各种在开发人员机器上不会出现的问题。当用户报告一个问题给开发人员的时候,开发人员无法直接定位问题。在此前,听过一次鹅厂的前端人员,他们对QQ里面的网页监控的一个讲座,深有感触。但是鹅厂是自己开发了一系统,从开发到运维到错误分析,是一整套的体系。对于我们的项目,我们不可能选择自己开发,在网上找到一个开源的产品 [ Sentry ],基本体现了鹅厂的那套思路。 Sentry 官网 以下是官网首页关于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产品,直接开始接入sentry, 非常简单。 sentry本身是有云服务的,可以让开发者快速体验,接入。云服务如果长期使用,是需要收费的,如果是体验就注册体验下即可,如果要项目用,可以自己搭建一个sentry 服务,参考 搭建自己的

前端异常监控

冷暖自知 提交于 2019-12-01 20:34:09
sentry 静态资源加载异常 静态资源加载失败,可以通过window的error事件进行捕获。核心代码 // 全局监控资源加载错误 window.addEventListener( 'error', (event) => { // 过滤 js error const target = event.target || event.srcElement; const isElementTarget = target instanceof HTMLScriptElement || target instanceof HTMLLinkElement || target instanceof HTMLImageElement; if (!isElementTarget) { return false; } // 上报资源地址 const url = (target as HTMLScriptElement | HTMLImageElement).src || (target as HTMLLinkElement).href; this.log({ error: new Error(`ResourceLoadError: ${url}`), type: 'resource load' }); }, true ); 接口异常(后端和 native 的接口) 可以通过在封装的 http 模块中

AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'

佐手、 提交于 2019-12-01 15:36:45
I keep getting the below errors in my sentry exceptions AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module' And the trace only points to code withing the django code base without pointing to any place in my application. My logs are clean too. What could be a possible reason for this? raise Resolver404({'path' : path}) @property def urlconf_module(self): try: return self._urlconf_module except AttributeError: self._urlconf_module = import_module(self.urlconf_name) return self._urlconf_module @property 'self' <RegexURLResolver urls (None:None) ^/> Otherwise on the

AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module'

北慕城南 提交于 2019-12-01 14:29:08
问题 I keep getting the below errors in my sentry exceptions AttributeError: 'RegexURLResolver' object has no attribute '_urlconf_module' And the trace only points to code withing the django code base without pointing to any place in my application. My logs are clean too. What could be a possible reason for this? raise Resolver404({'path' : path}) @property def urlconf_module(self): try: return self._urlconf_module except AttributeError: self._urlconf_module = import_module(self.urlconf_name)