系统运维的过程中,每一个细节都值得我们关注
下图为我们的基本日志处理架构
![f092adbe3dfe4f756745da5d72814fab.png](https://i-blog.csdnimg.cn/blog_migrate/ffa3e59bf1f1c4458ebb6ab116fd5f5c.jpeg)
所有日志由Rsyslog或者Filebeat收集,然后传输给Kafka,Logstash作为Consumer消费Kafka里边的数据,分别写入Elasticsearch和Hadoop,最后使用Kibana输出到web端供相关人员查看,或者是由Spark接手进入更深层次的分析
在以上整个架构中,核心的几个组件Kafka、Elasticsearch、Hadoop天生支持高可用,唯独Logstash是不支持的,用单个Logstash去处理日志,不仅存在处理瓶颈更重要的是在整个系统中存在单点的问题,如果Logstash宕机则将会导致整个集群的不可用,后果可想而知
如何解决Logstash的单点问题呢?我们可以借助Kafka的Consumer Group来实现