分布式日志环境的构建(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 最终结果显示