全方位 Logtail 状态监控

  • 时间:
  • 浏览:0
  • 来源:uu快3登入_uu快3漏洞_是真的吗

Logtail tcp连接的意外崩溃重启有不可能 会引起数据丢失、数据重复(checkpoint)等哪此的问题图片,因此亲戚亲戚许多人也建议有条件就对此进行监控。

CPU

在 logtail_profile 中,有一一1个多 read_avg_delay,它会在 Logtail 每次读取文件时被更新,记录下当前已读取 offset 和文件大小之间的差距,即当前未读内容的大小,以此来表示 delay。因此,亲戚亲戚许多人还不都能能使用如下的查询的话来获取最近时间内各个文件的下发延迟:

CPU 的监控不都能能使用到 cpu 字段,它表示上报此条日志时 Logtail 最近一次的 CPU 占用情况报告(目前仅支持 Linux)。基于它亲戚亲戚许多人还不都能能实现如下的一系列监控需求:

基于 detail_metric 中的 send-net-bytes-ps 实现。

通过上述的介绍还不都能能发现,通过此功能获取的日志在本质上和用户日志没人 区别,因此,亲戚亲戚许多人还不都能能利用日志服务的查询分析功能从中挖掘亲戚亲戚许多人所不都能能的信息。

登录 Logtail 所在机器,查看 Logtail 安装目录(比如 /usr/local/ilogtail)下的 ilogtail.LOG 以及其轮转文件,以关键词 [error](大小写不敏感)进行搜索,不可能 发现重启时间点周围有如下日志即说明是资源超限引起的重启。

Logtail 的情况报告监控会使用到日志服务的一系列功能,包括服务日志、查询分析、告警、API 等,什么都有有在就让开使英语 英语 前,亲戚亲戚许多人先简单地概述一下哪此功能的作用。

实现上还不都能能借助机器组相关 API,基本思路如下:

作为日志服务的下发 agent,Logtail 目前已运行于上百万的机器,为万级别的应用提供服务,每天下发的数据已达到 PB 级别,哪此实战的打磨使得 Logtail 在稳定性和性能上都已非常出色,在机器、网络等环境不变的情况报告下,配置完成后基本不再不都能能进行任何运维。但对于一些业务,仍旧处于着对 Logtail 进行情况报告监控的需求,以应对随着时间变化所带来的不取舍因素。

以下将介绍如何使用服务日志中的两类主题日志进行重启情况报告的监控。

对于链路情况报告异常的排查,在一定程度等价于 Logtail 心跳异常的排查,还不都能能参考此文档进行排查。

在开通服务日志的就让,会同时创建一1个多名为 Logtail下发统计Logtail运行监控 的仪表盘,其中涵盖了一系列的预设图表,亲戚亲戚许多人还不都能能以它们为参考(包括所使用的查询的话、图表配置等),根据自身业务不都能能,进行相应的修改。

理想情况报告下,文件新增的数据应该在它被更新时就下发并发送到日志服务,但不可能 网络、CPU 资源限制等导致 分析,不可能 会总出 一定的延迟,但延迟不可能 超过一定阈值的话,则说明不可能 处于一些哪此的问题图片。因此,亲戚亲戚许多人不都能能对文件下发延迟进行监控。

如上图所示,Logtail 情况报告在大体上可分为1个层次,一般来说,不都能能在下层情况报告正常时,对上层情况报告的监控才会更有意义。这1个层次自底向上分别为:

当下发对应的文件很敏感时,亲戚亲戚许多人还不都能能为它建立单独监控,当发现任何的解析失败、发送失败以及过大的延迟时,进行告警。查询的话如下:

亲戚亲戚许多人还不都能能通过如下法律法律依据 查看一一1个多图表关联的查询的话:首先将鼠标悬停到目标图表底下,因此悬停在右上角总出 的省略号上,点击弹出菜单的查看分析详情即可跳转到对应的查询窗口,如下图所示。

日志服务的告警功能即可满足此需求。基于查询分析的话的结果,设置所需的告警表达式和触发间隔等参数后,即可实现对数据的持续监控,日志服务将在结果满足所设置的表达式时进行告警通知,支持短信、邮件、钉钉、WebHook 等通知法律法律依据 。

设置告警时可使用此表达式: pf > 0 || sf > 0 || r > 1024*1024

效果如下所示:

以下亲戚亲戚许多人简单地举一些使用哪此日志字段的例子。

通过上述的一些场景还不都能能发现,链路情况报告总出 哪此的问题图片的概率很低,因此一旦总出 哪此的问题图片,将导致 分析 Logtail 无法下发任何数据。因此,不可能 有条件的话,亲戚亲戚许多人建议亲戚亲戚许多人均对此情况报告进行监控。

以下是基于 CLI 的 Python 实现。

日志服务提供大规模日志实时查询与分析能力(LogSearch/Analytics,简称查询分析),该功能提供了简单的查询语法并复合上了符合 SQL92 标准的分析语法,因此,亲戚亲戚许多人还不都能能像操作关系数据库那样通过 SQL 来对数据进行查询分析。

注意: 上述代码的前提是监控的目标为 IP 类型的机器组,对于自定义标识类型的机器组,GetMachineGroup 无法获取到 IP 列表,从而无法判断 ListMachines 返回的 IP 列表是算不算删改。不过不可能 机器的 IP 不多再处于变化的话,还不都能能直接基于 ListMachines 返回的结果进行判断(即忽略代码中的 len(machineStatusList) != len(configMachineIPs))。

参考以上代码,根据不都能能配置合理的阈值(公有云上 Logtail 默认心跳周期为 400s 左右,可适当增大阈值至 1-3 分钟),因此定期执行即可实现对机器组情况报告的监控。对于定期执行的环境,还不都能能使用函数计算的定时触发进行构建。

数据丢失

就让提及的三类日志都拥有一一1个多 project 字段,亲戚亲戚许多人还不都能能利用它来筛选出所关注的 project,比如说一一1个多 Logtail 节点同时下发了多个 project 下的配置,不可能 一些 project 下的数据重要程度并删改都是有点儿高,则还不都能能使用 not project:xxx 就让的查询的话将它们过滤掉。类似于于地,一些日志提供了 logstore 字段,并能帮助亲戚亲戚许多人进一步地缩小关注范围。

在默认情况报告下,Logtail 采用的是 daemon/worker 的双tcp连接模式,daemon tcp连接逻辑简单,一般不多再总出 错误,什么都有有在 worker tcp连接挂掉就让,它并能重新拉起新的 worker tcp连接。因此,对 Logtail 自身情况报告的监控也就转化为对重启情况报告的监控,就让再根据额外的信息来分析重启导致 分析。

欢迎加入钉钉群进行讨论交流

为了分析重启导致 分析,还不都能能在告警触发后,回到 internal-diagnostic_log logstore 的查询控制台,将时间切换到告警对应的范围,执行对应的查询的话来定位引起告警的机器(根据原始日志中的 IP 信息),再具体分析相关的导致 分析。

至此,亲戚亲戚许多人完成了一一1个多通过 CLI 访问日志服务 API 来实现对链路情况报告监控的示例,通过简单地修改,即可实现监控特定机器以及多个机器组等需求。

以 SEND_QUOTA_EXCEED_ALARM 为例,它表示当前日志写入流量超出限制。对于正常业务来说,偶尔的流量突增不可能 会带来多量的此错误,因此还不都能能忽略,因此一旦短时间内此错误数量(alarm_count)超过了一定阈值,则说明当前不可能 处于一些的哪此的问题图片,比如:

监控下发错误的查询的话非常简单,如下:

类似于于地,memory 字段表示上报此条日志时 Logtail 最近一次的内存占用情况报告(MB 为单位)。

对于一些资源比较紧张的节点,亲戚亲戚许多人不里并能让 Logtail 占用不多的宿主机资源以避免影响到业务的正常运行,因此,亲戚亲戚许多人不都能能对哪此资源情况报告进行监控。

不可能 先前不可能 给出过删改操作步骤的示例,此处亲戚亲戚许多人就不再赘述,只给出用于设置报警的查询的话,如下:

在本章中,亲戚亲戚许多人将分别介绍1个层次中的一些常用情况报告监控,并提供为它们配置监控和告警所不都能能的代码、查询的话、操作步骤等,给你直接根据本章的内容来进行实际的操作。

以网络协议栈来做一一1个多不可能 不太恰当的呼告,就让所属的三层就像是应用层以下,而数据下发情况报告则是应用层。在前三层情况报告正常的情况报告下,数据下发情况报告涵盖 Logtail 根据用户配置去执行数据下发、数据解析、数据发送等过程中,所产生的统计、错误等信息。

数据延迟

对于此哪此的问题图片,不都能能根据引起超限的资源类型来区分对待:

前文在介绍 Logtail 情况报告层次时所提及的大累积情况报告由 Logtail 主动下发并上报(不涵盖用户数据),对于一些量比较大的情况报告,它会在发送前进行聚合。为了并能获取并操作哪此日志,亲戚亲戚许多人首先不都能能开通服务日志功能,具体的开通步骤还不都能能参考此文档。 在开通时,因此我不勾选操作日志,则此功能删改免费。

以下亲戚亲戚许多人简单地介绍几块比较重要以及常用的下发错误(不可能 导致 分析和避免法律法律依据 可参考文档),建议为它们均设置上相应的监控:

常用情况报告监控这种累积里,亲戚亲戚许多人给亲戚亲戚许多人介绍了各层情况报告中的一些常用场景,以及如何为它们编写查询的话和设置告警。一般来说,直接按照该累积进行设置就并能满足大累积的监控告警场景的需求,但亲戚亲戚许多人依旧还不都能能通过自行编写一些特殊的查询的话来满足业务所需。比如希望有一一1个多大盘来对业务中使用 Logtail 进行下发的文件情况报告进行直观地展示,没人 自定义一些查询的话、取舍所需的图表来构建一一1个多仪表盘更能满足所需。

logtail_status 是服务日志的一累积,它记录了 Logtail 的基本情况报告,每分钟会记录并上报一次。

不可能 一就让开使英语 英语 人太好他不知道如何设置的话,还不都能能先直接监控所有的错误,因此后续再根据不都能能进行调整(比如过滤掉一些可忽略的错误),如下:

文档日志下发错误类型记录了 Logtail 所上报的所有错误类型,其中与重启相关的错误有 LOGTAIL_CRASH_ALARM 和 LOGTAIL_CRASH_STACK_ALARM 一1个多。简单来说,因此我处于了 worker tcp连接异常退出,前者就会上报,不可能 是不可能 崩溃引起的退出且生成了 coredump,后者就会被上报。

事实上,服务日志还提供了不少的字段,前一累积中提及的查询的话并没人 删改的覆盖。通过阅读文档,利用哪此字段,并能更好地实现亲戚亲戚许多人的需求。

不可能 取舍资源超限并不异常引起不可能 已无更好的优化法律法律依据 ,则不都能能上调 Logtail 所使用的资源限制,还不都能能参考此文档。

在通过查询分析功能提取到所不都能能的数据后,亲戚亲戚许多人还不都能能对它们进行持续性地监控,当发现满足一些条件(比如超过或低于期望阈值、变化幅度过大等)时,通过短信、邮件、钉钉等渠道进行通知。

显然,此情况报告异常的情况报告下,Logtail 无法正常工作甚至无法访问日志服务,因此,通过服务日志不都能能实现对此情况报告的监控。对此,目前比较好的法律法律依据 是基于 Logtail 心跳实现,当心跳正常时,则链路情况报告一定正常。

logtail_profile 也是服务日志的一累积,它记录了 Logtail 的文件下发统计信息,每 10 分钟上报一次。基于它还不都能能实现一些对文件下发情况报告的细节监控,以下亲戚亲戚许多人简单地介绍一些常用场景。

开通时请注意所取舍的存储位置(project),日志服务会将 Logtail 相关的情况报告信息下发到名为 internal-diagnostic_log 的 logstore(开通时自动创建),其中涵盖了多种类型的日志。为了避免混淆,不类似于于型的日志具有不同的主题(__topic__ 字段)。在本文中,亲戚亲戚许多人仅关注其中的这种数据,它们的主题分别是 logtail_statuslogtail_profile 以及 logtail_alarm

数据解挥发性错

以下亲戚亲戚许多人将分别介绍如何利用 logtail_status 日志来实现对 CPU、内存、网络流量进行监控。出于篇幅,亲戚亲戚许多人将直接给出查询的话,不再赘述一些的步骤。

日志下发错误类型中的大累积错误都与数据下发情况报告相关,对错误情况报告的及时告警和避免有有利于亲戚亲戚许多人修复日志下发中潜在的错误。

以下亲戚亲戚许多人将分别介绍如何对各个层次的相关情况报告进行监控以及告警。

还不都能能看多,延迟最大的文件达到了 72M,为了进行监控,亲戚亲戚许多人还不都能能对如上的话进行一一1个多聚合,比如说监控延迟最大的文件,当它超过 1M 时即进行告警。查询的话如下:

链路情况报告是保障 Logtail 正常工作的基础,一般亲戚亲戚许多人会假设在首次配置成功后就不多再总出 哪此的问题图片。但事实上,人太好概率较低,但依旧有多种导致 分析不可能 导致 分析链路总出 哪此的问题图片,比如:

如下是 Logtail运行监控 仪表盘的截图。

在 logtail_alarm 日志中,有一一1个多 alarm_count 字段,它表示在时间窗口(即相邻两次上报之间)内该类型错误的数量,亲戚亲戚许多人还不都能能基于它进行一些监控。

在 Logtail 正常运行期间,它的 instance_id 将保持不变,因此,所有来自同一一1个多节点的日志应该具有相同的实例 ID,但不可能 处于了重启的话,一段时间内就会总出 一1个多以上的实例 ID。基于此思路,亲戚亲戚许多人还不都能能使用 hostname+ip 来标识机器(group by),因此统计机器在一段时间内不同的实例 ID 数量。删改地操作步骤如下:

目前引起内存超过 1G 的最常见情况报告是指定的目录中内容不多,导致 分析 Logtail 轮询占用不多内存。

除了 logtail_status 以外,亲戚亲戚许多人还还不都能能通过 logtail_alarm 来累积实现这种需求(不可能 资源超限场景不多再产生 alarm)。logtail_alarm 也是服务日志的一累积,它记录了 Logtail 上报的错误日志,每 400 秒记录并上报一次,400 秒内重复总出 的错误类型只记录错误总和,错误消息则随机取舍第第一根 。

除链路情况报告以外,Logtail 自身情况报告的正常也是保证数据下发正确的必要条件。此处的自身情况报告正常是指 Logtail 持续运行,未处于任何的意外退出以及重启等情况报告,哪此情况报告主要由以下几种场景引起(本节不讨论 Logtail 删改退出的情况报告,它属于链路情况报告的范畴):

本文将从多个层次对 Logtail 的情况报告进行分析,罗列各个层次所不都能能的一些常用监控场景,同时,亲戚亲戚许多人将介绍如何通过服务日志、查询分析、告警、API 等日志服务的功能,来实现对哪此场景的监控和告警。

除了检查以外,亲戚亲戚许多人还不都能能在发现失败机器时进行通知告警。对于这种需求,亲戚亲戚许多人不多再自行构建一套告警系统和通知渠道,可直接通过以下步骤复用日志服务的告警功能:

内存

在本文中,亲戚亲戚许多人首先按照分层的思想对 Logtail 情况报告进行了划分,并对各层的情况报告内容进行了分析和简要介绍。接着,亲戚亲戚许多人自底向上地介绍了各层中一些常用的情况报告监控场景,并给出了配置它们所不都能能的代码、查询的话以及操作的步骤,方便亲戚亲戚许多人还不都能能直接构建出所需的监控和告警。最后,亲戚亲戚许多人简单地说明了一下如何利用预设的仪表盘以及服务日志的一些字段来进行一些自定义的需求配置。

不可能 在 logtail_alarm 中发现了 LOGTAIL_CRASH_STACK_ALARM,则证明一定是代码欠缺导致 分析的崩溃。不可能 不都能能 LOGTAIL_CRASH_ALARM,除了则不都能能排查一下是算不算不算运维不可能 一些tcp连接误杀。

当控制台提供的功能无法满足需求时,亲戚亲戚许多人还还不都能能尝试通过自行调用 API 来实现。事实上,日志服务控制台的大累积功能也基于同一套 API 实现。

上一章所提及的资源超限一定程度上限制了 Logtail 的资源使用,因此资源超限不都能能持续地达到一定的时间(默认 10 分钟)才会触发重启,这期间 Logtail 会持续地占用资源(外部的资源控制无法删改保证其降低),有不可能 会影响到业务的正常运行。更糟糕的情况报告是在每个 10 分钟周期内,90% 的时间占用了不多资源,而 10% 的时间恢复正常,这种情况报告下,Logtail 将不多再超限重启,因此 90% 的时间内占用了不多资源,影响业务。

为了监控重启,亲戚亲戚许多人不都能能使用该日志提供的以下字段进行分析: