【最佳实践】如何使用云监控+日志服务快速完成故障发现和故障定位

今天分享一篇开发小哥哥如何使用云监控和日志服务快速发现故障定位问题的经历。

事件起因

小哥哥正在Coding,突然收到云监控报警,说他的API调用RT过高,小哥哥的业务主要为线上服务提供数据查询,RT过高可能会导致大量页面数据空白,这还了得,赶紧查。

排查过程

收到报警后查看指标趋势,发现突然RT突然增高。

查看单台机器维度的指标,发现30.239这台机器RT延时非常大。

  • 具体机器的RT走势图:
  • 查看存储在日志服务的原始数据,查看发生问题时的原始日志,发生某一次请求的rt突然变的很大,之后的rt都变的很大。
  • 同时也收到了健康检查发出的30.239机器的业务java进程hang,端口telnet监控不通的报警。

于是去主机监控看这台机器到底出了什么问题。

  • cpu,load,内存都在波动,网络有明显变化,流量暴增,tcp连接数先增先减

  • 再看进程监控:发现机器上的主要的业务进程-java进程,指标变化异常,

登录服务器后,查看GC日志

发现在事发时,有大量的fullgc。导致进程hang住。出现以上一系列的现象

排查结果

故障结果

结合nginx日志和应用gc日志,再结合实际的业务场景,定位到在某一次大查询时,在内存hold住太多数据,导致内存爆掉,系统不断gc,进程hang住,进一步导致系统指标和进程指标的现象。

进一步发现和优化

通过jstat -gcutil pid1000查看,发现是perm区的fullgc非常多。通过jmap−permstatpid (要谨慎,不要线上做),发现google avaiator相关的类很多,想起使用了google的表达式引擎,看代码发现在compile的时候,没有加cache。

加上cache发布后,经过几天的观察,查询前端服务器的内存更加平稳,后台5xx的比例也更低。

我也想用小哥哥在用的监控!

  • 日志监控,零代码对日志服务数据分析处理和报警,最佳实践
  • 主机监控,秒级监控服务器指标波动,文档介绍
  • Dashboard,自定义构建业务大盘,文档介绍
时间: 2024-09-17 03:54:39

【最佳实践】如何使用云监控+日志服务快速完成故障发现和故障定位的相关文章

云应用安全开发最佳实践:保护云应用安全

云计算很有用,因为它为IT提供了一种新方法,利用共享资源来最大限度地提高生产力和削减开支.但新方法同时也会带来新威胁.我们应 该如何将这种环境的风险降到最低呢?云安全联盟和SAFECode共同合作制定了一套应用开发的最佳实践以满足云计算的独特安全需求.最终他们发布了<云应用安全开发最佳实践>,其中列出了在云环境中开发安全代码的方法.这份文件中指出:"为了让云计算发挥其真正的潜能,用户和供应商都需要重新考虑安全需求和相关标准."参与SAFECode研究的EMC公司产品安全高级

使用阿里云开放搜索服务快速搭建资源搜索网站

大家好,我又来了,答应云栖论坛一周一篇文章, 由于工作太忙已中断1个多月实在抱歉,这一次写点轻松有趣的东西-快速的做个资源搜索站 依稀记得十来年前,带宽还只有2M的时候,受各个论坛启发,做了可以搜索嘿嘿嘿资源的搜索站 一晃这么多年过去,嘿嘿嘿的东西依然喜欢,但世间却变化万千 资源种类已不仅仅是X片,高清电影.纪录片.无损音乐.美剧.大型软件等等,似乎更加吸引 资源呈现方式也百花齐放,从最早的BT文件.电驴地址,到现在的磁链地址.各种云盘等等 而传统的P2P下载方式也变得格格不入,因为硬盘容量已经

【阿里云网站日志分析实践】通过Log Service日志服务导入MaxCompute分析

