当前位置: 首页 > news >正文

网站建设电脑端手机端网站建设类外文翻译

网站建设电脑端手机端,网站建设类外文翻译,大兴区企业网站建设,wordpress的意思和读音本文章介绍,Logstash进行自动采集服务器日志文件,并手把手教你如何在springboot项目中配置logstash进行日志自动上报与日志自定义格式输出给logstash。kibana如何进行配置索引模式,可以在kibana中看到采集到的日志 日志流程 logfile-> l…

本文章介绍,Logstash进行自动采集服务器日志文件,并手把手教你如何在springboot项目中配置logstash进行日志自动上报与日志自定义格式输出给logstash。kibana如何进行配置索引模式,可以在kibana中看到采集到的日志

日志流程

logfile-> logstash -> es -> kibana 进行展示

ELK环境安装(docker)

Docker 安装 elk(elasticsearch、logstash、kibana)、ES安装ik分词器

Logstash实现日志文件的采集

本示例进行采集nginx日志进行演示。

1. logstash配置文件内容:

位于:/data/docker/logstash/config/logstash.conf

input {# 监听nginx日志file {path => ["/data/docker/nginx/logs/access.log", "/data/docker/nginx/logs/error.log"]type => "nginx_log" # 自定义类型start_position => "beginning" # beginning-从头开始 end-从结束不配置默认读取最新的数据,默认end}
}filter {# nginx日志格式配置if [type] == "nginx_log" {grok {match => { "message" => "%{COMBINEDAPACHELOG}"} # 标准日志格式}date {match => [ "timestamp", "ISO8601", "yyyy/MM/dd HH:mm:ss" ] # 增加ISO8601支持更多日期格式target => "@timestamp"}mutate {add_field => { "[@metadata][app]" => "%{type}" }}}}output {elasticsearch {hosts => ["elasticsearch:9200"]index => "%{[@metadata][app]}-%{+YYYY.MM.dd}"}
}

2. 修改完配置后,进行重启logstash

kibana配置索引模式,用于在kibana中进行查看日志

1. 检查配置的日志是否被采集到

进入Index Management中查看是否含有nginx_log-yyyy-MM-dd 的index,如果有说明日志被正常采集到了。

菜单位于左侧菜单栏的Management->Stack Management->Index Management中
在这里插入图片描述
在这里插入图片描述

2. 设置索引模式

在 Index patterns页面中进行新增索引模式,输入nginx_log*进行模糊匹配到我们的nginx日志索引,然后选择timestamp点击确定即可生成日志看板。然后在Discover页面中就能看到我们配置的日志面板了。

菜单位于左侧菜单栏的Management->Stack Management-> Index patterns

  • 创建新的索引模式
    在这里插入图片描述
  • 输入索引名称进行模糊匹配
    在这里插入图片描述
  • 第二步骤选择timestamp
    在这里插入图片描述

3. 进入到Discover页面进行查看日志

在这里插入图片描述

  • 下拉找到nginx_log*,就能看到采集到的日志了
    在这里插入图片描述

SpringBoot 服务上报给Logstash

该示例使用的springboot自带的logback日志框架进行上报给logstash。

如使用log4j日志框架的可以参考我写的另外一个文章: springboot 集成log4j日志,需要自定义json格式内容输出方便ES采集

springboot项目demo

GITEE项目:springboot实现logstash日志上报

pom依赖


<properties><java.version>1.8</java.version><lombok.version>1.18.28</lombok.version><fastjson2.version>2.0.34</fastjson2.version><junit.version>4.13.2</junit.version><logstash.version>7.2</logstash.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency><!-- lombok -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version>
</dependency><!-- fastjson2 -->
<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>${fastjson2.version}</version>
</dependency><!-- logstash -->
<dependency><groupId>net.logstash.logback</groupId><artifactId>logstash-logback-encoder</artifactId><version>${logstash.version}</version>
</dependency></dependencies>

yaml配置


server:port: 8080spring:application:name: springboot-log-logstash-logback-demojackson:date-format: yyyy-MM-dd HH:mm:sstime-zone: GMT+8default-property-inclusion: non_null# 日志配置
logging:level:org.springframework: warnconfig: classpath:logback-spring.xml# logstash 配置logstash:url: 127.0.0.1:4560

注意:需要文件名需要为logback-spring.xml ,不然在配置日志参数时,会报错无法获取到yaml的配置

