当前位置:首页 >> 内饰

一文搞懂SAE日志采集体系结构

来源:内饰   2024年01月15日 12:16

ecar。

然后将零售商可用的,必须野外的文档或者逆时针,用 volume 的范例,给的业务 Container 和 vector Sidecar 构建

vector 都会将野外到的副本原始数据定时发送 Kafka。vector 本身有比起丰富的给定特设,可以特设野外原始JPEG,原始数据发送每条,野外指标等等。

Kafka 野外算是对 SLS 野外的一种不足之一处完善。也就是说制造生态系统下,有些零售商对行政权的控制比较严格,不太可能只有 SAE 的行政权,却没 SLS 的行政权,因此必须把副本野外到 Kafka 花钱早先的拍照,或者本身有所需对副本花钱二次一处理事件精制等桥段,也可以选择 Kafka 副本野外计划。

下面是一份框架的 vector.toml 可用:

data_dir = "/etc/vector"

[sinks.sae_logs_to_kafka]type = "kafka"bootstrap_servers = "kafka_endpoint"encoding.codec = "json"encoding.except_fields = ["source_type","timestamp"]inputs = ["add_tags_0"]topic = "{{ topic }}"

[sources.sae_logs_0]type = "file"read_from = "end"max_line_bytes = 1048576max_read_bytes = 1048576multiline.start_pattern = '_[_s]'multiline.mode = "continue_through"multiline.condition_pattern = '(?m)_[s|W].*$|(?m)_(Caused|ja|org|com|net).+$|(?m)_}.*$'multiline.timeout_ms = 1000include = ["/sae-stdlog/kafka-select/0.log"]

[transforms.add_tags_0]type = "remap"inputs = ["sae_logs_0"]source = '.topic = "test1"'

[sources.internal_metrics]scrape_interval_secs = 15type = "internal_metrics_ext"[sources.internal_metrics.tags]host_key = "host"pid_key = "pid"

[transforms.internal_metrics_filter]type = "filter"inputs = [ "internal_metrics"]condition = '.tags.component_type == "file" || .tags.component_type == "kafka" || starts_with!(.name, "vector")'

[sinks.internal_metrics_to_prom]type = "prometheus_remote_write"inputs = [ "internal_metrics_filter"]endpoint = "prometheus_endpoint"

最重要的给定解析:

multiline.start_pattern 是当测定到相符这个埃尔米特的于在,都会拿来一条在此之后原始数据一处

multiline.condition_pattern 是测定到相符这个埃尔米特的于在,都会和上即刻花钱行重组,拿来一条一处理事件

sinks.internal_metrics_to_prom 可用了之后,都会将可用一些 vector 的野外元原始数据通报到 prometheus

下面是可用了 vector 野外的元原始数据到 Prometheus,在 Grafana 的监视系统梅氏一处可用了 vector 的元原始数据的一些野外监视系统示意图:

最佳实践

Cloud Native

在也就是说应用于中都,可以根据自身的的业务作法选择各不相同的副本野外作法。本身 logback 的副本野外作法,必须对文档个数和文档数量花钱一下限制,不然比起较难把 pod 的文件系统打满。以 JAVA 为例,下面这段可用,都会移去最主要 7 个文档,每个文档个数最主要 100M。

${user.home}/logs/test/test.log${user.home}/logs/test/test.%i.log17

100MB

UTF-8%d{yyyy-MM-dd HH:mm:ss}|%msg%n

这段 log4j 的可用,是一种比起罕见的副本亦然可用。

罕见的副本亦然作法有两种,一种是 create Mode,一种是 copytruncate Mode。而各不相同的副本野外模组,对两者的拥护相对都会共存一些区隔。

create Mode是一个大原副本文档,创建在此之后副本文档代替。log4j 应用于的就是这种Mode,详细步骤如下示意图示意图:

当副本的 event log 写入前都会判断究竟超越文档特设最主要容量,如果没超越,则完毕写入,如果超越了,则都会进入先决条件二

