Logstash学习-Hello World

时间:2023-03-09 05:19:51
Logstash学习-Hello World

1.安装

rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
cat > /etc/yum.repos.d/logstash.repo <<EOF
[logstash-5.0]
name=logstash repository for 5.0.x packages
baseurl=http://packages.elasticsearch.org/logstash/5.0/centos
gpgcheck=1
gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
enabled=1
EOF
yum clean all
yum install logstash

2.测试运行

# whereis logstash
logstash: /etc/logstash /usr/share/logstash
# cp -r /etc/logstash/logstash.yml /usr/share/logstash/config/logstash.yml

执行上面的复制操作是因为我直接按照书中的操作方法直接键入命令运行报错,说在/usr/share/logstash/config下面找不到配置文件。

执行

./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
启动成功后输入'Hello World'结果如下:
[root@localhost bin]# ./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
--- jar coordinate com.fasterxml.jackson.core:jackson-annotations already loaded with version 2.7. - omit version 2.7.
--- jar coordinate com.fasterxml.jackson.core:jackson-databind already loaded with version 2.7. - omit version 2.7.-
Sending logstash logs to /var/log/logstash/logstash.log.
Pipeline main started
Hello World
{
"@timestamp" => --20T06::.677Z,
"@version" => "",
"host" => "localhost",
"message" => "Hello World"
}
{
"@timestamp" => --20T06::.677Z,
"@version" => "",
"host" => "localhost",
"message" => "Hello World"
}

字段说明:

  1. Logstash 会给事件添加一些额外信息。最重要的就是 @timestamp,用来标记事件的发生时间。因为这个字段涉及到 Logstash 的内部流转,所以必须是一个 joda对象,
    如果你尝试自己给一个字符串字段重命名为 @timestamp 的话,Logstash会直接报错。所以,请使用 filters/date 插件 来管理这个特殊字段。
  2. host 标记事件发生在哪里
  3. type 标记事件的唯一类型
  4. tags 标记事件某方面的属性,是一个数组

小贴士:

每个 logstash 过滤插件,都会有四个方法叫 add_tag , remove_tag ,add_field 和 remove_field 。它们在插件过滤匹配成功时生效。