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

编程入门 行业动态 更新时间:2024-10-26 04:20:12

filebeat(8.9.0)采集<a href=https://www.elefans.com/category/jswz/34/1770796.html style=日志到logstash,由logstash发送的es"/>

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

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

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

下载并配置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.mingemptymons.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" # 将解析后的时间戳存储到 @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认证

更多推荐

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

本文发布于:2023-12-05 08:26:13,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1663664.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:日志   filebeat   logstash   es

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!