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

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
    

    将原先输出到控制台配置改为输出到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 }
    }
    

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. 我们可以将这个查询方式保存下来,点击左上方的保存按钮,以便后续使用
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值