采集流程图

APO 使用 ilogtail 作为日志采集组件并改造支持额外功能,在vector 中进行日志结构化处理。
APO 日志功能
统计日志数并生成日志数指标。出现错误日志时,计算日志错误指标
应用程序出现慢或者错误trace时,将这段时间内的日志收集并写入clickhouse中。使用 k8s 信息或 pid 信息关联故障链路和故障现场日志
1.APO日志界面中提供了为不同应用配置不同的日志解析规则,vector 根据解析规则将日志结构化,解析规则中提取的日志字段会单独成列加快查询
2.日志库支持全文检索和查看日志上下文
用户如果已经使用 logstash 或者 fluent 生态的日志采集组件,可直接与APO日志进行对接。但需要注意的是,使用对接日志采集组件可能会导致某些信息的缺失或功能无法使用。
APO 日志不可用功能
确保在 Kubernetes 环境中部署日志采集组件,同时日志需要填充以下标签信息,同时这些标签信息需要适当的重命名。重命名具体实现可以参考后续提供的 vector 配置示例。
当用户在 K8S环境中使用 Logstash 生态(如 filebeat, logstash)或 Fluent 生态(如 fluentd, fluent-bit),可参考如下示例接入 APO 日志。
1.设置 NODE_IP 和 NODE_NAME 环境变量

2.配置 Filebeat
日志采集组件如果和 APO Server 不在同一集群,output.logstash 中的 hosts URL 设置为 Server 所在节点IP,Port 改为 30310

3.更新 apo-vector 的 ConfigMap

1.设置 NODE_IP 和 NODE_NAME 环境变量

2.配置 Fluent Bit 的解析、 输入、过滤器和输出配置。日志采集组件如果和 APO Server 不在同一集群,OUTPUT 中的 Host 设置为 Server 所在节点IP,Port 改为 30310

3.修改 apo-vector 的 ConfigMap 以匹配 Fluent Bit 输出格式

配置修改后,如果 APO 日志界面仍未出现日志,需要进行排查
需要通过vector日志查看日志事件格式是否正确
vector 配置中添加调试日志信息配置。观察vector日志中事件,通常正确的日志信息包含如下信息。

如果发现信息缺失,请参考填充 K8S 相关信息确保所有信息填充。
需要排查一下对接采集组件是否可以正常写入vector
请查看filebeat,fluent-bit等采集组件等日志信息
APO介绍:
国内开源首个 OpenTelemetry 结合 eBPF 的向导式可观测性产品
apo.kindlingx.com
https://github.com/CloudDetail/apo
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删