返回 导航

大数据

hangge.com

Logstash日志收集工具使用详解2(样例1:接收键盘输入并输出至控制台)

作者:hangge | 2024-03-28 09:15

二、接收键盘输入并输出至控制台

1,功能说明

    该样例中,Input 使用 stdin 插件,Output 使用 stdout 插件,这样就可以接收键盘输入的数据,然后将其直接输出到控制台上。

2,启动程序

(1)进入 Logstash 安装目录后,执行如下命令:
通过 -e 参数指定使用的插件配置信息:
  • input { } 内部指定了 stdin 插件。对于 stdin 插件可以添加一些内置支持的参数,把需要添加的参数放在 stdin 后面的括号内即可。
  • output { } 内部指定了 stdout 插件。对于 stdout 插件可以添加一些内置支持的参数,把需要添加的参数放在 stdout 后面的括号内即可。
bin/logstash -e 'input { stdin { } } output{ stdout {} }'

(2)稍等片刻,控制台如果输出如下日志信息,则说明 Logstash 程序启动成功了。

3,测试 logstash

(1)我们直接在命令行中输入如下信息,然后回车:
hello hangge.com

(2)即可看到输出如下结果信息:
说明:我们会发现输出的数据是 JSON 格式的,其中包含 4 个字段,我们输入的数据保存在 message 字段中,其余几个字段是 Logstash 默认产生的,这就是 Logstash 默认的数据输出格式。

附一:使用配置文件

(1)如果配置比较多、比较复杂,全部写在启动命令中不仅不清晰,也很容易出错。Logstash 也可像 Flume 一样把这些配置保存到配置文件中。首先我们创建一个配置文件:
vi stdin-stdout.conf

(2)配置文件的内容如下:
input{
  stdin{ }
}

output{
  stdout{ }
}

(3)然后在“bin/logstash”脚本后面通过 -f 参数指定这个配置文件的位置即可:
bin/logstash -f stdin-stdout.conf

附二:stdin 插件参数

1,参数说明

(1)stdin 插件支持的参数包括 add_fieldcodecenable_metricidtagstype。这些参数都不是必填参数,我们在使用时可以省略它们。

(2)add_field 参数表示可以向原始数据中添加一个字段,该参数的值是 hash 类型的。查阅官网资料可知,hash 类型其实就是 key-value 这种格式的数据。

2,add_field 参数使用样例

(1)首先我们创建一个配置文件:
vi stdin-stdout.conf

(2)配置文件的内容如下,stdin 插件会向原始数据中添加一个字段 data_type,值为 test,表示 Logstash 采集的这份数据是输入的测试数据。
input{
  stdin{
    add_field=>{"data_type"=>"test"}
  }
}

output{
  stdout{ }
}

(2)启动 Logstash
bin/logstash -f stdin-stdout.conf

(4)在 Logstash 启动之后输入“hello hangge.com”,查看输出的数据,发现其中多了一个 data_type 字段,值为 test

附三:stdout 插件参数

1,参数说明

(1)stdout 插件支持的参数包括 codecenable_metricid。这些参数也都不是必填参数。

(2)其中的 codec 参数可以对数据进行格式化,主要用来编码、解码事件,所以它常用在 Input 组件和 Output 组件中。

2,codec 参数使用样例

(1)Logstash 中默认的 codec 参数为 JSON 格式,如果我们想把采集的原始数据保存到第三方存储介质中,则需要修改 codec 参数的值,否则向第三方存储介质中存储的就是一个 JSON 字符串,包含默认的 hostmessage@version@timestamp 字段信息。

(2)下面样例演示了 stdout 插件中 codec 参数的使用。以 plain 为例,plain 主要用于输出普通的纯文本数据。我们可以在 plain 中设置 format 参数,以解析接收到的字符串中的 message 字段的值。首先创建一个配置文件:
vi stdin-stdout-codec.conf

(3)配置文件内容如下:
input{
  stdin{}
}

output{
  stdout{
    codec=> plain{
      format=>"%{message}"
    }
  }
}

(4)启动 Logstash
bin/logstash -f stdin-stdout-codec.conf

(5)启动后会发现,无论我们输入什么内容,输出的结果也是同样的内容:
评论

全部评论(0)

回到顶部