logback-spring.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false"><property name="log.path" value="/data/logs/springboot-log-logback-demo"/><property name="console.log.pattern"value="%green(%d{yyyy-MM-dd HH:mm:ss}) %highlight([%level]) %boldMagenta(${PID}) --- %green([%thread])  %boldMagenta(%class) - [%method,%line]: %msg%n"/><property name="log.pattern"value="%d{yyyy-MM-dd HH:mm:ss} [%level] ${PID} --- [%thread] %class - [%method,%line]: %msg%n"/><springProperty name="LOG_STASH_URL" scope="context" source="logging.logstash.url" defaultValue="127.0.0.1:4560"/><springProperty name="app" scope="context" source="spring.application.name" defaultValue="springboot-server"/><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${console.log.pattern}</pattern><charset>utf-8</charset></encoder></appender><appender name="file_out" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${log.path}/out.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${log.path}/out.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>10</maxHistory></rollingPolicy><encoder><pattern>${log.pattern}</pattern></encoder><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level></filter><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>WARN</level></filter><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level></filter></appender><appender name="async_out" class="ch.qos.logback.classic.AsyncAppender"><discardingThreshold>0</discardingThreshold><queueSize>512</queueSize><appender-ref ref="file_out"/></appender><!-- Logstash --><appender name="logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"><destination>${LOG_STASH_URL}</destination><!-- logstash默认输出格式  --><!-- <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"><customFields>{"app":"${app}"}</customFields><pattern>${log.json.pattern}</pattern></encoder>--><!-- 自定义logstash输出格式 - json--><encoder charset="UTF-8" class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"><providers><pattern><pattern>{"app":"${app}","timestamp": "%d{MM-dd HH:mm:ss.SSS}","level": "%level","class": "%class","method": "%method","line": "%class#%method - %line","message": "%msg","header.client-ip": "%X{header.client-ip}","header.content-length": "%X{header.content-length}","thread": "%thread","stack_trace": "%exception{10}"}</pattern></pattern></providers></encoder></appender><root level="info"><appender-ref ref="console"/><appender-ref ref="async_out"/><appender-ref ref="logstash"/></root></configuration>

logstash配置文件内容

# 采集配置input {# 设置监听端口为4560,格式为json格式tcp {mode => "server"host => "0.0.0.0"port => 4560codec => jsontype => "json_log"  # 自定义类型标识}
}filter {# json 格式 设置app名称,用于定义index索引名称if [type] == "json_log" {mutate {copy => { "app" => "[@metadata][app]" }}}}output {elasticsearch {hosts => ["elasticsearch:9200"]index => "%{[@metadata][app]}-%{+YYYY.MM.dd}"}# 输出到控制台以便调试# stdout { codec => rubydebug }
}

kibana配置日志查看↑和nginx的配置一样

在这里插入图片描述

logstash多文件配置

# 采集配置input {# 设置监听端口,格式为json格式tcp {mode => "server"host => "0.0.0.0"port => 4560codec => jsontype => "json_log"  # 自定义类型标识}# 监听nginx日志file {path => ["/data/docker/nginx/logs/access.log", "/data/docker/nginx/logs/error.log"]type => "nginx_log" # 自定义类型start_position => "beginning" # beginning-从头开始 end-从结束不配置默认读取最新的数据,默认end}
}filter {# json 格式 设置app名称,用于定义index索引名称if [type] == "json_log" {mutate {copy => { "app" => "[@metadata][app]" }}}# nginx日志格式配置if [type] == "nginx_log" {grok {match => { "message" => "%{COMBINEDAPACHELOG}"} # 标准日志格式}date {match => [ "timestamp", "ISO8601", "yyyy/MM/dd HH:mm:ss" ] # 增加ISO8601支持更多日期格式target => "@timestamp"}mutate {add_field => { "[@metadata][app]" => "%{type}" }}}}output {elasticsearch {hosts => ["elasticsearch:9200"]index => "%{[@metadata][app]}-%{+YYYY.MM.dd}"}# 输出到控制台以便调试# stdout { codec => rubydebug }
}
http://www.yayakq.cn/news/568344/

相关文章:

  • 网站开发教学视频物价工作信息网站建设
  • 临沂网站制作定制dy刷粉网站推广马上刷
  • 网站建设实训记录上海定制网站建设公司
  • 北京建设信源官方网站制作网站对话框
  • 电子商务网站建设成果ppy网站免费建站 网页不需要备案
  • 福州做网站费用商标图案参考
  • 做网站从设计到上线流程精品课程网站建设的背景及意义
  • 港海建设网站商城网站建设php
  • 常平到东莞北京大型网站优化
  • 建设短视频网站网站没有关键词
  • 长春做网站seo的网上注册公司需要哪些材料和流程
  • 国内最好的网站服务器wordpress文章点开是个新网页
  • 泰安网站建设定制公司汉中网站设计
  • 教育培训网站官网安徽龙山建设网站
  • 电脑怎么用别人的网站吗网站做app的重要性
  • 网站突然被降权怎么办网站代备案公司
  • 互联网网站样式营销策划方案案例
  • 网站建设评分标准网站模仿
  • 设计工作室网站推荐茂名制作网站软件
  • 网站如何做才容易被搜索到博罗做网站
  • 做网站能收多少广告费access是不是网页制作工具
  • 网站建设排名的公司哪家好网站程序模板下载
  • 网页模板下载哪个网站好知名的传媒行业网站开发
  • linux建设一个网站网站建设学习视频
  • 青岛网站推广系统外包公司简介
  • 肇东网站建设软件公司网站建设
  • 易班网站的建设内容涿州网站建设公司
  • 宠物网站建设总结dedecms英文外贸网站企业模板下载
  • 网站建设总结心得正规大宗商品交易平台
  • 网站开发采购合同模板下载新零售商城系统开发