分布式日志環境的構建(ELK+Kafka)
主要是搭建分布式日志環境,由ELK+Kafka實現,分為以下四步實現:
一、Elasticsearch環境的搭建和測試
1、刪除已經存在的ES容器和鏡像,如圖1.1.1,1.1.2所示:
圖1.1.1 刪除已存在ES
圖1.1.2 刪除已存在ES鏡像
2、宿主機調整內存:可通過執行語句“sudo sysctl -w vm.max_map_count=655360”實現,效果如圖1.2.1所示:
圖1.2.1 更改宿主機內存
3、更改docker-compose.yml中的內存限制:可通過執行“vim /home/locus/springcloudV2.0/docker-compose.yml”。進入docker-compose.yml,將mem_limit: 更改為2048M,效果如圖1.2.2所示:
圖1.2.2 更改docker-compose.yml中的內存限制
4、進入/home/px2/envdm/springcloudV2.0/路徑,執行"docker-compose up -d elasticsearch"命令,進入安裝界面,效果如圖1.2.3所示:
圖1.2.3 ES的安裝
5、可通過瀏覽器訪問“你的虛擬機IP地址:9200”可顯示如圖1.2.4所示的版本信息,這樣ES就完成了。
圖1.2.4 ES安裝完成
二、Logstash的安裝:
1、Portainer中logstash控制台執行命令“vi /usr/local/logstash-6.3.0/config/logstash.yml”,將logstash.yml中的IP地址改為你的ES的IP和端口。效果如圖2.1.1所示:
圖2.1.1 更改IP地址
2、同理運行命令“vi /usr/local/logstash-6.3.0/bin/logstash.conf”更改IP地址及加入日志參數。這樣就完成了Logstash的配置。如圖2.1.2所示:
圖2.1.2 更改IP地址以及添加日志輸出
三、Kibana的配置:
1、在Kibana的控制台中執行“vi /local/kibana-6.2.4-linux-x86_64/config/kibana.yml”修改Kibana的IP地址,如圖3.1.1所示。
圖3.1.1 更改host Ip地址
2、訪問對應的IP可查看Kibana界面如圖3.1.2所示:
圖3.1.2 Kibana界面
四、Kafka的配置
1、運行命令“vi local/kafka_2.10-0.10.2.1/config/server.properties",修改文件中的”listeners=PLAINTEXT://0.0.0.0:9092 advertised.listeners=PLAINTEXT://192.168.228.128:9092"
效果如圖4.1.1所示:
圖4.1.1 修改Kafka的配置
2、進入Kafka bin目錄下,運行命令“./kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic dm --from-beginning”重啟Kafka
五、測試
1、打開項目“dm-kafka-client”,更改“application.yml"的IP地址。如圖5.1.1所示:
圖5.1.1 更改”application.yml"配置
2、測試代碼如圖代碼塊5.1.2所示:啟動項目。

1 @RestController 2 public class KafkaController { 3 @Autowired 4 private KafkaTemplate<String, String> KafkaTemplate; 5 6 @RequestMapping(value = "/sendMsgToKafka") 7 public String sendMsgToKafka() { 8 //KafkaTemplate.send("dm", "dm", "培達夢!--->" ); 9 for (int i = 10; i < 20; i++) { 10 //my-topic 11 //KafkaTemplate.send("user_consumer", "dm", "hello,Kafka!--->" + i); 12 KafkaTemplate.send("dm", "bhy", "67hello2,Kafka!--->" + i); 13 //System.out.println("*****"); 14 } 15 return "發送消息到Kafka完畢"; 16 } 17 }
3、頁面請求對應controller,Kibana可看到如圖5.1.3數據:
圖5.1.3 最終結果顯示