實時日志分析作為掌握業務情況、故障分析排查的一個重要手段,目前使用最多最成熟的莫過于ELK方案,整體方案也有各種架構組合,像(Rsyslog/filebeat/...)->Elastic->Kibana、(Rsyslog/filebeat/...)->Redis->Logstash->Elastic->Kibana、(Rsyslog/filebeat/...)->Kafka->Logstash->Elastic->Kibana等等,複雜點的有Spark的引用,再複雜點的引入Hadoop系列。每種方案适合不同的應用場景,沒有優劣之分,我目前用的是Rsyslog->kafka->(Logstash/Spark)->Elastic->Kibana和Rsyslog->Rsyslog中繼->Kafka->(Logstash/spark)->Elastic->Kibana方案,中間使用Spark對日志進行再次聚合。
從整體架構進行抽象總結,其實就是采集->清洗->索引->展現四個環節,再去考慮各環節中間緩存、隊列的使用,然後每個環節用不同的軟體工具來實作。下面介紹一下我目前方案叢集的搭建和配置。希望對同行有所幫助,在ELK探索過程中多謝遠川和馮超同學的奉獻交流,常用的一個架構圖如下: