首页 > 其他分享 >ELK logstash 配置语法

ELK logstash 配置语法

时间:2023-06-11 18:00:36浏览次数:47  
标签:ELK log bytes 语法 引用 output path logstash

数据类型

logstash支持的数据类型有:


array

数组可以是单个或者多个字符串值。

path => [ "/var/log/messages", "/var/log/*.log" ]

path => "/data/mysql/mysql.log"

如果指定了多次,追加数组。此实例path数组包含三个字符串元素。

boolean

布尔值必须是TRUE或者false。true和false不能有引号。

ssl_enable => true

bytes

指定字节单位。支持的单位有SI (k M G T P E Z Y) 和 Binary (Ki Mi Gi Ti Pi Ei Zi Yi)。Binary单位基于1024,SI单位基于1000。不区分大小写和忽略值与单位之间的空格。如果没有指定单位,默认是byte。

my_bytes => "1113" # 1113 bytes

my_bytes => "10MiB" # 10485760 bytes

my_bytes => "100kib" # 102400 bytes

my_bytes => "180 mb" # 180000000 bytes

Codec

logstash编码名称用来表示数据编码。用于input和output段。便于数据的处理。如果input和output使用合适的编码,就无需单独的filter对数据进行处理。

codec => "json"

hash

键值对,注意多个键值对用空格分隔,而不是逗号。

match => {

"field1" => "value1"

"field2" => "value2"

... }

number

必须是有效的数值,浮点数或者整数。

port => 33

password

一个单独的字符串。

my_password => "password"

path

一个代表有效的操作系统路径。

my_path => "/tmp/logstash"

string

name => "Hello world"

name => 'It\'s a beautiful day'

字段引用

logstash字段引用语法。要在 Logstash 配置中使用字段的值,只需要把字段的名字写在中括号 [] 里就行了,这就叫字段引用。还需注意字段层次。如果引用的是一个顶级字段,可以省略[],直接指定字段名。要引用嵌套的字段,需要指定完整的路径,如[top-level field][nested field]。


下面有五个顶级字段(agent, ip, request, response, ua) 和三个嵌套字段 (status, bytes, os)。


"agent" : "Mozilla/5.0 (compatible; MSIE 9.0)" ,
   "ip" : "192.168.24.44" ,
   "request" : "/index.html"
   "response" : {
     "status" : 200 ,
     "bytes" : 52353
   } ,
   "ua" : {
     "os" : "Windows 7"
   }
}

为了引用os字段,需指定[ua][os]。引用顶级字段如request,可以简单指定request即可。


sprintf格式

字段引用格式也可以用于logstash调用sprintf格式。这种格式可以从其他字符串中引用字段值。如:



output {
   statsd {
     increment = > "apache.%{[response][status]}"
   }
}

也可以格式化时间。如:


output {
   file {
     path = > "/var/log/%{type}.%{+yyyy.MM.dd.HH}"
   }
}

条件判断

使用条件来决定filter和output处理特定的事件。


logstash条件类似于编程语言。条件支持if、else if、else语句,可以嵌套。


条件语法如下:



if EXPRESSION {
   . . .
} else if EXPRESSION {
   . . .
} else {
   . . .
}

比较操作有:


相等: ==, !=, <, >, <=, >=



标签:ELK,log,bytes,语法,引用,output,path,logstash
From: https://blog.51cto.com/u_6186189/6458461

相关文章

  • Vue入门实战05-模板语法
    Vue使用一种基于HTML的模板语法,声明式将其组件实例的数据绑定到DOM。所有Vue模板都是语法层合法的HTML,可被符合规范的浏览器和HTML解析器解析。底层机制中,Vue会将模板编译成高度优化的JavaScript代码。结合响应式系统,当应用状态变更时,Vue能够智能地推导出需要重新渲染的......
  • Java基础语法(二十):创建线程
    前言在计算机科学中,多线程是指在单个程序中同时执行多个线程。Java是一种支持多线程编程的语言,Java中的线程可以通过继承Thread类或实现Runnable接口来创建。本文将介绍Java多线程的基本概念和如何创建线程。介绍在Java中,线程是一种轻量级的进程,它可以与其他线程共享同一个进程的内......
  • GitlabCI学习笔记之五:GitLabRunner pipeline语法之artifacts dependencies
    artifacts用于指定在作业成功或者失败时应附加到作业的文件或目录的列表。作业完成后,工件将被发送到GitLab,并可在GitLabUI中下载。artifacts:paths路径是相对于项目目录的,不能直接链接到项目目录之外。将制品设置为target目录artifacts:paths:-target/禁用工件......
  • GitlabCI学习笔记之五:GitLabRunner pipeline语法之cache
    cache缓存用来指定需要在job之间缓存的文件或目录。只能使用该项目工作空间内的路径。不要使用缓存在阶段之间传递工件,因为缓存旨在存储编译项目所需的运行时依赖项。如果在job范围之外定义了cache ,则意味着它是全局设置,所有job都将使用该定义。如果未全局定义或未按job定义则......
  • 编译原理:语法分析
    实验三语法分析实验目的给出PL/0文法规范,要求编写PL/0语言的语法分析程序。通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析方法。选择一种语法分析方法(递归子程序法、LL(1)分析法、算......
  • RobotFramework基本语法----字典
    字典创建&{dict}=runkeywordif'${result}'=='on'CreateDictionaryboardtype=${BoardType_list}[${j}]shelfid=${Shelf_list}[${j}]slotid=${Slot_list}[${j}]将上述字典一个个插入到列表中runkeywordif'${result}'=='on'appendto......
  • Markdown语法
    标题三级标题四级标题最多到六级标题字体HelloWorld!****字体加粗HelloWorld!**字体倾斜HelloWorld!******字体加粗倾斜HellloWorld!~~~~添加删除线引用选择Java,走向人生巅峰>引用分割线---三个减号是分割线***三个星号是分割线图片 超......
  • JAVA基础语法
    Day03Java基础语法1.运算符运算符:对字面量或者变量进行操作的符号表达式:用运算符把字面量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式例如:inta=10;intb=20;intc=a+b;+就叫做运算符a+b就叫表......
  • python基础语法
    编码python3源码文件以utf-8编码,所有的字符去都是unicode。可以为源码指定不同的编码标识符第一个字符必须是字母或者下划线,不能是数字标识符的其他部分由字母、数字和下划线组成标识符首字母区分大小写标识符不能用python的保留字什么是标识符?标识符是用......
  • MarkDown语法学习
    标题标题采用‘#’符号引出,一级标题1个#+标题名字,二级标题2#+标题名字,依次类推。最多只能到6级标题二级标题字体样式helloworld!,两边加两个*号就表示字体加粗helloworld!,两边加一个星号就表示字体倾斜helloworld!,两边加三个星号就表示字体加粗倾斜helloworld!,两边......