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服务器存储起来了 ,简单方便,查日志省事。

原文地址:https://www.cnblogs.com/wangnengwu/p/13920973.html