首页 > 其他分享 >Logstash grok 使用

Logstash grok 使用

时间:2022-10-03 00:23:10浏览次数:56  
标签:grok log access 使用 path message type Logstash

使用

  • grok格式化
filter {
    grok {
        match => {
            "message" => '(?<clientip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d.\d" (?<status>[0-9]+) (?<bodysize>[0-9]+) "[^"]+" "(?<ua>[^"]+)"'
        } 
    }
}

  • 跳过匹配失败的数据
output{
    if "_grokparsefailure" not in [tags] and "_dateparsefailure" not in [tags] {
        elasticsearch {
            hosts => ["http://192.168.237.50:9200"]
        }
    }
}

  • 去除不要字段
filter {
    grok {
        match => {
            "message" => '(?<clientip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d.\d" (?<status>[0-9]+) (?<bodysize>[0-9]+) "[^"]+" "(?<ua>[^"]+)"'
        }
        remove_field => ["message","@version","path"]
    }
}

  • 一次性收集日志,且指定排序时间轴
input {
  file {
    path => "/usr/local/nginx/logs/access.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
filter {
    grok {
        match => {
            "message" => '(?<clientip>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}) - - \[(?<requesttime>[^ ]+ \+[0-9]+)\] "(?<requesttype>[A-Z]+) (?<requesturl>[^ ]+) HTTP/\d.\d" (?<status>[0-9]+) (?<bodysize>[0-9]+) "[^"]+" "(?<ua>[^"]+)"'
        }
        remove_field => ["message","@version","path"]
    }
    date {
        match => ["requesttime", "dd/MMM/yyyy:HH:mm:ss Z"]
        target => "@timestamp"
    }
}

统计Nginx的请求和网页显示进行对比
cat /usr/local/nginx/logs/access.log |awk '{print $4}'|cut -b 1-19|sort |uniq -c
20/Feb/2019:14:50:06 -> dd/MMM/yyyy:HH:mm:ss
2016-08-24 18:05:39,830 -> yyyy-MM-dd HH:mm:ss,SSS


  • 读取json格式日志
#
filter {
  json {     
    source => "message"     
    remove_field => ["message","@version","path","beat","input","log","offset","prospector","source","tags"]   }
}

  • Filebeat采集多个日志配置
filebeat.inputs:
- type: log
  tail_files: true
  backoff: "1s"
  paths:
      - /usr/local/nginx/logs/access.json.log
  fields:
    type: access
  fields_under_root: true
- type: log
  tail_files: true
  backoff: "1s"
  paths:
      - /var/log/secure
  fields:
    type: secure
  fields_under_root: true
output:
  logstash:
    hosts: ["192.168.237.51:5044"]

  • Logstash通过type字段进行判断
input {
        beats {
                host => '0.0.0.0'
                port => 5044 
        }
}

filter {
  if [type] == "access" {
    json {
      source => "message"
      remove_field => ["message","@version","path","beat","input","log","offset","prospector","source","tags"]
    }
  }
}

output{
  if [type] == "access" {
    elasticsearch {
      hosts => ["http://192.168.237.50:9200"]
      index => "access-%{+YYYY.MM.dd}"
    }
  }
  else if [type] == "secure" {
    elasticsearch {
      hosts => ["http://192.168.237.50:9200"]
      index => "secure-%{+YYYY.MM.dd}"
    }
  }
}

标签:grok,log,access,使用,path,message,type,Logstash
From: https://www.cnblogs.com/tengfei520/p/16749828.html

相关文章

  • 样例 多进程(采集视频+界面显示)+共享内存+按键+引脚使用
       界面转化命令python-mPyQt5.uic.pyuic./UI_1creat.ui-o./UI_1UI.py  調用代碼fromPyQt5.QtWidgetsimportQApplication,QMainWindow,QFileDialog......
  • 使用FIO工具和dd命令测试磁盘性能
    目录FIO介绍FIO安装在线安装离线安装磁盘测试命令行方式测试结果说明命令参数说明配置文件方式dd命令介绍使用方法FIO介绍FIO是一款测试IOPS的工具,用于对磁盘进行压力测......
  • Tomcat——基本使用
    Tomcat——基本使用  1、下载安装(8.5版本为企业最常用版本)    下载地址:https://tomcat.apache.org/download-80.cgi        或直接点击下载Tomcat8.5.8......
  • numpy简单使用
    1.安装以及测试简介NumPy是一个运行速度非常快的数学库,主要用于数组计算,包含:一个强大的N维数组对象ndarray广播功能函数整合C/C++/Fortran代码的工具线性代数、傅里叶......
  • sklearn 使用以及数据集拆分与特征预处理
    莺尾花预测是KNN一个经典的例子,可以理解为一个分类预测。莺尾花的数据集有150条,每个样本包含:特征值四:花瓣花萼的长度和宽度目标值有3种:setosa、versicolor、virginica1.......
  • Spring boot+VUE使用token实现登录验证及退出
    Springboot+VUE实现token验证Vue+SpringBoot实现token认证主要可分为六步:1.前端登录,post用户名和密码到后端。2.后端验证用户名和密码,若通过,生成一个token返回给前端......
  • VUE中使用sessionStorage或者localStorage存取对象或者数组时会显示[object object]
    VUE如果直接使用sessionStorage.setItem和sessionStorage.getItem来进行存取对象的话,不能正常使用该对象,并且在Application的Session Storage中会显示[objectobject] ......
  • 使用JAVA代码实现POST发送application/x-www-form-urlencoded请求
    前言在实际开发过程中,我们经常是使用的POST发送application/json;charset=utf-8格式请求,但是有时候接口会设计成application/x-www-form-urlencoded,这就需要我们随机应变,......
  • Maven [ERROR] 不再支持源选项 5,请使用 7 或更高版本的解决办法
    不再支持源选项5,请使用7或更高版本的解决办法报错如下具体原因没有配置jdk的版本,默认的版本过低。在maven里的conf的setting.xml中默认的版本是jdk1.4。解......
  • Rsync的简单使用
    Rsync的简单使用需求一个运行很久的系统里面可能包含了非常多的垃圾文件.但是又不可能随便删除,很多垃圾可能有某些奇葩的用法.有时候新建一个应用复制文件的话比较浪费......