| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> 呕心沥血ELK跑起来了 -> 正文阅读 |
|
[大数据]呕心沥血ELK跑起来了 |
本文专题主要是SpringBoot和ELK的实践,使用Kafka作为日志输送! 首先elasticsearch和kibana版本保持一致,kafka版本和zookeeper自动按照docker获取即可。 安装好之后,测试各项服务安装成功并且可用即可。 1.2 elasticsearch服务 执行 ip:9200,出现下图即成功 ?1.3 下载 logstash, 解压到指定目录,该步骤网上有很多教程,不细说了, 解压后到 config 目录下,创建 logstash.conf 文件,文件为 springboot 集成时要用到的配置,文件内容为: ?然后去bin 目录下指定此配置文件 启动即可?logstash -f …/config/logstash.conf? 至此 ELK 的环境准备及测试完成,接下来进行springboot 集成 ELK 所需的配置 ?配置简单准备一个可以正常启动的 springboot 项目,且有 log 的输出。 1.添加依赖: <!--集成logstash--> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>5.3</version> </dependency> <!--引入es--> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.8.0</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.8.0</version> </dependency> <!--引入kafak和spring整合的jar--> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>2.8.2</version> </dependency> 其他所需依赖可以自由添加
spring.application.name=elk-user server.port=8080 #============== kafka =================== # 指定kafka 代理地址,可以多个 spring.kafka.bootstrap-servers=ip:9092 #=============== provider ======================= #重试次数 spring.kafka.producer.retries=0 # 每次批量发送消息的数量 spring.kafka.producer.batch-size=16384 spring.kafka.producer.buffer-memory=33554432 # 指定消息key和消息体的编解码方式 spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer #=============== consumer ======================= # 指定默认消费者group id spring.kafka.consumer.group-id=user-log-group spring.kafka.listener.missing-topics-fatal=false spring.kafka.consumer.auto-offset-reset=earliest #是否自动提交offer spring.kafka.consumer.enable-auto-commit=false spring.kafka.consumer.auto-commit-interval=100 # 指定消息key和消息体的编解码方式 spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer
? ? ? ? <?xml version="1.0" encoding="UTF-8"?> <Configuration status="off" monitorInterval="10"> <properties> <property name="KAFKA_SERVER">${env:KAFKA_SERVER:-124.223.87.70:9092}</property> <property name="LOG_LEVEL">${env:LOG_LEVEL:-INFO}</property> </properties> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %c{1.} - %msg%n"/> <!--<JsonLayout stacktraceAsString ="true"/>--> </Console> <Kafka name="Kafka" topic="user-log"> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" /> <Property name="bootstrap.servers">${KAFKA_SERVER}</Property> <JsonLayout stacktraceAsString ="true"> <KeyValuePair key="hostname" value="${hostName}"/> <KeyValuePair key="service_name" value="日志"/> <KeyValuePair key="detail" value="$${ctx:detail:-}"/> </JsonLayout> </Kafka> <Async name="Async"> <AppenderRef ref="Kafka"/> <AppenderRef ref="Console"/> </Async> </Appenders> <Loggers> <Root level="${LOG_LEVEL}"> <AppenderRef ref="Async"/> </Root> <Logger name="org.apache.kafka" level="INFO" /> </Loggers> </Configuration> 整体项目目录如下 先看Bean目录下的UserLog,这里仅仅记录一个实体,便于输出。? 然后是config目录 : ElasticSearchConfig和KafkaConfig 接着是Controller ?然后是Customer ???????? UserLogConsumer消费者 KafkaMessageListener这是kafka的一个监听类,他会自动去监听相同topic生产者所发的消息,然后插入es中。 Producer 生产者示例 我们通过postman去调用即可:localhost:8080/test/send,调用第一次之后我们需要去kinaba查看下: 我们发现es中已经写入了我们代码中所设置的索引,然后我们去?kibana中设置 这里因为我已经设着过user-log,所以我重新设置了另一个。设置完之后,去主页面即可看到我们的信息 ?到这就完成了springboot+elk+kafka的整合了,实现了日志收集 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:47:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |