ELK+MQ+logback实现分布式日志收集
1前言
随着集群的机器越来越多,在测试或者生产环境中,我们排查日志显得尤为苦难,只能一台一台机器去查找,本文主要讲解ELK+rabbitmq实现分布式日志收集的方案
2介绍
ELK由Elasticsearch+Logstash+kibana三部分组成,一般日志收集MQ都习惯采用Kafka,我这边就用rabbitMQ
3原理
tomcat服务器中的日志发布投入到MQ消息队列中,logstash消费MQ消息队列中的数据,放到ES服务器中,ES存储最终的日志信息,kibana负责展示ES存储服务中数据信息
4问题
我们都知道可以用logstash监听每一个服务器的日志文件,然后把消息写入到Es服务器中,但是我们可以通过MQ只监听MQ消息队列即可收集,MQ担任的角色一个是因为这个,另外就是,我们日志都是通过log.error,log.debug来输出的,那么如何集成Logback和MQ整合是一个问题,先来看日志配置文件,配置好 MQ地址、port端口、virtual虚拟机exchangetype消息模式,exchangename交换机名称routingkey;
配置好这些信息就基本整合了,只要有log就会写入到MQ
接下来是logstash消费日志信息并写入到ES库中,需要在配置文件中,增加input,output的消息来源,消息输出,input就是MQ,output就是ES服务器
5kibana效果
搜索日志关键字,可以动态看到日志信息,这样不管哪个服务器的日志,都被我们ES服务器存储起来了 ,简单方便,查日志省事。
路漫漫其修远兮