首先关闭现阶段 currentlyActiveFile 朝向的文档,之后对原文档完毕一个大,并新建一个文档,这个文档的人名和之前 currentlyActiveFile 朝向的人名赞同

把 currentlyActiveFile 朝向的文档转成先决条件二原于的文档

copytruncate Mode的思路是把正在输出的副本拷(copy)一份出来,再搬走(trucate)原有的副本。

目前另类模组的拥护相对如下:

也就是说个案展示出

Cloud Native

下面讲解一下零售商也就是说制造生态系统中都的一些真实桥段。

某零售商 A 通过副本亦然特设程序来的副本,并将副本野外到 SLS。并通过关键字可用之外求助,监视系统梅氏等。

首先通过 log4j 的可用,使副本文档最多保持良好 10 个,每个个数 200M,保持良好文件系统的监视系统,副本文档存留在/home/admin/logs 逆时针下。这里不完毕过多讲解了,可以最佳实践桥段讲解的可用。

随后通过 SAE 的 SLS 副本野外动态,把副本野外到 SLS 中都。

先前,通过程序来中都副本的一些关键字,或者一些其他法则,例如 200 完全码比重等完毕了求助可用。

通过 Nginx 的副本完毕监视系统梅氏的可用。

罕见情况

Cloud Native

副本重组讲解

很多时候,我们必须野外副本,并不是单纯的即刻即刻野外,而是必须把多行副本重组成即刻完毕野外,例如 JAVA 的间歇性副本等。这个时候就必须用到副本重组动态了。

在 SLS 中都,有多行Mode的野外Mode,这个Mode必须应用于者特设一个埃尔米特表达式,用来花钱多行重组。

vector 野外也有值得注意的给定,multiline.start_pattern 用做特设新行的埃尔米特,相符此埃尔米特都会被看来是一个新行。可以紧密结合 multiline.mode 给定一起应用于。更多给定请参看vectortwitter。

副本野外清空数据分析

无论是 SLS 野外和 vector 野外到 Kafka 为了确保野外副本不清空。都都会将野外的点位(CheckPoint)数据存留到本地,如果遇到服务于器意外关闭、进程覆灭等间歇性情况时,都会从上一次历史纪录的位置开始野外原始数据,尽量确保原始数据不都会清空。

但是这并没法确保副本一定不都会清空。在一些极端桥段下,是确实造成副本野外清空的,例如:

1. K8s pod 进程覆灭,liveness 不间断失败等间歇性导致 pod 扩建

2. 副本亦然飞行速度迅捷,例如1秒亦然1次。

3. 副本野外飞行速度长期以来没超越副本转化成飞行速度。

针对桥段 2,3,必须去检验自身的插件来,究竟打印了过多可避免的副本,或者副本亦然特设究竟间歇性。因为正常情况下,这些情况不应该再次出现。针对桥段 1,如果对副本敦促比较严格,在 pod 扩建后也没法清空的话,可以将可用的 NAS 作为副本存留逆时针,这样即使在 pod 扩建后,副本也不都会清空。

说明了

Cloud Native

本文特别强调讲解了 SAE 给予了多种副本野外计划,以及之外的的系统,桥段应用于优点。说明了起来三点:

1、SLS 野外适配性强,实用大多数桥段

2、NAS 野外任何桥段下都不都会清空,非常适合对副本敦促比较严格的桥段

3、Kafka 野外是对 SLS 野外的一种不足之一处,有对副本必须二次精制一处理事件,或者因为行政权等原因没应用于 SLS 的桥段,可以选择将副本野外到 Kafka 自己花钱收集一处理事件。

END

这里有最新开源电脑系统、软件系统升级、核心技术批发等概要

点这里 ↓↓↓ 记得 关注✔ 标星⭐ 哦~

反酸烧心能吃金奥康吗
思密达治拉肚子吗
治疗腹泻的药有哪些
睡觉打鼾吃什么药物管用
长期吃益生菌的危害
友情链接