本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈告警日志分析的思路包括,以及告警规则模板配置对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享告警日志分析的思路包括的知识,其中也会对告警规则模板配置进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
关于 CIsco 告警日志分析
很明显是生成树在搞怪嘛...
一个高速交换网络是否稳定取决于生成树
告警日志分析的思路包括的变化.
本来fa0/1属于vlan190.但是有一个vlan540接入
告警日志分析的思路包括了.交换机的生成树认为网络出现变化.就立即阻塞了fa0/1.并且提示
告警日志分析的思路包括你vlan540不是本来就有的VLAN.
oracle数据库的警告日志如何查看
测试环境中出现了一个异常的告警现象:一条告警通过 Thanos Ruler 的 HTTP 接口观察到持续处于 active 状态,但是从 AlertManager 这边看这条告警为已解决状态。按照 DMP 平台的设计,告警已解决指的是告警上设置的结束时间已经过了当前时间。一条发送至 AlertManager 的告警为已解决状态有三种可能:1. 手动解决了告警2. 告警只产生了一次,第二次计算告警规则时会发送一个已解决的告警3. AlertManager 接收到的告警会带着一个自动解决时间,如果还没到达自动解决时间,则将该时间重置为 24h 后首先,因为了解到测试环境没有手动解决过异常告警,排除第一条;其次,由于该告警持续处于 active 状态,所以不会是因为告警只产生了一次而接收到已解决状态的告警,排除第二条;最后,告警的告警的产生时间与自动解决时间相差不是 24h,排除第三条。那问题出在什么地方呢?
分析
下面我们开始分析这个问题。综合第一节的描述,初步的猜想是告警在到达 AlertManager 前的某些阶段的处理过程太长,导致告警到达 AlertManager 后就已经过了自动解决时间。我们从分析平台里一条告警的流转过程入手,找出告警在哪个处理阶段耗时过长。首先,一条告警的产生需要两方面的配合:
metric 数据
告警规则
将 metric 数据输入到告警规则进行计算,如果符合条件则产生告警。DMP 平台集成了 Thanos 的相关组件,数据的提供和计算则会分开,数据还是由 Prometheus Server 提供,而告警规则的计算则交由 Thanos Rule(下文简称 Ruler)处理。下图是 Ruler 组件在集群中所处的位置:
看来,想要弄清楚现告警的产生到 AlertManager 之间的过程,需要先弄清除 Ruler 的大致机制。官方文档对 Ruler 的介绍是:You can think of Rule as a simplified Prometheus that does not require a sidecar and does not scrape and do PromQL evaluation (no QueryAPI)。
不难推测,Ruler 应该是在 Prometheus 上封装了一层,并提供一些额外的功能。通过翻阅资料大致了解,Ruler 使用 Prometheus 提供的库计算告警规则,并提供一些额外的功能。下面是 Ruler 中告警流转过程:
请点击输入图片描述
请点击输入图片描述
首先,图中每个告警规则 Rule 都有一个 active queue(下面简称本地队列),用来保存一个告警规则下的活跃告警。
其次,从本地队列中取出告警,发送至 AlertManager 前,会被放入 Thanos Rule Queue(下面简称缓冲队列),该缓冲队列有两个属性:
capacity(默认值为 10000):控制缓冲队列的大小,
maxBatchSize(默认值为 100):控制单次发送到 AlertManager 的最大告警数
了解了上述过程,再通过翻阅 Ruler 源码发现,一条告警在放入缓冲队列前,会为其设置一个默认的自动解决时间(当前时间 + 3m),这里是影响告警自动解决的开始时间,在这以后,有两个阶段可能影响告警的处理:1. 缓冲队列阶段2. 出缓冲队列到 AlertManager 阶段(网络延迟影响)由于测试环境是局域网环境,并且也没在环境上发现网络相关的问题,我们初步排除第二个阶段的影响,下面我们将注意力放在缓冲队列上。通过相关源码发现,告警在缓冲队列中的处理过程大致如下:如果本地队列中存在一条告警,其上次发送之间距离现在超过了 1m(默认值,可修改),则将该告警放入缓冲队列,并从缓冲队列中推送最多 maxBatchSize 个告警发送至 AlertManager。反之,如果所有本地队列中的告警,在最近 1m 内都有发送过,那么就不会推送缓冲队列中的告警。也就是说,如果在一段时间内,产生了大量重复的告警,缓冲队列的推送频率会下降。队列的生产方太多,消费方太少,该队列中的告警就会产生堆积的现象。因此我们不难猜测,问题原因很可能是是缓冲队列推送频率变低的情况下,单次推送的告警数量太少,导致缓冲队列堆积。下面我们通过两个方面验证上述猜想:首先通过日志可以得到队列在大约 20000s 内推送了大约 2000 次,即平均 10s 推送一次。结合缓冲队列的具体属性,一条存在于队列中的告警大约需要 (capacity/maxBatchSize)*10s = 16m,AlertManager 在接收到告警后早已超过了默认的自动解决时间(3m)。其次,Ruler 提供了 3 个 metric 的值来监控缓冲队列的运行情况:
thanos_alert_queue_alerts_dropped_total
thanos_alert_queue_alerts_pushed_total
thanos_alert_queue_alerts_popped_total
通过观察 thanos_alert_queue_alerts_dropped_total 的值,看到存在告警丢失的总数,也能佐证了缓冲队列在某些时刻存在已满的情况。
解决通过以上的分析,我们基本确定了问题的根源:Ruler 组件内置的缓冲队列堆积造成了告警发送的延迟。针对这个问题,我们选择调整队列的 maxBatchSize 值。下面介绍一下这个值如何设置的思路。由于每计算一次告警规则就会尝试推送一次缓冲队列,我们通过估计一个告警数量的最大值,得到 maxBatchSize 可以设置的最小值。假设你的业务系统需要监控的实体数量分别为 x1、x2、x3、...、xn,实体上的告警规则数量分别有 y1、y2、y3、...、yn,那么一次能产生的告警数量最多是(x1 * y2 + x2 * y2 + x3 * y3 + ... + xn * yn),最多推送(y1 + y2 + y3 + ... + yn)次,所以要使缓冲队列不堆积,maxBatchSize 应该满足:maxBatchSize = (x1 * y2 + x2 * y2 + x3 * y3 + ... + xn * yn) / (y1 + y2 + y3 + ... + yn),假设 x = max(x1,x2, ...,xn), 将不等式右边适当放大后为 x,即 maxBatchSize 的最小值为 x。也就是说,可以将 maxBatchSize 设置为系统中数量最大的那一类监控实体,对于 DMP 平台,一般来说是 MySQL 实例。
注意事项
上面的计算过程只是提供一个参考思路,如果最终计算出该值过大,很有可能对 AlertManager 造成压力,因而失去缓冲队列的作用,所以还是需要结合实际情况,具体分析。因为 DMP 将 Ruler 集成到了自己的组件中,所以可以比较方便地对这个值进行修改。如果是依照官方文档的介绍使用的 Ruler 组件,那么需要对源码文件进行定制化修改。
日志实体类信息包括哪些内容?
日志实体类信息包括哪些内容?组件选择
选择组件,我们这边主要是从以下几个方面进行考量的:
组件对应的开源生态完整、活跃度高
对应的技术栈是我们所熟悉的,我们这边语言技术栈主要是Java、Go,如果组件语言是C、Ruby,应该就被排除了。
运维成本
易部署、性能好
1、Agent
一提到日志收集方案,大家第一个想到的肯定是ELK(Elasticsearch、Logstash、Kibana ),但Logstash依赖于JVM不管是性能还是简洁性,都不是日志收集agent的首选。
个人感觉一个好的agent应该是资源占用少,性能好,不依赖别的组件,可以独立部署。而Logstash明显不符合这几点要求,也许正是基于这些考虑elastic推出了Filebeat。
2、Collector、MQ
elasticsearch集群在部署的时候,一般都是提前估计好容量、机器、shard等信息,因为elasticsearch集群运行后,再水平拓展,比较麻烦,而我们这边由于业务及成本限制无法很好的预估容量,所以就结合公司实际要求:使用日志服务的业务方自带机器,也就是业务方会有独立的elasticsearch集群。
每个业务方都使用自己的elasticsearch集群,所以集群压力不会很大,从而Collector、MQ这两个组件对于我们的作用也就很小了。
3、ETL
因为Elasticsearch Ingest Node完全可以满足我们的解析需求,所以就没有必要再引入Logstash等相关组件了。
到这里,基本可以看出我们的架构如下:

