Logstash 7.9.1 学习

个人学习笔记,谢绝转载!!!

原文:https://www.cnblogs.com/wshenjin/p/13666614.html


安装和配置

安装

[root@ ~]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.9.1.rpm
[root@ ~]# rpm -ivh logstash-5.1.1.rpm

配置

# 调整jvm使用内存
[root@ ~]# vim /etc/logstash/jvm.options 
-Xms128m
-Xmx256m
# 修改logstash基本配置
[root@ ~]# vim /etc/logstash/logstash.yml 
log.level: warn
pipeline:
  workers: 4
  batch:
    size: 125
    delay: 5
path.config: /etc/logstash/conf.d
path.data: /data/elk/logstash
path.logs: /var/log/logstash
http.port: 9600
http.host: "0.0.0.0"

hello world

做个简单的测试

[root@ ~]# logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
hello world 
{
      "@version" => "1",
       "message" => "hello world ",
    "@timestamp" => 2020-09-12T07:23:44.025Z,
          "host" => "localhost"
}

以上的例子从标准输入中获取数据,再从标准输出中输出。

在输出的结果中:

  • "@timestamp"标记事件发生的时间点,

  • "host"标记事件发生的主机

  • "type"标记事件的唯一类型。

Es 统一采用UTC时间存成长整型数据,会比北京时间晚八个小时。

命令行参数:

  • -e:直接执行后接的配置字符串,可以为空。空字符串''就默认是'input{stdin{}}output{stdout{codec=>rubydebug}}'。
  • -f:后接配置文件,可以将复杂的配置写到配置文件中。
  • -t:测试,用来测试后接的配置文件语法是否正确。写法:logstash -t -f conf_file_path
  • -l:后接日志文件,默认日志为配置文件logstash.yml中指定的日志文件。

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'

条件判断

  • 相等: ==, !=, <, >, <=, >=
  • 正则: =~(匹配正则), !~(不匹配正则)
  • 包含: in(包含), not in(不包含)
  • 布尔操作: and(与), or(或), nand(非与), xor(非或)
  • 一元运算符:!(取反) ,()(复合表达式), !()(对复合表达式结果取反)
posted @ 2020-09-14 14:43  wshenJin  阅读(619)  评论(0编辑  收藏  举报