在本文中,將介紹使用 logstash + kafka + elasticsearch
實現(xiàn)微服務日志監(jiān)控與查詢。
服務配置
添加 maven 依賴:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>1.0.0</version>
</dependency>
添加 log4j2 配置:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<Kafka name="Kafka" topic="mcloud-log">
<PatternLayout pattern="%date %message"/>
<Property name="bootstrap.servers">localhost:9092</Property>
</Kafka>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
<AppenderRef ref="Kafka"/>
</Root>
<Logger name="org.apache.kafka" level="INFO" />
</Loggers>
</Configuration>
系統(tǒng)配置
Zookeeper-3.4.10 官網(wǎng)
添加配置
在 conf
目錄下創(chuàng)建配置文件 zoo.cfg
, 并在其中添加以下內(nèi)容:
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
啟動 ZooKeeper
windows:
bin/zkServer.bat start
Kafka_2.11-1.0.0 官網(wǎng)
修改日志存儲位置
config/server.properties
log.dirs=D:/kafka-logs
啟動 Kafka
windows:
bin/windows/kafka-server-start.bat config/server.properties
注:
如果在啟動的時候出現(xiàn)以下錯誤:
錯誤: 找不到或無法加載主類
需要手動修改 bin/windows/kafka-run-class.bat
,找到以下的代碼:
set COMMAND=%JAVA% %KAFKA_HEAP_OPTS% %KAFKA_JVM_PERFORMANCE_OPTS% %KAFKA_JMX_OPTS% %KAFKA_LOG4J_OPTS% -cp %CLASSPATH% %KAFKA_OPTS% %*
將其中的 %CLASSPATH%
添上雙引號 => "%CLASSPATH%"
。
Elasticsearch-6.1.1 官網(wǎng)
安裝 x-pack
bin/elasticsearch-plugin install x-pack
新增用戶:
bin/users useradd mcloud-user
修改角色:
bin/users roles -a logstash_admin mcloud-log-user
注:
系統(tǒng)內(nèi)置角色:
Known roles: [kibana_dashboard_only_user, watcher_admin, logstash_system, kibana_user, machine_learning_user, remote_monitoring_agent, machine_learning_admin, watcher_user, monitoring_user, reporting_user, kibana_system, logstash_admin, transport_client, superuser, ingest_admin]
啟動服務
bin/elasticsearch.bat
Kibana-6.1.1 官網(wǎng)
安裝 x-pack
bin/kibana-plugin.bat install x-pack
啟動服務
bin/kibana.bat
Logstash-6.1.1 官網(wǎng)
創(chuàng)建配置文件 文檔
config/logstash.conf
input {
logstash-input-kafka {
topics => ["mcloud-log"]
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
user => "mcloud-user"
password => 123456
}
}
最終效果
相關(guān)服務啟動完成后, 登陸 kibana 管理界面,可以看到以下的效果:
qq 20171223170727