热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

netcore消息发送到kafka通过logstash保存在es当中

  根据项目需求,需要把系统当中的操作日志保存起来,在技术方面采用了Elasticsearch存储日志。

  项目当中把消息发送kafka当中,logstash关联kafka,然后把接收到的消息保存到elsticsearch当中。

  • 采用docker部署
  • kafka
  • zookeeper(用来保存kafka相关配置信息)
  • logstash

安装kafka

  kafka采用zk来管理broker注册,在zk上有一个专门用来broker服务器列表记录节点【/brokers/ids】。每个broker在启动时,都会在zk上进行注册。

  以及消费者和生产者负载均衡和记录消息的偏移量。

  安装kafka一共是安装了三个组件。kafka、kafka-manager(可视化)、zookeeper.

  执行docker-compose 文件。生成对应的容器。

docker-compose -f docker-kafka.yml up -d

netcore消息发送到kafka通过logstash保存在es当中

docker exec -it kafka /bin/bash

cd opt/kafka_2.13.2.6.0/bin

netcore消息发送到kafka通过logstash保存在es当中

kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 2 --partitions 2 --topic useroperationlog    

  安装完成以后进入到容器里面创建相应的topic即可。

安装logstash和elasticsearch

  es和logstash也是用docker-compose执行进行创建。在创建的时候logstash需要挂载对应的配置文件,config和pipeline

netcore消息发送到kafka通过logstash保存在es当中

  安装完成之后需要修改汉化kibana,在kibana.yml文件当中添加i18n.locale: "zh-CN"即可

netcore消息发送到kafka通过logstash保存在es当中

  修改logstash配置,在logstash.conf文件当中进行添加kafka配置topic、分组、kafka地址等信息

netcore消息发送到kafka通过logstash保存在es当中

  修改完配置之后记得重启。然后就可以往kafka的topic当中发送消息。大功告成

netcore消息发送到kafka通过logstash保存在es当中

附docker-compose文件

  elasticsearch的配置

version: '3.3'
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.9.3
    container_name: elasticsearch
    ports:
      - 9200:9200
    environment:
      - discovery.type=single-node
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    deploy:
      replicas: 1
      update_config:
         parallelism: 2
         delay: 10s
      restart_policy:
          condition: on-failure1
    volumes:
      - esdata:/usr/share/elasticsearch/data
      - esconfig:/usr/share/elasticsearch/config
      - /etc/localtime:/etc/localtime
    networks:
      - esnet
  kibana:
    image: docker.elastic.co/kibana/kibana:7.9.3
    container_name: kibana
    volumes:
      - kibanaConfig:/usr/share/kibana/config
      - /etc/localtime:/etc/localtime
    ports:
      - 5601:5601
    environment:
      - ELASTICSEARCH_host=http://elasticsearch:9200
    deploy:
      replicas: 1
      update_config:
         parallelism: 2
         delay: 10s
      restart_policy:
          condition: on-failure1
    networks:
      - esnet
  logstash:
    image: logstash:7.9.3
    container_name: logstash
    volumes:
      - logstashConfig:/usr/share/logstash/config
      - pipelinesConfig:/usr/share/logstash/pipeline
    ports:
      - 5044:5044
    deploy:
      replicas: 1
      update_config:
         parallelism: 2
  delay: 10s
      restart_policy:
          condition: on-failure1
    networks:
      - esnet
volumes:
  esdata: {}
  esconfig: {}
  kibanaConfig: {}
  logstashConfig: {}
  pipelinesConfig: {}
networks:
  esnet:
      external: true



  kafka的docker-compose文件。


version: "3"
services:
   zookeeper:
     image: zookeeper
     container_name: zookeeper

     ports:
      - 2181:2181
     networks:
      - kafkanetwork
     volumes:
      - zookeeper_data:/data
      - zookeeper_log:/logs
      - zookeeper_datalog:/datalog
      - /etc/localtime:/etc/localtime
     deploy:
         restart_policy:
             condition: on-failure
   kafka:
     image: wurstmeister/kafka
     ports:
      - 9092:9092
     environment:
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_LISTENERS: PLAINTEXT://kafka:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://123.56.23.68:9092
      KAFKA_BROKER_ID: 22
     volumes:
       - /etc/localtime:/etc/localtime
       - kafka_config:/opt/kafka/config/
       - kafka_libs:/opt/kafka/libs/
       - kafka_logs:/kafka
     networks:
       - kafkanetwork
     container_name: kafka
     deploy:
      restart_policy:
          condition: on-failure
   kafka-manager:
    image: sheepkiller/kafka-manager:latest
    ports:
     - 9000:9000
    environment:
     ZK_HOSTS: zookeeper:2181
     APPLICATION_SECRET: LETMEIN
     KM_ARGS: -Djava.net.preferIPv4Stack=true
    networks:
     - kafkanetwork
    deploy:
      restart_policy:
          condition: on-failure
networks:
   kafkanetwork:
     external:
        name: kafkanetwork

volumes:
   zookeeper_data: {}
   zookeeper_log: {}
   zookeeper_datalog: {}
   kafka_config: {}
   kafka_libs: {}
   kafka_logs: {}


推荐阅读
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • Docker网络基础探讨了如何通过高效的技术手段实现跨主机容器间的顺畅通信与访问。本文深入分析了Docker网络架构,特别是其在多主机环境下的应用,为Go语言开发者提供了宝贵的实践指导和理论支持。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • Docker 中创建 CentOS 容器并安装 MySQL 进行本地连接
    本文详细介绍了如何在 Docker 中创建 CentOS 容器,并在容器中安装 MySQL 以实现本地连接。文章内容包括镜像拉取、容器创建、MySQL 安装与配置等步骤。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 掌握PHP编程必备知识与技巧——全面教程在当今的PHP开发中,了解并运用最新的技术和最佳实践至关重要。本教程将详细介绍PHP编程的核心知识与实用技巧。首先,确保你正在使用PHP 5.3或更高版本,最好是最新版本,以充分利用其性能优化和新特性。此外,我们还将探讨代码结构、安全性和性能优化等方面的内容,帮助你成为一名更高效的PHP开发者。 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 【并发编程】全面解析 Java 内存模型,一篇文章带你彻底掌握
    本文深入解析了 Java 内存模型(JMM),从基础概念到高级特性进行全面讲解,帮助读者彻底掌握 JMM 的核心原理和应用技巧。通过详细分析内存可见性、原子性和有序性等问题,结合实际代码示例,使开发者能够更好地理解和优化多线程并发程序。 ... [详细]
  • 本文介绍了在Windows 10系统下使用VirtualBox虚拟机环境部署CentOS 7.2,并在其上安装Docker的具体步骤。针对宝塔面板在Docker容器中磁盘空间限制为8GB的问题,提供了详细的解决方案和优化建议,确保用户能够高效利用有限的存储资源。 ... [详细]
  • 第二章:Kafka基础入门与核心概念解析
    本章节主要介绍了Kafka的基本概念及其核心特性。Kafka是一种分布式消息发布和订阅系统,以其卓越的性能和高吞吐量而著称。最初,Kafka被设计用于LinkedIn的活动流和运营数据处理,旨在高效地管理和传输大规模的数据流。这些数据主要包括用户活动记录、系统日志和其他实时信息。通过深入解析Kafka的设计原理和应用场景,读者将能够更好地理解其在现代大数据架构中的重要地位。 ... [详细]
author-avatar
小鱼014999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有