架构合适的,就是最好的。
三、业务需求
我们这边收集日志应对的场景主要是:文本日志、docker日志、k8s日志,恰恰这些EFK全家桶都支持。
我们希望日志收集产品可以满足以下几个需求:
按照项目、应用、实例维度检索日志并支持搜索关键字高亮(因为大家检索日志的时候,肯定是检索某个应用、某个实例的日志)
支持检索出某条想要的日志后,可以查看上下文(查看该日志所在日志文件的前后多少条)
支持日志下载(目前支持两种场景:搜索结果下载、上下文下载;支持两种方式:在线下载、离线下载)
支持Elasticsearch Query String查询
支持自动化批量部署、卸载Filebeat,部署、卸载过程可视化
单实例支持多elasticsearch集群
支持文本日志、docker日志、k8s日志并能与将日志与其业务意义对应上。(即不管是哪种日志形式、来源,最终都需要与业务意义上的项目、应用、实例对应起来,因为对于日志的使用者来说,查询日志的出发点肯定是查询某个项目、某个应用(可以不选)、某个实例(可以不选)、某段时间的日志。)
四、具体实现
基于需求及EFK套件,梳理我们场景中特有的东西:
docker日志的场景比较单一,都是通过之前一个产品A发布部署的,其docker命名规则比较统一,可以通过截取docker.container.name来获取应用名字;同时在部署的时候,可以知道部署目标机器的ip,这样就可以通过应用+ip来作为实例名称。
k8s场景也比较统一,都是通过之前一个产品B发布部署的,其pod命名规则比较统一,可以通过截取kubernetes.pod.name来获取应用名字(但需要通过namespaces关联到tenant,再通过tenant与项目一一对应);k8s中的pod.name就是唯一的,以此来作为实例名称即可。
文本日志:因为文本日志主要的场景是已经裸机部署的应用,这种场景下,不存在应用自动迁移的情况,所以文本日志的应用名称、实例名称可以在部署的时候打上标签即可。
具体规则及解析见下图(实例部分处理暂未标注):