免费开通大数据服务:https://www.aliyun.com/product/odps 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘.通过日志服务投递日志数据到MaxCompute具有如下优势: 使用非常简单.用户只需要完成2步配置即可以把日志服务Logstore的日志数据迁移到MaxCompute中. 避免重复收集工作.由于日志服务的日志收集过程已经完成不同机器上的日志集中化,无需重复在不

《AngularJS深度剖析与最佳实践》一2.9 服务

2.9 服务 如果你是一个后端程序员,那么对服务(Service)的概念一定不会陌生.在Angular中,服务的概念是一样的,差别只在于技术细节. 服务是对公共代码的抽象,比如,如果在多个控制器中都出现了相似的代码,那么把它们提取出来,封装成一个服务,你将更加遵循DRY原则(即:不要重复你自己),在可维护性等方面获得提升. 如同我们在第1章的tree服务中所看到的,由于服务剥离了和具体表现相关的部分,而聚焦于业务逻辑或交互逻辑,它更加容易被测试和复用. 但是,在工程实践中,我们引入服务的首要目的

Docker日志收集最佳实践

云栖TechDay31期,阿里云容器服务技术专家戒空给大家带来Docker日志收集最佳实践的演讲.本文主要从传统日志处理开始谈起,接下来着重分析Docker日志处理,包括stdout和文件日志,其中还有fluentd-pilot,接着分享了日志存储方案Elasticsearch.graylog2和SLS,最后对正确写日志给出了建议.   以下是精彩内容整理: 传统日志处理 说到日志,我们以前处理日志的方式如下: 日志写到本机磁盘上 通常仅用于排查线上问题,很少用于数据分析 需要时登录到机器上,用

Docker 日志的5个最佳实践

本文讲的是Docker 日志的5个最佳实践[编者的话]微服务和容器之间契合得很好,但日志记录却成了个问题.设置监控时必须要考虑到这个问题. [烧脑式Kubernetes实战训练营]本次培训理论结合实践,主要包括:Kubernetes架构和资源调度原理.Kubernetes DNS与服务发现.基于Kubernetes和Jenkins的持续部署方案 .Kubernetes网络部署实践.监控.日志.Kubernetes与云原生应用.在CentOS中部署Kubernetes集群.Kubernetes中的

简析十大云部署最佳实践

根据IT业贸易协会CompTIA的报告显示,如今,有80%的企业都声称在使用某种形式的云解决方案,这些方案既有可以按需启用的虚拟机,也有很容易购买.很容易使用的应用." 趋势科技客户解决方案部经理Laura Maio认为,目前有三大重要趋势在推动着云的使用和部署. 第一趋势是企业将公有云作为其内部环境的一种自然延伸. 第二趋势则是企业的非IT业务部门利用公有云可以更快捷地访问服务器和存储资源. 第三,企业的IT部门本身也有压力,需要构建安全的.功能类似公有云的私有云环境,以便从公有云提供商那里重

云监控--3分钟帮你实现日志关键字报警

我有一个小愿望,监控Apache的错误日志文件,一旦出现ERROR关键字就报警. 我有一个小愿望,监控Nginx日志,status>499的数量很多就报警. 我有一个小愿望,监控线上业务日志,出现"下单失败"就报警. 你是怎么实现愿望的?用Zabbix? ELK? 岂不是实现这个小愿望,要自己搭建和运维从采集.分析.存储到可视化.通知的全套服务,心累orz. 万能的阿里云,我该怎么办? Duang~!云监控的日志监控功能,鼠标轻轻点几下,立刻拥有完整的日志监控与报警服务,想想还有

容器服务中如何收集日志到阿里云日志服务

容器服务中目前提供了日志集成的功能,使用该功能,可以把容器中的日志(文件方式或标准输出方式)自动收集到阿里云的日志服务中.具体使用方式如下: 开启日志服务 确认已开通访问控制服务和阿里云日志服务(该步是为了确保容器服务有权限去完成在阿里云日志服务中创建project等操作) 点击确定,日志服务就开通成功了,可以登录到日志服务的控制台(https://sls.console.aliyun.com/#/) 查看有一个project自动帮你创建完成了,名称是acslog-project-集群id 接下