filebeat(8.9.0)采集日志到logstash,由logstash发送的es

filebeat采集日志到logstash,由logstash发送的es

  • 下载并配置filebeat
    • 下载
    • 配置
    • logback.xml
  • logstash配置

下载并配置filebeat

下载

参考
filebeat下载示例

配置

filebeat.inputs:
- type: filestreamenabled: truepaths:# 日志文件目录- D:\modellog\elkdemo\*\*.logparsers:# 多行日志合并(例如java的异常堆栈信息)- multiline:type: pattern# 匹配以[开头的pattern: '^\['negate: truematch: after# 自定义日志格式
processors:
- dissect:tokenizer: '[%{timestamp}] -%{parentTraceId} -%{traceId} -%{host} -%{port} -%{appName} -%{pid} -[%{level}] -[%{thread}] -%{class} -%{line} - %{message}'field: "message"# 输出到logstash
output.logstash:enabled: truehosts: ["192.168.0.100:21069"]  

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!-- 彩色日志 --><!-- 彩色日志依赖的渲染类 --><conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/><conversionRule conversionWord="wex"converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/><conversionRule conversionWord="wEx"converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/><define name="hostAddress" class="top.mingempty.commons.definer.IPLogDefiner"/><springProperty scope="context" name="appName" source="spring.application.name"/><springProperty scope="context" name="port" source="server.port"/><!--彩色日志格式以及包名输出缩进对齐--><property name="CONSOLE_LOG_PATTERN"value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}  %clr([${LOG_LEVEL_PATTERN:-%5p}]) %clr(${PID:- }){magenta} %clr(-){faint} %clr([%t]){faint} %clr(%logger){cyan} %clr(:){magenta} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/><property name="FILE_LOG_PATTERN"value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] -${hostAddress} -${port} -${appName} -${PID:-} -[%-5level] -[%thread] -%logger -%-3L - %msg%n"/><contextName>fanxlxs</contextName><!--文件夹在当前项目磁盘根目录--><property name="LOG_PATH" value="/modellog"/><!--设置系统日志目录--><property name="APPDIR" value="/filebeat"/><!--  日志记录器,日期滚动记录ERROR 级别--><appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的文件名,日期必须加,如果单天需要生成多个日志,则需要添加%i--><FileNamePattern>${LOG_PATH}/${APPDIR}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</FileNamePattern><!--            &lt;!&ndash;历史日志文件保留天数,不包含当日日志,且需结合cleanHistoryOnStart字段使用&ndash;&gt;&lt;!&ndash;可以按“文件数量、小时、天、月、年”等策略实现文件保留 &ndash;&gt;<MaxHistory>3</MaxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart>--><!-- 单天单个日志最大size --><maxFileSize>10MB</maxFileSize><!--     &lt;!&ndash;仅针对当天的日志进行总size控制,日志名中的“i”保留最后数值 &ndash;&gt;<totalSizeCap>10MB</totalSizeCap>--></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件记录error级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>error</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 日志记录器,日期滚动记录WARN  级别--><appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的文件名,日期必须加,如果单天需要生成多个日志,则需要添加%i--><FileNamePattern>${LOG_PATH}/${APPDIR}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</FileNamePattern><!--            &lt;!&ndash;历史日志文件保留天数,不包含当日日志,且需结合cleanHistoryOnStart字段使用&ndash;&gt;&lt;!&ndash;可以按“文件数量、小时、天、月、年”等策略实现文件保留 &ndash;&gt;<MaxHistory>3</MaxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart>--><!-- 单天单个日志最大size --><maxFileSize>10MB</maxFileSize><!--     &lt;!&ndash;仅针对当天的日志进行总size控制,日志名中的“i”保留最后数值 &ndash;&gt;<totalSizeCap>10MB</totalSizeCap>--></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件只记录warn级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>warn</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 日志记录器,日期滚动记录INFO  级别--><appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的文件名,日期必须加,如果单天需要生成多个日志,则需要添加%i--><FileNamePattern>${LOG_PATH}/${APPDIR}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</FileNamePattern><!--            &lt;!&ndash;历史日志文件保留天数,不包含当日日志,且需结合cleanHistoryOnStart字段使用&ndash;&gt;&lt;!&ndash;可以按“文件数量、小时、天、月、年”等策略实现文件保留 &ndash;&gt;<MaxHistory>3</MaxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart>--><!-- 单天单个日志最大size --><maxFileSize>10MB</maxFileSize><!--     &lt;!&ndash;仅针对当天的日志进行总size控制,日志名中的“i”保留最后数值 &ndash;&gt;<totalSizeCap>10MB</totalSizeCap>--></rollingPolicy><!-- 追加方式记录日志 --><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件只记录info级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>info</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- 日志记录器,日期滚动记录DEBUG  级别--><appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 正在记录的日志文件的路径及文件名 --><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!--日志文件输出的文件名,日期必须加,如果单天需要生成多个日志,则需要添加%i--><FileNamePattern>${LOG_PATH}/${APPDIR}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</FileNamePattern><!--            &lt;!&ndash;历史日志文件保留天数,不包含当日日志,且需结合cleanHistoryOnStart字段使用&ndash;&gt;&lt;!&ndash;可以按“文件数量、小时、天、月、年”等策略实现文件保留 &ndash;&gt;<MaxHistory>3</MaxHistory><cleanHistoryOnStart>true</cleanHistoryOnStart>--><!-- 单天单个日志最大size --><maxFileSize>10MB</maxFileSize><!--     &lt;!&ndash;仅针对当天的日志进行总size控制,日志名中的“i”保留最后数值 &ndash;&gt;<totalSizeCap>10MB</totalSizeCap>--></rollingPolicy><append>true</append><!-- 日志文件的格式 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${FILE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!-- 此日志文件只记录debug级别的 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>debug</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!-- ConsoleAppender 控制台输出日志 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><!--encoder 默认配置为PatternLayoutEncoder--><encoder><pattern>${CONSOLE_LOG_PATTERN}</pattern><charset>utf-8</charset></encoder><!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息--><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>debug</level></filter></appender><!-- FrameworkServlet日志--><logger name="org.springframework" level="WARN"/><!-- nacos日志--><logger name="com.alibaba.nacos" level="WARN"/><!-- 项目日志--><logger name="top.mingempty.metadata" level="INFO"/><!-- 生产环境下,将此级别配置为适合的级别,以免日志文件太多或影响程序性能 --><root level="INFO"><appender-ref ref="ERROR"/><appender-ref ref="WARN"/><appender-ref ref="INFO"/><appender-ref ref="DEBUG"/><!-- 生产环境将请stdout去掉 --><appender-ref ref="STDOUT"/></root></configuration>

logstash配置

input {beats  {port => 5044}
}filter {grok {## 指定日志输出格式(和logback对应上)match => { "message" => "\[%{TIMESTAMP_ISO8601:timestamp}\] -%{IP:host} -%{NUMBER:port} -%{DATA:appName} -%{NUMBER:pid} -\[%{DATA:level}\] -\[%{DATA:thread}\] -%{DATA:class} -%{NUMBER:line} - %{GREEDYDATA:message}" }}mutate {remove_field => [ "[@timestamp]"]rename => {"[dissect][parentTraceId]" => "parentTraceId""[dissect][traceId]" => "traceId""[dissect][host]" => "host""[dissect][port]" => "port""[dissect][appName]" => "appName""[dissect][pid]" => "pid""[dissect][level]" => "level""[dissect][thread]" => "thread""[dissect][class]" => "class""[dissect][line]" => "line""[dissect][message]" => "message""[dissect][timestamp]" => "timestamp""[log][file][path]" => "path"}}date {match => [ "timestamp", "yyyy-MM-dd HH:mm:ss.SSS" ] # 这里指定日志中时间戳的格式target => "@timestamp" # 将解析后的时间戳存储到  字段timezone => "Asia/Shanghai" # 指定时区为中国标准时间}mutate {remove_field => [ "timestamp","event", "agent", "ecs", "input", "tags", "flags", "log", "dissect" ,"@version"]}
}output {elasticsearch {hosts => ["https://172.27.0.2:9200"]index => "beats3-mingempty-top-%{+YYYY.MM.dd}"#这里开启了es的x-packuser => "帐号"password => "密码"ssl_enabled => truessl_certificate_authorities => ["/usr/share/logstash/config/logstash.pem"]}
}

docker-compose部署elk(8.9.0)并开启ssl认证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/114279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode2409——统计共同度过的日子数

博主的解法过于冗长&#xff0c;是一直对着不同的案例debug修改出来的&#xff0c;不建议学习。虽然提交成功了&#xff0c;但是自己最后都不知道写的是啥了哈哈哈。 package keepcoding.leetcode.leetcode2409; /*Alice 和 Bob 计划分别去罗马开会。给你四个字符串 arriveA…

分发糖果[困难]

优质博文&#xff1a;IT-BLOG-CN 一、题目 n个孩子站成一排。给你一个整数数组ratings表示每个孩子的评分。你需要按照以下要求&#xff0c;给这些孩子分发糖果&#xff1a; 【1】每个孩子至少分配到1个糖果。 【2】相邻两个孩子评分更高的孩子会获得更多的糖果。 请你给每个孩…

浅谈 docker run 命令中的 -i -t 和 -d 选项

以 docker Ubuntu 镜像为例&#xff0c;ubuntu镜像启动时默认执行的命令是"/bin/bash"。 文章目录 不带任何选项带 -i 选项带 -i 和 -t 选项-d 选项 不带任何选项 rootubuntu20:~# docker run ubuntu:20.04 rootubuntu20:~# docker ps CONTAINER ID IMAGE …

DDOS攻击的有效防护方式有哪些?

DDoS攻击简介&#xff1a; DDoS攻击&#xff0c;即分布式拒绝服务攻击&#xff08;Distributed Denial of Service&#xff09;&#xff0c;是一种网络攻击&#xff0c;旨在通过向目标服务器发送大量恶意请求&#xff0c;使服务器资源耗尽&#xff0c;无法满足合法用户的需求&a…

网络协议--ARP:地址解析协议

4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址。数据链路如以太网或令牌环网都有自己的寻址机制&#xff08;常常为48 bit地址&#xff09;&#xff0c;这是使用数据链路的任何网络层都必须遵从的。一个网络如以太网可以同时被不同的网络层使用。例如&#…

git创建与合并分支

文章目录 创建与合并分支分支管理的概念实际操作 解决冲突分支管理策略Bug分支Feature分支多人协作 创建与合并分支 分支管理的概念 分支在实际中有什么用呢&#xff1f;假设你准备开发一个新功能&#xff0c;但是需要两周才能完成&#xff0c;第一周你写了50%的代码&#xf…

《动手学深度学习 Pytorch版》 9.6 编码器-解码器架构

为了处理这种长度可变的输入和输出&#xff0c; 可以设计一个包含两个主要组件的编码器-解码器&#xff08;encoder-decoder&#xff09;架构&#xff1a; 编码器&#xff08;encoder&#xff09;&#xff1a;它接受一个长度可变的序列作为输入&#xff0c;并将其转换为具有固定…

React +AntD + From组件重复提交数据(已解决)

开发场景&#xff1a; react Hooks andt 提交form表单内容给数据库(使用antd的form组件) 问题描述 提交是异步的&#xff0c;请提交方式是POST 方式 提交表单内容给后端&#xff0c;却产生了两次提交记录&#xff08;当然&#xff0c;数据新增了两条数据&#xff09;。可以…

基于WebRTC的程序因虚拟内存不足导致闪退问题的排查以及解决办法的研究

目录 1、WebRTC简介 2、问题现象描述 3、将Windbg附加到目标进程上分析 3.1、Windbg没有附加到主程序进程上&#xff0c;没有感知到异常或中断 3.2、Windbg感知到了中断&#xff0c;中断在DebugBreak函数调用上 3.3、32位进程用户态虚拟地址和内核态虚拟地址的划分 …

分享5个解决msvcp140.dll丢失的方法,全面解析msvcp140.dll丢失的原因

一、MSVCP140.dll是什么&#xff1f; 首先&#xff0c;我们需要了解什么是MSVCP140.dll。MSVCP140.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2015 Redistributable的一部分。这个文件包含了运行使用C编写的应用程序所需的一些函数和类。因此&#xff0c;当…

MongoDB URL链接 如何设置账号密码

个人博客&#xff0c;求关注。。 MongoDB URL链接 如何设置账号密码 假设你的账号是root&#xff0c;你的密码也是root&#xff0c;则 mongodb://username:passwordlocalhost:27017完美&#xff0c;再见。

探索LLM在图上学习的潜力10.14 暂停

探索LLM在图上学习的潜力 摘要介绍初步知识 摘要 Learning on Graph已经引起了极大的关注&#xff0c;因为它在现实世界中有广泛的应用。在具有文本节点属性的图形上进行学习的最流行的流程主要依赖于图神经网络&#xff08;GNN&#xff09;&#xff0c;并利用浅层文本嵌入作为…

Maven系列第8篇:大型Maven项目,快速按需任意构建

本篇涉及到的内容属于神技能&#xff0c;多数使用maven的人都经常想要的一种功能&#xff0c;但是大多数人都不知道如何使用&#xff0c;废话不多说&#xff0c;上干货。 需求背景 我们需要做一个电商项目&#xff0c;一般都会做成微服务的形式&#xff0c;按业务进行划分&am…

【LeetCode 算法专题突破】滑动窗口(⭐)

文章目录 前言1. 长度最小的子数组题目描述代码 2. 无重复字符的最长子串题目描述代码 3. 最大连续1的个数 III题目描述代码 4. 将 x 减到 0 的最小操作数题目描述代码 5. 水果成篮题目描述代码 6. 找到字符串中所有字母异位词题目描述代码 7. 串联所有单词的子串题目描述代码 …

关于我对 jeecg-boot 的项目理解、使用心得和改进建议

一句话总结&#xff1a; JeecgBoot帮助我提升了后端技术水平&#xff0c;入门了前端&#xff0c;让我在公司内部慢慢能够成长为全栈开发。 一、项目理解 JeecgBoot 项目的核心理念是快速开发、低代码、易扩展。它采用了前后端分离的架构&#xff0c;后端使用Spring Boot Myba…

用节点亲和性把 Pod 分配到节点

用节点亲和性把 Pod 分配到节点 当前集群信息&#xff1a; rootk8s-master:~# kubectl get node -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME k8s…

微信小程序OA会议系统数据交互

前言 经过我们所写的上一文章&#xff1a;微信小程序会议OA系统其他页面-CSDN博客 在我们的是基础面板上面&#xff0c;可以看到出来我们的数据是死数据&#xff0c;今天我们就完善我们的是数据 后台 在我们去完成项目之前我们要把我们的项目后台准备好资源我放在我资源中&…

学习笔记---0基础+干货满满的单链表专题~~

目录​​​​​​​ 1. 链表的概念及结构&#x1f451; 1.1 什么是链表&#xff1f;&#x1f440; 1.2 为什么需要链表&#xff1f;⁉️ 1.3 链表的结构是怎么样的&#xff1f;❓ 2. 链表的分类&#x1f99c; 3. 实现单链表&#x1faf5; 3.1 要实现的目标&#x1f3af;…

JS加密/解密之闭包的运用

深入探讨JavaScript闭包的演变与应用 摘要&#xff1a; 本文将深入探讨JavaScript闭包的概念、特性以及其在实际开发中的应用。我们将从闭包的起源开始&#xff0c;探讨它在JavaScript编程中的重要性&#xff0c;并通过实例展示闭包在不同场景下的灵活应用。 引言 JavaScrip…