其实,我们不太推荐写日志到文本文件中,使用标准输出就好。
到这里可以发现我们选择Filebeat来作为日志的收集端,Elasticsearch来存储日志并提供检索能力。
那么,日志的清洗在哪里做呢?
日志的清洗一般有两种方式:
先把日志收集到kafka,再通过Logstash消费kafka的数据,来清洗数据
直接通过Elasticsearch的[Ingest Node]来清洗数据,因为Ingest Node也支持Grok表达式
对于,我们的场景而言,我们需要清洗数据的要求比较简单,主要是应用、实例名称的截取还有文本日志中日志时间的处理(@timestamp重置,时区处理),所以我们选择了方案2。
其实,选择方案二还有个原因就是:系统在满足需求的同时,尽量保持简单,减少依赖的组件。
在我们的方案中,并没有提供Kibana 的界面直接给用户用,而是我们自己根据公司业务独立开发的。
前端界面为什么不采用Kibana,而需要自己开发?
1、kibana对于业务开发人员有一定的学习成本
2、kibana界面没有很好的将日志内容与业务意义关联起来(界面选择总比一次次的输入要好,这也是我们将日志的项目、应用、实例等业务信息解析出来的原因)
3、log-search支持Query String,因此对于熟悉kibana的开发人员来说,在我们自己开发的前端界面检索效果是一样的。
log-search提供的功能可以参见github:log-search
https://github.com/jiankunking/log-search
如果日志需要清洗的比较多,可以采用方案1,或者先不清洗,先把数据落到Elasticsearch,然后在查询的时候,进行处理。比如在我们的场景中,可以先把日志落到Elasticsearch中,然后在需要检索应用名称的时候,通过代码来处理并获取app名字。
五、监控、告警
其实基于日志可以做很多事情,比如:
基于日志做监控(Google Dapper)
基于日志做告警
基于日志做Machine Learning
具体思路,可以参见下图:

