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(非或)
- 一元运算符:!(取反) ,()(复合表达式), !()(对复合表达式结果取反)