从零构建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主题.
从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第1张图片

3.2 通过kibana进行日志分析

  • 1. 在浏览器输入http://192.168.1.14:5601,访问kibana界面,然后依次点击三道杠->Stack Management
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第2张图片
  • 2. 点击索引管理,会发现已经有一个索引logstash-logback-kafka-springboot-dev-2020.09,命名规则为logstash-%{system}-%{+YYYY.MM},此处我们使用的系统名称为logback-kafka-springboot-dev
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第3张图片
  • 3. 依次点击索引模式->创建索引模式

从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第4张图片

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

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

  • 1. 通过浏览器发送一次请求http://localhost:8080/log/998,后台返回TID为e3bf6e32-d7cb-4161-8a34-4da5c6393e8a
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第14张图片
  • 2. 依次点击三道杠->Kibana->Discover进行日志查询
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第15张图片
  • 3. 点击左上方的打开按钮,点击我们前面保存的my_title
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第16张图片
  • 4. 此时界面快速切换到我们之前保存的只有level,message两个字段的样式,我们点击TID字段右面的添加按钮,将TID字段也加入到右侧的表格
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第17张图片
  • 5. 此时表格便包含了TID列,我们可以通过TID字段右侧的按钮进行移动和删除,让我们点击右移按钮将TID字段放在level和message之间
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第18张图片
  • 6. 此时字段排序变成了level,TID,message,当我们将鼠标滑过level,message字段的值时,会提示出一个筛选按钮,然而滑过TID时不会有这个提示,如下图所示
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第19张图片
  • 7. 上面出现这个问题的原因是我们在创建索引模式的时候,还没有TID这个字段,我们只需要刷新下索引模式即可.依次点击三道杠->Management->Stack Management->索引模式->logstash-logback-kafka-springboot-dev*,然后点击右上方的刷新字段列表按钮
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第20张图片
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第21张图片
  • 8. 此时再次回到Discover页面,TID字段值上面就可以进行筛选了,我们点击筛留值按钮
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第22张图片
  • 9. 此时页面中便只有TID= e3bf6e32-d7cb-4161-8a34-4da5c6393e8a的日志了
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第23张图片
  • 10. 通过浏览器再发送一次请求http://localhost:8080/log/999,后台返回TID为13572a9a-e3a9-4885-a7e4-6165b2b04287
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第24张图片
  • 11. 改变查询条件,只查询TID=13572a9a-e3a9-4885-a7e4-6165b2b04287的日志,按下图所示进行点击操作
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第25张图片
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第26张图片
  • 12. 此时页面上便只留下TID=13572a9a-e3a9-4885-a7e4-6165b2b04287的日志了
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第27张图片
  • 13. 我们可以将这个查询方式保存下来,点击左上方的保存按钮,以便后续使用
    从零构建ELK日志分析平台:Logstash7.9将日志解析到ES&用Kibana日志分析_第28张图片

你可能感兴趣的:(#,ELK日志分析,kibana日志分析,elk日志分析,kibana日志查询)