APO全量日志对接logstash和fluent日志采集生态
· 7 min read
APO 日志介绍
采集流程图
APO 使用 ilogtail 作为日志采集组件并改造支持额外功能, 在 vector 中进行日志结构化处理。
APO 日志功能
- 日志指标
统计日志数并生成日志数指标。出现错误日志时,计算日志错误指标
- 故障现场日志
应用程序出现慢或者错误trace时,将这段时间内的日志收集并写入clickhouse中。使用 k8s 信息或 pid 信息关联故障链路和故障现场日志
- 全量日志
1.APO日志界面中提供了为不同应用配置不同的日志解析规则,vector 根据解析规则将日志结构化,解析规则中提取的日志字段会单独成列加快查询
2.日志库支持全文检索和查看日志上下文
APO 日志中使用logstash或fluent
用户如果已经使用 logstash 或者 fluent 生态的日志采集组件,可直接与APO日志进行对接。但需要注意的是,使用对接日志采集组件可能会导致某些信息的缺失或功能无法使用。
APO 日志仅全量日志功能可用
APO 日志不可用功能
- 故障现场日志:APO 使用改造后 的 ilogtail 添加 K8S 信息或 PID 信息,使用 logstash 或 fluent 替换 ilogtail 会导致在 K8S 和虚机环境中均无法关联链路和日志信息,导致功能缺失
- 日志指标:APO 使用 ilogtail 统计日志指标,使用 logstash 或 fluent 替换 ilogtail 导致该功能缺失
logstash 或 fluent 需填充 K8S 相关信息
确保在 Kubernetes 环境中部署日志采集组件,同时日志需要填充以下标签信息,同时这些标签信息需要适当的重命名。重命名具体实现可以参考后续提供的 vector 配置示例。
- container.name -> 容器名
- container_id -> 容器ID
- k8s.namespace.name -> Kubernetes 命名空间
- k8s.pod.name -> Pod 名称
- host.ip -> 节点 IP
- host.name -> 节点名称
- source -> 文件路径
- content -> 日志内容
- timestamp -> 日志采集时间
APO 接入日志采集组件示例
当用户在 K8S环境中使用 Logstash 生态(如 filebeat, logstash)或 Fluent 生态(如 fluentd, fluent-bit),可参考如下示例接入 APO 日志。