日志告警分析(loki 日志告警)

来源网友投稿 1047 2023-03-18

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。
本篇文章给大家谈谈日志告警分析,以及loki 日志告警对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享日志告警分析的知识,其中也会对loki 日志告警进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

关于 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 组件,那么需要对源码文件进行定制化修改。


‍‍

基于大数据审计的信息安全日志分析法

噪声数据随着经济和信息技术日志告警分析的不断发展日志告警分析,许多企业开始引入日志告警分析了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为故障设备,此时应及时做出响应。而传统数据难以通过周围设备的关联告警来定位该故障,大数据审计平台则是最好的解决方法。

大数据分析方法可以利用实体关联分析、地理空间分析和数据统计分析等技术来分析实体之间的关系,并利用相关的结构化和非结构化的信息来检测非法活动。对于集中存储起来的海量信息,可以让审计人员借助历史分析工具对日志进行深度挖掘、调查取证、证据保全。

如果Broken列为Y,检查oracle告警日志,分析job失败的原因。解决后运行:exec dbms_job.run(:job);

Broken
可以通过下面的语句 移除broken:
EXEC DBMS_JOB.BROKEN(JOB的ID,FALSE);
但是如果你的job一直都运行失败 那么仍会broken
askmaclean oracle

日志审计系统的基本原理

综合日志审计平台,通过集中采集信息系统中的系统安全事件、用户访问记录、系统运行日志、系统运行状态等各类信息,经过规范化、过滤、归并和告警分析等处理后,以统一格式的日志形式进行集中存储和管理,结合丰富的日志统计汇总及关联分析功能,实现对信息系统日志的全面审计。

通过日志审计系统,企业管理员随时了解整个IT系统的运行情况,及时发现系统异常事件;另一方面,通过事后分析和丰富的报表系统,管理员可以方便高效地对信息系统进行有针对性的安全审计。遇到特殊安全事件和系统故障,日志审计系统可以帮助管理员进行故障快速定位,并提供客观依据进行追查和恢复。[百度百科]

图:日志审计系统产品功能结构

日志审计系统的主要工作原理是,通过日志采集器,各种设备将日志推送到日志审计平台,然后日志审计平台通过日志解析,日志过滤,日志聚合等进行关联分析,从而进行告警,统计报表,也可以进行资产管理,日志检索等。

日志转发一般可以通过:Syslog转发,Kafka转发,http转发。

日志收集一般支持:Syslog、SNMP等日志协议。

一般日志审计系统采用旁路部署即可,只要到达全部设备网络可通即可。

支持单机部署和分布式部署。

如何写日志?日志级别如何选择?

实际开发中常常遇到很多开发人员不知道如何输出日志,在此总结了阿里的日志规范和项目中的一些经验总结,希望能帮助大家更好的书写日志。

应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J 中的API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。

对trace/debug/info 级别的日志输出,必须使用条件输出形式或者使用占位符的方式。
说明:logger.debug("Processing trade with id: " + id + " symbol: " + symbol);如果日志级别是warn,上述日志不会打印,但是会执行字符串拼接操作,如果symbol 是对象,会执行toString()方法,浪费了系统资源,执行了上述操作,最终日志却没有打印。

避免重复打印日志,浪费磁盘空间,务必在xml 中设置 additivity=false
异常信息应该包括两类信息:案发现场信息和异常堆栈信息。如果不处理,那么往上抛。

【推荐】可以使用warn 日志级别来记录用户输入参数错误的情况,避免用户投诉时,无所适从。注意日志输出的级别,error 级别只记录系统逻辑出错、异常等重要的错误信息。如非必要,请不要在此场景打出 error 级别。

【推荐】谨慎地记录日志。生产环境禁止输出 debug 日志;有选择地输出 info 日志;如果使用 warn 来记录刚上线时的业务行为信息,一定要注意日志输出量的问题,避免把服务器磁盘撑爆,并记得及时删除这些观察日志。

说明:大量地输出无效日志,不利于系统性能提升,也不利于快速定位错误点。记录日志时请

DEBUG级别的日志应该是能帮助开发人员分析定位bug所在的位置。

INFO级别的日志应该是能帮助测试人员判断这是否是一个真正的bug,而不是自己操作失误造成的。

WARN级别称之为“警告”,告警日志,可以选择忽略也可以选择重视。

ERROR级别称之为“错误”,这个含义就更明显了,就是系统出现了错误,需要处理。最为常见的就是捕获异常时所打印的日志,通常需要正确区分异常类型。

应用系统批量日志指批量流程中由应用记录的批量任务相关信息,可供事件处理系统采集分析。

批量日志中至少应包含但不限于如下内容:

批量日志应记录在系统的单独文件中。批量日志在每日/次批量开始时新建,不宜采用追加方式,以方便快速检索查询。批量日志文件命名格式原则上各应用系统应保持一致,应包含系统标识、执行日期、批次等唯一性信息,避免日志文件相互覆盖。

应用系统的批量日志信息应具有标准的结构,每条日志信息应使用结构化描述:

关于日志告警分析和loki 日志告警的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 日志告警分析的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于loki 日志告警、日志告警分析的信息别忘了在本站进行查找喔。
上一篇:网络告警处理原则包括什么(网络安全告警)
下一篇:智能运维aiops模型(智能运维场景)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~