ELK分布式日志收集快速入门-(一)-kafka单体篇

这篇具有很好参考价值的文章主要介绍了ELK分布式日志收集快速入门-(一)-kafka单体篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境搭建

前置条件

  1. JDK
    安装教程自行百度-这个比较简单。

  2. zookeeper

    1. zookeeper安装参考地址((2条消息) 快速搭建-分布式远程调用框架搭建-dubbo+zookper+springboot demo 演示_康世行的博客-CSDN博客)

      1 ,复制 conf 文件夹下面的 zoo_sample.cfg 改名为 zoo.cfg 即可。因为没有配置文件,zookeeper 无法启动
      2 创建 dataDir 的临时目录  mkdir -p /temp/zookeeper //配置文件参考下面截图 修改完配置文件之后进行启动
      3 ,启动  sh zkServer.sh start
      
    2. 修改zookeeper配合文件

      ELK分布式日志收集快速入门-(一)-kafka单体篇

      ELK分布式日志收集快速入门-(一)-kafka单体篇

    3. 启动成功

      ps aux|grep zookeeper
      

      ELK分布式日志收集快速入门-(一)-kafka单体篇

    4. 开放端口号

      1 开放2181 端口
        1.1 查看已经开发的端口 ,避免端口冲突
         firewall-cmd --list-ports 
        1.2 开放2181 端口
        firewall-cmd --zone=public --add-port=2181/tcp --permanent
      2 重启防火墙 使用规则生效
      	firewall-cmd --reload 
      2(因为我使用的是腾讯云,所以还得把腾讯云的控制台防火墙端口放
      开 2181
      
      

    安装kafka 2.12.x 版本

    1. 下载kafka安装包

      cd /opt
      
      wget http://archive.apache.org/dist/kafka/2.8.2/kafka_2.12-2.8.2.tgz
      
      1. 安装遇到的问题(由于网站证书不安全导致)

        ELK分布式日志收集快速入门-(一)-kafka单体篇

      2. 解决方案

        sudo yum install -y ca-certificates   //继续使用weget进行下载
        

        ELK分布式日志收集快速入门-(一)-kafka单体篇

      3. 下载成功

        ELK分布式日志收集快速入门-(一)-kafka单体篇

    2. 安装

      1. 解压

         tar zxvf kafka_2.12-2.8.2.tgz
        

        ELK分布式日志收集快速入门-(一)-kafka单体篇

      2. 进入kafka目录

        cd kafka_2.12-2.8.2/
        创建 logs 目录
        mkdir logs
        

        ELK分布式日志收集快速入门-(一)-kafka单体篇

      3. 修改配置文件

        # 修改以下配置
        # 1.broker.id : 配置的是集群环境,要求每台kafka都有唯一的brokerid
        # 2.log.dir : 数据存放的目录
        # 3.zookeeper.connect : zookeeper连接池地址信息(zookeeper集群)
        # 4.delete.topic.enable : 是否直接删除topic
        # 5.host.name : 主机名称
        # 6.listeners=PLAINTEXT://server1:9092
        
        vim /opt/kafka_2.12-2.8.1/config/server.properties
        
        advertised.listeners=PLAINTEXT://:9092  //在配置文件把这行注释解开
        log.dirs=/opt/kafka_2.12-2.8.1/logs
        zookeeper.connect=server1:2181,server2:2181,server3:2181
        # 文件尾部添加以下内容
        delete.topic.enable=true
        # 退出并保存
        
        
      4. 启动

        ./kafka-server-start.sh -daemon ../config/server.properties //后台启动
        ps aux|grep kafka  //查询kafka 运行状态
        

ELK分布式日志收集快速入门-(一)-kafka单体篇

使用示例(发送消息)

  1. 服务器端测试kafka发送消息和消费消息

    1. 创建topic

      ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic
      

      ELK分布式日志收集快速入门-(一)-kafka单体篇

    2. 查看已经创建的topic

      ./kafka-topics.sh --list --zookeeper localhost:2181
      
      

      ELK分布式日志收集快速入门-(一)-kafka单体篇

    3. 发送消息

      ./kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic
      

      ELK分布式日志收集快速入门-(一)-kafka单体篇

    4. 消费消息

      ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning
      
      

      ELK分布式日志收集快速入门-(一)-kafka单体篇

  2. 代码测试

    pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.8.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>springBoot-kafka-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>springBoot-kafka-demo</name>
        <description>springBoot-kafka-demo</description>
        <properties>
            <java.version>1.8</java.version>
            <fastjson.version>1.2.58</fastjson.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
            <!-- kafkfa -->
            <dependency>
                <groupId>org.springframework.kafka</groupId>
                <artifactId>spring-kafka</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    
    

    yml

    server:
      port: 8081
    spring:
      application:
        name: kafka-demo
      kafka:
        bootstrap-servers: 124.222.227.132:9092
        consumer:
          group-id:  kafka-demo-kafka-group
          key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
          value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
    
    

    controller

    package com.example.springbootkafkademo.controller;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.kafka.core.KafkaTemplate;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /**
     * @Description 测试发送消息
     * @ClassName TestController
     * @Author 康世行
     * @Date 22:09 2023/2/5
     * @Version 1.0
     **/
    @RestController
    @RequestMapping("/test")
    public class TestController {
        @Autowired
        private KafkaTemplate<String,String> kafkaTemplate;
    
        @GetMapping("/send/{msg}/{topic}")
        public String sendMessage(@PathVariable("msg") String msg,@PathVariable("topic") String topic){
            //发送消息到kafka
            kafkaTemplate.send(topic,msg);
            return "发送成功!";
        }
    
    }
    
    

    service

    package com.example.springbootkafkademo.service;
    
    import org.apache.kafka.clients.consumer.ConsumerRecord;
    import org.springframework.kafka.annotation.KafkaListener;
    import org.springframework.stereotype.Service;
    
    /**
     * @Description 监听发送的消息
     * @ClassName HelloListener
     * @Author 康世行
     * @Date 22:14 2023/2/5
     * @Version 1.0
     **/
    @Service
    public class HelloListener {
    
        /**
         * 消费者端:指定监听话题
         *
         * @param consumerRecord 监听到数据
         */
        @KafkaListener(topics = {"testTopic"})
        public void handlerMsg(ConsumerRecord<String, String> consumerRecord) {
            System.out.println("接收到消息:消息值:" + consumerRecord.value() + ",         消息偏移量:" + consumerRecord.offset());
        }
    
    }
    
    

    测试

    127.0.0.1:8081/test/send/测试kafka发送消息32/testTopic

    ELK分布式日志收集快速入门-(一)-kafka单体篇

    测试结果

    ELK分布式日志收集快速入门-(一)-kafka单体篇

    ``

    感谢阅读~~,希望对您有帮助。文章来源地址https://www.toymoban.com/news/detail-400594.html

到了这里,关于ELK分布式日志收集快速入门-(一)-kafka单体篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Springcloud】elk分布式日志

    (1)什么是分布式日志 在分布式应用中,日志被分散在储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。所以我们使用集中化的日志管理,分布式日志就是对大规模日志数据进行采集

    2024年02月09日
    浏览(41)
  • 分布式ELK 企业级日志分析系统

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch :是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。Elasticsearch 是用

    2024年02月16日
    浏览(39)
  • 分布式应用:ELK企业级日志分析系统

    目录 一、理论 1.ELK  2.ELK场景  3.完整日志系统基本特征 4.ELK 的工作原理          5.ELK集群准备 6.Elasticsearch部署(在Node1、Node2节点上操作) 7.Logstash 部署(在 Apache 节点上操作) 8.Kiabana 部署(在 Node1 节点上操作) 二、实验          1.Elasticsearch部署(在Node1、Node2节点上

    2024年02月14日
    浏览(40)
  • 【Distributed】分布式ELK日志文件分析系统(一)

      日志主要包括系统日志、应用程序日志和安全日志。系统远维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。   往往单台机器的日志我们使用

    2024年02月15日
    浏览(40)
  • 【分布式应用】ELK企业级日志分析系统

    目录 一、ELK 简介 1.1 ELK各组件介绍 ElasticSearch: Kiabana: Logstash: 1.2 可以添加的其它组件: Filebeat: 缓存/消息队列(redis、kafka、RabbitMQ等): Fluentd: 1.3 ELK、ELFK、EFLKL 二、为什么要使用 ELK 三、完整日志系统基本特征 四、ELK 的工作原理 五、ELK集群部署 实验环境: 实验步

    2024年02月14日
    浏览(42)
  • 【手记】基于SpringCloud搭建ELK分布式日志追踪

    ELK: 是 Elasticsearch、Logstrash 和 Kibana 的缩写,它们代表的是一套成熟的日志管理系统,ELK Stack已经成为目前最流行的集中式日志解决管理方案。 Elasticsearch: 分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实

    2024年01月16日
    浏览(43)
  • 【ELK 使用指南 1】ELK + Filebeat 分布式日志管理平台部署

    在运维中, 日志是非常重要的工具 ,用于记录系统、应用程序或设备的运行状态、事件和异常情况。 1)故障排除和问题诊断 日志是排查故障和诊断问题的关键信息源。 通过分析日志文件,可以查找和定位系统故障、错误和异常,帮助运维人员迅速找出问题的根本原因,并

    2024年02月07日
    浏览(47)
  • 【分布式应用】kafka集群、Filebeat+Kafka+ELK搭建

    主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆积过多,从而触发 too many connection 错误,引发雪崩效应。 我们使用消息队列,通过异步处理请求,从而缓解系统的压力。消息队

    2024年02月16日
    浏览(45)
  • Vue中如何进行分布式错误日志收集与监控

    随着前端界面的复杂化,前端错误日志的收集和监控也成为了一个重要的问题。在分布式应用中,需要跨多个前端应用和后端服务收集和监控错误日志。本文将介绍如何在 Vue 中使用 Sentry 进行分布式错误日志收集和监控。 Sentry 是一个开源的错误监控平台,它提供了跨平台的

    2024年02月09日
    浏览(41)
  • JAVA微服务场景下分布式日志收集排查问题实战

    问题产生的根由?不同服务的日志存在哪里?我们怎么去排查线上问题? 问题场景:我们部署的java服务可能有几十个,不同的项目里面他是看不到别的服务的日志,只有服务的返回msg消息,相比传统的单体服务来说,排查问题和解决问题的原因相对比较复杂和麻烦,我们传

    2024年02月02日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包