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_field、codec、enable_metric、id、tags 和 type。这些参数都不是必填参数,我们在使用时可以省略它们。
(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 插件支持的参数包括 codec、enable_metric 和 id。这些参数也都不是必填参数。
(2)其中的 codec 参数可以对数据进行格式化,主要用来编码、解码事件,所以它常用在 Input 组件和 Output 组件中。
2,codec 参数使用样例
(1)Logstash 中默认的 codec 参数为 JSON 格式,如果我们想把采集的原始数据保存到第三方存储介质中,则需要修改 codec 参数的值,否则向第三方存储介质中存储的就是一个 JSON 字符串,包含默认的 host、message、@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)