AnyRobot作为一款强大采集分析于一体的日志分析系统,从AnyRobot最初日志接入,到日志的最终流向,这是诸多用户关心的,本文将重点讲解AnyRobot日志数据流。
在了解AnyRobot 日志数据流之前,我们有必要了解AnyRobot整体部署架构,用于更清晰了解AnyRobot 日志数据流。
一:AnyRobot部署架构
AnyRobot采用K8S集群架构,整体部署架构如下:

计算层
- Virtual Computing:虚拟计算单元,主要是做数据计算,基于云原生可横向拓展;
- Logstash:数据解析引擎,对接入数据进行清洗加工;
- Flink:流处理引擎,提供实时处理数据能力;
- SPL:分析引擎,提供数据聚合、关联等计算能力;
- Cache:用于数据缓存,加速数据处理能力。
存储层
- 索引仓库:提供数据的检索服务;
- 指标仓库:提供指标的聚合服务;
- 离线存储:提供海量原始数据的长期存储服务。
IAAS层
- 云中立:可灵活部署在各类云平台上,充分释放云计算能力;
- Kubernetes+Docker:基于微服务的云原生架构,提供计算和应用服务的微服务化和弹性扩展能力。
由此可见,AnyRobot日志数据流主要在计算层,那AnyRobot日志数据流到底是怎么样的,在此之前,我们需要了解日志数据流用到的几个概念。
二、基本概念
- Logstash-input:数据接收微服务,提供日志接受功能;
- Kafka:日志数据缓存微服务,提供日志数据缓存功能;
- Logstash-filter:数据清洗微服务,负责日志数据的清洗、解析;
- OpenSearch:日志存储微服务,提供日志数据存储,日志搜索、分析等;
- Alert:智能告警微服务,负责告警业务功能的管理,包括告警配置、展示等;
- Archive:日志归档微服务,负责日志数据归档;
- AnyRobot-search:搜索微服务,负责日志数据的统一搜索。
了解以上概念后,我们将重点讲解AnyRobot日志数据流。
三、AnyRobot日志数据流
AnyRobot 开放相应端口后,日志数据流首先从Logstash-input进入,然后在Kafka进行缓存,缓存以后进入到Logstash-filter进行日志解析,日志解析完以后最终存储在OpenSearch里,当然也可以在OpenSearch提取需要的日志,进行相关的日志告警,告警相关信息可以通过多种协议发送到第三方告警中心,同时OpenSearch存储的日志数据,也可以共享给第三方平台,进行相关日志分析和日志提取。
同时Logstash-filter解析后的数据,也可以直接写入到Kafka,然后把解析后的日志,通过Flink共享给第三方事件中心。
但如果日志解析失败了怎么办呢,或者想再次重解析怎么办呢,可以把OpenSearch存储日志数据再次回传到Kafka,然后进行日志重解析,当然Kafka缓存的日志数据,既可以归档到第三方廉价的存储上(非解析后的日志数据),比如NAS,也可以共享给第三方平台进行数据消费(非解析后的日志数据),总体流程图如下所示:
从以上可以得知,通过上述日志数据流,AnyRobot可以轻松满足客户对日志的多种需求,从而实现日志数据价值的充分挖掘。