Logstash 02
插件列表
查看所有的输入插件
logstash-plugin list --group input
直接 logstash-plugin list 会列举所有的 logstash 插件
准备工作
修改 /usr/share/logstash-7.14.0/config/logstash.yml, 具体路径根据 Logstash 安装目录修改
也可以在启动 Logstash 时指定 --config.reload.automatic
输入插件
Heartbeat input plugin
新建配置文件 pipeline.conf, 内容如下
input {
heartbeat {
interval => 5
type => "heartbeat"
}
}
# filter {
#
# }
output {
stdout { }
}
如果有多个输入, heartbeat 中的 type 可以标识该条输入来自?heartbeat
运行 Logstash
logstash -f pipeline.conf
该插件每间隔一段时间就发送一个 “ok”
TCP input plugin
开启一个 TCP 侦听接口, 接收 TCP 客户端的输入
修改 pipeline.conf 文件:
input {
tcp {
port => 9000
}
}
# filter {
#
# }
output {
stdout { }
}
通过 netcat 工具发送 TCP 报文
echo "TCP" | nc 127.0.0.1 9000
Logstash 输出:
File input plugin
通过读取本地文件作为输入
再次修改 pipeline.conf 文件:
input {
file {
path => "/mnt/g/*.txt"
start_position => "beginning"
sincedb_path => "/dev/null"
codec => json
}
}
output {
stdout { }
}
-
start_position 表示从头开始读取文件, 默认从末尾开始读取, 也就是默认仅读取新增的内容(日志一般追加到末尾) -
sincedb 文件记录 file 插件上一次读取的位置, 这里为了方便测试, 将 sincedb 路径设为空
默认情况下, 文件的每一行对应一个输入事件(delimiter 默认为 “\n”)
在 /mnt/g 目录下有一个 Test.txt 文件, 内容如下
{"name": "Hoss", "age": 10}
{"name": "JHX", "age": 100}
注意末尾新增一空行
Logstash 输出:
由于 input 部分使用了 codec, 输出中添加了 “name” 和 “age” 字段
Exec input plugin
在本地定期执行一个 shell 命令, 将命令的输出作为 Logstash 的输入
修改 pipeline.conf 文件(根据 Logstash 安装位置修改 command):
input {
exec {
command => "du -sh /usr/local/logstash-7.14.0"
interval => 60
}
}
output {
stdout { }
}
每分钟获取一次 Logstash 安装目录的大小
Logstash 输出:
|