前提:能要求使用方,按照某种规则打印日志。
监控发展:监控基本就是先打通链路trace,然后再在上报信息或者日志信息中,加强业务方面标识,即给监控添加业务维度方面的视角。
六、其它
1、DaemonSet
以DaemonSet方式部署Filebeat来收集日志,其实收集也是宿主机/var/lib/docker/containers目录下的日志。
Running Filebeat on Kubernetes
2、Sidecar
一个POD中运行一个sidecar的日志agent容器,用于采集该POD主容器产生的日志。
莫名想起了istio。
Filebeat可以以sidecar模式来进行容器日志的收集,也就是filebeat和具体的服务容器部署在同一个pod内,指定收集日志的路径或文件,即可将日志发送到指定位置或Elasticsearch这类的搜索引擎。
每个pod内部署filebeat的模式,好处是和具体的应用服务低耦合,可扩展性强,不过需要在yaml进行额外配置。
3、业界案例分享
InfoQ运维大会日志处理专题演讲干货合集
曹林华-沪江网日志平台化之路
黎吾平-日志分析场景下的搜索引擎改进
林冰玉-QA 与Ops通力打造反脆弱的软件系统
周辉-新思路打造移动端个案综合日志分析系统
个人微信公众号:

作者:jiankunking 出处:http://blog.csdn.net/jiankunking
展开全文
APM:ELK 与 Prometheus
同为监控应用的两个平台,Prometheus和ELK的对比: ELK和Prometheus的对比 Prometheus ELK 轻量、部署相对简单 较重,组件较多,部署起来较麻烦 使用灵活,需要使用者会灵活运用 上手较为简单 适用于短期使用,比如SIT测试 适用于长久稳定地运行 ...
APP打开
Linux下常见的日志文件名
Linux常见的日志文件名: /var/log/cron 工作调度 /var/log/dmesg 内核检测过程中产生的信息 /var/log/lastlog 检测所有账号登陆信息 /var/log/maillog或/var/log/mail/* 邮件 /var/log/messages 记录系统发生的所有错误信息 /var/log/secure 涉及账号密码信息 /var/log/w...
APP打开
评论(23)
写评论

码工邢美玲码龄4年

哇啊1年前

刘佳欢--hannah码龄5年

谢谢分享1年前
衣舞晨风码龄10年
回复刘佳欢--hannah:愿能对你有所帮助
1年前

xudc码龄10年

学习了1年前

mortredly码龄1年

很优秀啊1年前

LaLaLa_OvO码龄10年

我现在每次去生产环境下载tomcat里的log文件分析,感觉好麻烦Ծ‸Ծ,感谢博主提供的思路,虽然一下子没太懂,但是研究下应该可以理解的1年前

码哥Think—Coder码龄3年

厉害1年前

fightsyj码龄4年

优秀1年前

叄拾叄画生码龄2年

不错1年前

qq_45010093码龄1年

我要下载码1年前
衣舞晨风码龄10年
回复qq_45010093:???
1年前

码农凉快-Eric码龄3年

日志很重要,在下需努力!1年前
去APP查看全部评论
SpringBoot控制台彩色输出
#控制台彩色输出 spring: output: ansi: enabled: ALWAYS SpringBoot控制台彩色输出
APP打开
分布式系统中的日志落地经验总结
@分布式系统中的日志落地经验总结 在过去的2年多的时间里,随着在公司推进容器云,陆陆续续的和日志打了不少交道,在这里做一个总结: 为什么需要日志 日志如何接收与存储 日志如何收集 日志收集客户端分析 日志的标准化 日志报警 日志归档 其他问题 为什么需要日志 日志的作用我觉得有三点: 故障排错 数据分析 业务审计 1,关于故障排错,当线上发生异常,查看应用的错误日志、堆栈信息、代理层的访问...
APP打开
关于日志的那些事儿 - 樱木天亥 - CSDN博客
写这篇文章是源于耗子叔在左耳听风专栏的群里发布了命题作文「关于日志的那些事儿」,正好可以去查阅资料,学习了解一下日志方面的知识。 什么是日志 首先,什么是...
关于日志的那些事儿_xiemanR的专栏-CSDN博客
关于日志的那些事儿 日志的作用 1.审计 商业分析:比如从日志中提取用户行为(比如,一个点击事件流)并结合用户的其他详情(比如,最终购买行为)来生成报告或者推荐相关...
如何打一手好Log
如果项目上过线的话,那你一定知道Log是多么重要。 为什么说Log重要呢?因为上线项目不允许你调试,你只能通过Log来分析问题。这时打一手好Log的重要性绝不亚于写一手好代码。项目出问题时,你要能拿出Log证明自己负责的部分没有问题,如果是自己的问题,要从Log里快速找出错误原因。如果没有从Log里找出错误原因,那一定是一件很悲催的事情,特别是在bug不容易重现的情况下。那简直...
APP打开
关于日志那些事
关于日志那些事 对于现在的应用程序来说,日志的重要性是不言而喻的。很难想象没有任何日志记录功能的应用程序运行在生产环境中。日志所能提供的功能是多种多样的,包括记录程序运行时产生的错误信息、状态信息、调试信息和执行时间信息等。在生产环境中,日志是查找问题来源的重要依据。本文从日志的定义、作用、分类、级别等角度介绍日志。 什么是日志 日志是用来保存系统发生的事件信息和各种对象执行的操作信息的管理对象...
APP打开
关于日志的那些事儿 - weixin_34416754的博客 - CSDN博客
写这篇文章是源于耗子叔在左耳听风专栏的群里发布了命题作文「关于日志的那些事儿」,正好可以去查阅资料,学习了解一下日志方面的知识。 什么是日志 首先,什么是...
Filebeat 收集日志的那些事儿_360技术-CSDN博客
点击蓝字关注我们最近因为云原生日志收集的需要,我们打算使用Filebeat作为容器日志收集工具,并对其进行二次开发,因此笔者将谈谈 Filebeat 收集日志的那些事儿。本文不...
一起来学 SpringBoot 2.x | 第三篇:SpringBoot 日志配置
点击上方“芋道源码”,选择“置顶公众号”技术文章第一时间送达!源码精品专栏 精尽 Dubbo 原理与源码专栏( 已经完成 69+ 篇,预计总共 75+ 篇 )中文详细注释...
APP打开
写日志的那些事儿
2019独角兽企业重金招聘Python工程师标准 ...
APP打开
Filebeat 收集日志的那些事儿_weixin_48726650的博客-CSDN博客
Filebeat 收集日志的那些事儿 1前言 开源日志收集组件众多,之所以选择Filebeat,主要基于以下几点: 功能上能满足我们的需求:收集磁盘日志文件,发送到Kafka集群;支持多行...
Filebeat 收集日志的那些事儿_HULK一线技术杂谈-CSDN博客
女主宣言最近因为云原生日志收集的需要,我们打算使用Filebeat作为容器日志收集工具,并对其进行二次开发,因此笔者将谈谈 Filebeat 收集日志的那些事儿。本文不涉及过...
日志记录的作用和方法 java
程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态。好的日志记录方式可以提供我们足够多定位问题的依据。日志记录大家都会认为简单,但如何通过日志可以高效定位问题并不是简单的事情。这里列举下面三个方面的内容,辅以代码示例,总结如何写好日志,希望对他人有所启发和帮助: 怎样记日志可以方便Troubleshooting程序运行状态可以记哪些应该避免怎样的日志方
APP打开
JB的ARTS之旅-关于日志的那些事
前言 很多小伙伴看到标题,可能会有疑问,什么叫ARTS?,这里答疑一下: 这是来自于左耳朵耗子专栏的一个活动,详情请来到某乎了解; 而ARTS实际意义是: 1.Algorithm:每周至少做一个 leetcode 的算法题 2.Review:阅读并点评至少一篇英文技术文章 3.Tip:学习至少一个技术技巧 4.Share:分享一篇有观点和思考的技术文章 复制代码 因精力有限,暂时只能挑一个完成,希...
APP打开
运维的那些事儿 - 狂生小白的博客 - CSDN博客
十二、应用系统日志 这里边可分析的东西就多了, 不过...人工智能那些事儿0.目录那些有意思的事儿那些数学的...关于思维导图的那些事 阅读数 529 前言:经过米老...
写评论

23

9

82

分享
APP内打
基于大数据审计的信息安全日志分析法
噪声数据随着经济和信息技术的不断发展告警日志分析的思路包括,许多企业开始引入了ERP等系统告警日志分析的思路包括,这些系统使得企业的众多活动数据可以实时记录,形成了大量有关企业经营管理的数据仓库。从这些海量数据中获取有用的审计数据是目前计算机审计的一个应用。接下来告警日志分析的思路包括我为你带来基于大数据审计的信息安全日志分析法,希望对你有帮助。
大数据信息安全日志审计分析方法
1.海量数据采集。
大数据采集过程的主要特点和挑战是并发数高,因此采集数据量较大时,分析平台的接收性能也将面临较大挑战。大数据审计平台可采用大数据收集技术对各种类型的数据进行统一采集,使用一定的压缩及加密算法,在保证用户数据隐私性及完整性的前提下,可以进行带宽控制。
2.数据预处理。
在大数据环境下对采集到的海量数据进行有效分析,需要对各种数据进行分类,并按照一定的标准进行归一化,且对数据进行一些简单的清洗和预处理工作。对于海量数据的预处理,大数据审计平台采用新的技术架构,使用基于大数据集群的分布式计算框架,同时结合基于大数据集群的复杂事件处理流程作为实时规则分析引擎,从而能够高效并行地运行多种规则,并能够实时检测异常事件。
3.统计及分析。
按照数据分析的实时性,分为实时数据分析和离线数据分析。大数据平台在数据预处理时使用的分布式计算框架Storm就非常适合对海量数据进行实时的统计计算,并能够快速反馈统计结果。Storm框架利用严格且高效的事件处理流程保证运算时数据的准确性,并提供多种实时统计接口以使用。
4.数据挖掘。
数据挖掘是在没有明确假设的前提下去挖掘信息、发现知识,所以它所得到的信息具有未知、有效、实用三个特征。与传统统计及分析过程不同的是,大数据环境下的数据挖掘一般没有预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测的效果,并进一步实现一些高级别数据分析的需求。
大数据分析信息安全日志的解决方案
统一日志审计与安全大数据分析平台能够实时不间断地将用户网络中来自不同厂商的安全设备、网络设备、主机、操作系统、数据库系统、用户业务系统的日志和警报等信息汇集到管理中心,实现全网综合安全审计;同时借助大数据分析和挖掘技术,通过各种模型场景发现各种网络行为、用户异常访问和操作行为。
1.系统平台架构。
以国内某大数据安全分析系统为例,其架构包括大数据采集平台、未知威胁感知系统、分布式实时计算系统(Storm)、复杂事件处理引擎(Esper)、Hadoop平台、分布式文件系统(HDFS)、分布式列数据库(Hbase)、分布式并行计算框架(Map/Reduce、Spark)、数据仓库(Hive)、分布式全文搜索引擎(ElasticSearch)、科学计算系统(Euler)。这些技术能够解决用户对海量事件的采集、处理、分析、挖掘和存储的需求。
如图1所示,系统能够实时地对采集到的不同类型的信息进行归一化和实时关联分析,通过统一的控制台界面进行实时、可视化的呈现,协助安全管理人员迅速准确地识别安全事件,提高工作效率。
2.实现功能。
系统能够实现的功能包括告警日志分析的思路包括:审计范围覆盖网络环境中的全部网络设备、安全设备、服务器、数据库、中间件、应用系统,覆盖200多种设备和应用中的上万类日志,快速支持用户业务系统日志审计;系统收集企业和组织中的所有安全日志和告警信息,通过归一化和智能日志关联分析引擎,协助用户准确、快速地识别安全事故;通过系统的'安全事件并及时做出安全响应操作,为用户的网络环境安全提供保障;通过已经审计到的各种审计对象日志,重建一段时间内可疑的事件序列,分析路径,帮助安全分析人员快速发现源;整个Hadoop的体系结构主要通过分布式文件系统(HDFS)来实现对分布式存储的底层支持。
3.应用场景。
上述系统可解决传统日志审计无法实现的日志关联分析和智能定位功能。如在企业的网络系统中,大范围分布的网络设备、安全设备、服务器等实时产生的日志量非常大,要从其中提取想要的信息非常困难,而要从设备之间的关联来判断设备故障也将是一大难点。例如,某企业定位某设备与周围直连设备的日志消息相关联起来判断该设备是否存在异常或故障,如对于其中一台核心交换机SW1,与之直连的所有设备如果相继报接口down的日志,则可定位该设备SWl为故障设备,此时应及时做出响应。而传统数据难以通过周围设备的关联告警来定位该故障,大数据审计平台则是最好的解决方法。
大数据分析方法可以利用实体关联分析、地理空间分析和数据统计分析等技术来分析实体之间的关系,并利用相关的结构化和非结构化的信息来检测非法活动。对于集中存储起来的海量信息,可以让审计人员借助历史分析工具对日志进行深度挖掘、调查取证、证据保全。
接口告警
晚上收到服务接口电话告警,第一时间通过prometheus查看服务耗时却正常。这就奇怪了,为了确保告警程序没有问题,不是误报。登录服务器查看告警程序的日志,通过日志发现确实是接口调用频繁超时引起的告警。因为告警程序部署在阿里云,而服务部署在k8s。我们的告警逻辑是通过告警程序调用部署在k8s服务接口,如果接口超时超过一定的次数就告警。因为告警程序和服务部署在不同的机房,于是认为是网络抖动引起的,因为前几天就发送过k8s网络组建出现问题导致服务调用耗时突然变高。后面同事去向运维确定下是否k8s的nginx-ingress-controller是否出现问题,后面运维同事确认是因为k8s nginx-ingress-controller在新的扩容机器出问题了。一开始不太明白为什么nginx-ingress-controller出现问题会引起服务耗时很高,后面自己缕了下调用关系。因为我们还有邮件告警,邮件告警是监听nginx的error日志来告警,邮件内容告警的内容都是status 504,504错误表示nginx调用服务出问题了。那么接下来只需要找到服务方是谁就可以了。而我们的nginx又会调用k8s ingress controller的nginx,nginx-ingress-controller进而调用部署在k8s的服务,整个调用链路是这样的。
前端接口请求-lvs-阿里云nginx-nginx-ingress-controller-service
邮件告警内容是阿里云nginx报出来的,显示status504.
所以下一步需要排查k8s ingress controller和我们的服务本身有无问题。
通过监控指标,我们排查了服务本身正常,那么可以确定是nginx-ingress-controller出了问题,后面排查确实是一个nginx-ingress-controller的node节点出问题导致。
总结
排查问题要有思路,根据关键信息去排查问题事半功倍。比如这次邮件告警提示的status 504,顺着这个思路去排查很快可以定位问题。
关于告警日志分析的思路包括和告警规则模板配置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
告警日志分析的思路包括的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于告警规则模板配置、告警日志分析的思路包括的信息别忘了在本站进行查找喔。
暂时没有评论,来抢沙发吧~