腾讯云容器服务日志采集最佳实践 (3)

img

如何过滤掉不需要的内容 ?

有些不重要或不关心的日志可以选择将其过滤掉,降低成本。

如果使用 "JSON"、"分隔符" 或 "完全正则" 的抓取模式,日志内容会进行结构化处理,可以通过指定字段来对要保留的日志进行正则匹配:

img

对于 "单行文本" 和 "多行文本" 抓取模式,由于日志内容没有进行结构化处理,无法指定字段来过滤,通常直接使用正则来对要保留的完整日志内容进行模糊匹配:

img

需要注意的是,匹配内容一定记住是用正则而不是完整匹配,比如想只保留 a.test.com 域名的日志,匹配的表达式应该写 a\.test\.com 而不是 a.test.com。

日志时间戳如何自定义 ?

每条日志都需要有个时间戳,这个时间戳主要用于检索,在检索的时候可以选择时间范围。默认情况下,日志的时间戳由采集的时间决定,也可以进行自定义,选择某个字段作为时间戳,这样在某些情况下可能更精确些,比如在创建采集规则之前,服务已经运行了一段时间,如果不设置自定义时间格式,采集时会将之前的旧日志的时间戳设置为当前的时间,导致时间不准确。

如何进行自定义呢?由于 "单行文本" 和 "多行文本" 抓取模式不会对日志内容进行结构化处理,也就没有字段可以指定为时间戳,无法自定义时间格式解析。其它的抓取模式都可以支持,具体做法时关闭 "使用采集时间",然后选取要作为时间戳的字段名称,并配置时间格式。

假如使用日志的 time 字段作为时间戳,其中一条日志 time 的值为 2020-09-22 18:18:18,时间格式就可以设置为 %Y-%m-%d %H:%M:%S, 示例:

img

更多时间格式配置参考日志服务官方文档 配置时间格式。

需要注意的是,日志服务时间戳暂时只支持精确到秒,也就是如果业务日志的时间戳字段精确到了毫秒,将无法使用自定义时间戳,只能使用默认的采集时间作为时间戳,不过时间戳精确到毫秒后续将会得到支持。

如何查询日志 ?

日志采集规则配好了,采集器就会自动开始采集日志并上报到日志服务,然后就可以在 日志服务-检索分析 中查询日志了,支持 Lucene 语法,但前提是需要开启索引,有以下 3 类索引:

全文索引。用于模糊搜索,不用指定字段。

img

键值索引。索引结构化处理过的日志内容,可以指定日志字段进行检索。

img

元字段索引。上报日志时额外自动附加的一些字段,比如 pod 名称、namespace 等,方便检索时指定这些字段进行检索。

img

查询示例:

img

如何将日志投递到其它地方 ?

日志服务支持将日志投递到 COS 对象存储和 Ckafka (腾讯云托管的 Kafka),可以在日志主题里设置投递:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjdzy.html