当前位置:   article > 正文

从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_logstash without a matching listener

logstash without a matching listener

1. 操作前提

确保已完成logstash7.9.1 容器安装&解析kafka日志到控制台章节相关内容,本章基于上一章节内容.

2. 日志解析到ES

  • 2.1 修改logstash配置

    修改文件/root/docker-compose/logstash/pipeline/log-kafka-dev.conf内容,

    vim  /root/docker-compose/logstash/pipeline/log-kafka-dev.conf
    
    • 1

    将原先输出到控制台配置改为输出到elasticsearch,修改完成后全部内容如下:

    input{
        kafka{
            bootstrap_servers => "192.168.1.14:9092"        #kafka地址
            auto_offset_reset => "earliest"                 #消息读取位置
            topics => ["log_kafka_dev"]        				#kafka中topic名称,记得创建该topic
            group_id => "logstash-7.9.1"                    #默认为“logstash”
            codec => "json"                                 #与Shipper端output配置项一致
            consumer_threads => 3                           #消费的线程数
            max_poll_records => "2000"
            decorate_events => true                         #在输出消息的时候回输出自身的信息,包括:消费消息的大小、topic来源以及consumer的group信息。
        }
    }
    
    filter {
        #添加字段,kafka分区,偏移,时间戳
        mutate{
            add_field =>{
                kafkaPartition => "%{[@metadata][kafka][partition]}"
                kafkaOffset => "%{[@metadata][kafka][offset]}"
                kafkaTime => "%{[@metadata][kafka][timestamp]}"
            }
        }
    	# 将分区,偏移改为数值型(此处integer包含java中long类型)
        mutate{
            convert => ["kafkaPartition", "integer"]
            convert => ["kafkaOffset", "integer"]
        }
    }
    
    output {
    	# ES输出
    	elasticsearch {
    		hosts => [ "192.168.1.14:9200" ]
    		#索引名,此处每月一个索引
    		index =>"logstash-%{system}-%{+YYYY.MM}"
    	}
    	# 将日志输出到控制台,生产环境记得注释掉控制台输出,否则会导致日志 大量堆积在kafka
    	stdout { codec => rubydebug }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

3. 日志写入&分析

3.1 启动logback-kafka-springboot项目

logback-kafka-springboot项目介绍
运行LogbackKafkaSpringbootApplication类的main方法,将项目启动,用来模拟日志写入kafka的log_kafka_dev主题.
在这里插入图片描述

3.2 通过kibana进行日志分析

  • 1. 在浏览器输入http://192.168.1.14:5601,访问kibana界面,然后依次点击三道杠->Stack Management
    在这里插入图片描述
  • 2. 点击索引管理,会发现已经有一个索引logstash-logback-kafka-springboot-dev-2020.09,命名规则为logstash-%{system}-%{+YYYY.MM},此处我们使用的系统名称为logback-kafka-springboot-dev
    在这里插入图片描述
  • 3. 依次点击索引模式->创建索引模式

在这里插入图片描述

  • 4. 填入索引模式名称logstash-logback-kafka-springboot-dev*,其中*表示匹配任意字符,因此能够匹配到索引logstash-logback-kafka-springboot-dev-2020.09,然后点击下一步
    在这里插入图片描述
  • 5. 时间字段选择@timestamp,然后点击创建索引模式.
    在这里插入图片描述
  • 6. 索引模式创建完成后,依次点击三道杠->Kibana->Discover
    在这里插入图片描述
  • 7. 此时我们的日志便显示到页面中,不足之处为日期为英文,不太好看,通过第8步进行修改日期格式
    在这里插入图片描述
  • 8. 依次点击三道杠->Management->Stack Management->高级设置,将Date format设置为YYYY-MM-DD HH:mm:ss.SSS ,然后点击保存设置
    在这里插入图片描述
    在这里插入图片描述
  • 9. 再次依次点击三道杠->Kibana->Discover,此时日期格式已符合国人审美观! 我们可以点击左侧字段旁的添加按钮,定制右面的表格,
    在这里插入图片描述
  • 10. 此处我添加level,message两个字段,效果如下:
    在这里插入图片描述
  • 11. 我们调整好字段后,可以将此样式保存起来以便下次快速浏览, 点击左上方的保存按钮,在弹出的窗口中填入标题,然后点击保存按钮,完成样式保存.
    在这里插入图片描述

3.3 通过TID快速定位一次请求日志

  • 1. 通过浏览器发送一次请求http://localhost:8080/log/998,后台返回TID为e3bf6e32-d7cb-4161-8a34-4da5c6393e8a
    在这里插入图片描述
  • 2. 依次点击三道杠->Kibana->Discover进行日志查询
    在这里插入图片描述
  • 3. 点击左上方的打开按钮,点击我们前面保存的my_title
    在这里插入图片描述
  • 4. 此时界面快速切换到我们之前保存的只有level,message两个字段的样式,我们点击TID字段右面的添加按钮,将TID字段也加入到右侧的表格
    在这里插入图片描述
  • 5. 此时表格便包含了TID列,我们可以通过TID字段右侧的按钮进行移动和删除,让我们点击右移按钮将TID字段放在level和message之间
    在这里插入图片描述
  • 6. 此时字段排序变成了level,TID,message,当我们将鼠标滑过level,message字段的值时,会提示出一个筛选按钮,然而滑过TID时不会有这个提示,如下图所示
    在这里插入图片描述
  • 7. 上面出现这个问题的原因是我们在创建索引模式的时候,还没有TID这个字段,我们只需要刷新下索引模式即可.依次点击三道杠->Management->Stack Management->索引模式->logstash-logback-kafka-springboot-dev*,然后点击右上方的刷新字段列表按钮
    在这里插入图片描述
    在这里插入图片描述
  • 8. 此时再次回到Discover页面,TID字段值上面就可以进行筛选了,我们点击筛留值按钮
    在这里插入图片描述
  • 9. 此时页面中便只有TID= e3bf6e32-d7cb-4161-8a34-4da5c6393e8a的日志了
    在这里插入图片描述
  • 10. 通过浏览器再发送一次请求http://localhost:8080/log/999,后台返回TID为13572a9a-e3a9-4885-a7e4-6165b2b04287
    在这里插入图片描述
  • 11. 改变查询条件,只查询TID=13572a9a-e3a9-4885-a7e4-6165b2b04287的日志,按下图所示进行点击操作
    在这里插入图片描述
    在这里插入图片描述
  • 12. 此时页面上便只留下TID=13572a9a-e3a9-4885-a7e4-6165b2b04287的日志了
    在这里插入图片描述
  • 13. 我们可以将这个查询方式保存下来,点击左上方的保存按钮,以便后续使用
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/994958
推荐阅读
相关标签
  

闽ICP备14008679号