简介
昨天进行了ELK日志环境的搭建,从网上看是说logstash有性能瓶颈,解决的方式就是加入消息队列或者使用logstash集群。所以今天在原有框架上增加了kafka作为消息队列。
安装
kafka:
从官网下载tar 包,解压即可
配置
kafka配置使用默认配置即可
启动的时候出现提示错误: 找不到或无法加载主类 的解决方案
在配置好kafka的server.properties文件后,cmd进入命令窗口输入命令:.\bin\windows\kafka-server-start.bat config\server.properties提示错误:错误: 找不到或无法加载主类 Files\Java\jdk1.7.0_80\lib;C:\Program 解决方式如下:在kafka安装目录中找到bin\windows目录中的kafka-run-class.bat找到142行为%CLASSPATH%加上双引号
修改前: set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
修改后: set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp "%CLASSPATH%" %KAFKA_OPTS% %*
修改昨天的logstash数据源配置
input { kafka { bootstrap_servers => "localhost:9092" topics => ["logs"] }} output { elasticsearch { hosts => ["localhost:9200"] index => "applog" } }
修改logback的配置,将logstash改为kafka
引入lagback-kafka依赖
com.github.danielwegener logback-kafka-appender 0.1.0
修改logback-spring.xml
true ${CONSOLE_LOG_PATTERN} utf8 %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n logs bootstrap.servers=localhost:9092 main.log main.%d{yyyy-MM-dd}.log 30 %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n DEBUG
启动
启动zookeper
进入kafka下的bin目录,执行命令
.\zookeeper-server-start.bat C:\work\kafka_2.11-1.1.0\config\zookeeper.properties
启动kafka server
执行命令
.\kafka-server-start.bat C:\work\kafka_2.11-1.1.0\config\server.properties
剩下部分与昨天相同 启动ElasticSearch,启动logstash,启动kibana
访问Controller,可以看到日志也写入了ElasticSearch