Logstash插件
常用的流行插件:
Input 插件
Filters 插件
Output 插件
Input 插件
流行的Logstash输入插件
file:文件流
文件输入插件从输入的内容中流事件,每个事件都被假定为单行。它会自动检测到旋转的旋转并处理它。它保留了读取的位置,如果正确的话,将自动检测新数据。它以类似的方式阅读:
tail -0f
格式:
tags:
标签表示任意数量的字符串作为一个数组,这些字符串可以稍后用于根据分配给它们的标签过滤和处理事件。
type:
类型字段可用于标记特定类型的事件,这有助于稍后过滤和搜索它们。类型被添加到存储在elasticsearch的文档中,以后可以在Kibana中查看类型字段。例如,我们可以将类型指定为“error_logs”或“info_logs”。
redis:redis实例流
stdin:标准事件流
syslog:网络syslog消息流
ganglia:网络通过udp发送的ganglia数据包
lumberjack:通过lumberjack协议接收事件
eventlog:Windows事件日志
s3:s3 bucket文件事件流
elasticsearch:Elasticsearch集群查询的结果集
过滤插件
流行的Logstash过滤插件
csv:解析CSV文件
格式:
例如:
date:它用于解析来自传入事件的日期字段,并将其用作Logstash时间戳字段,可以稍后用于分析
格式:
drop:删除传入事件中满足匹配筛选条件的所有内容
grok:将日志中非结构化数据或事件解析成结构化
multiline:解析来自单一源的多行数据,作为一个logstash事件
dns:从指定的任何字段中解析一个IP地址
mutate:在事件中重命名、删除、修改和替换字段
格式:
geoip:检索到的IP地址添加地理信息
输出插件
流行的Logstash输出插件
file:输出到文件
e-mail:收到输出时,它会根据某些条件发送电子邮件
elasticsearch:输出到elasticsearch集群,这是Logstash最常见和最推荐的输出
格式:
stdout:标准输出流
redis:事件写入redis队列,并用作许多ELK实现的代理
mongodb:输出到mongodb
kafka:输出到kafka topic
常用的流行插件:
Input 插件
Filters 插件
Output 插件
Input 插件
流行的Logstash输入插件
file:文件流
文件输入插件从输入的内容中流事件,每个事件都被假定为单行。它会自动检测到旋转的旋转并处理它。它保留了读取的位置,如果正确的话,将自动检测新数据。它以类似的方式阅读:
tail -0f
格式:
input {
file {
path => #String (path of the files) (required)
start_position => #String (optional, default "end")
tags => #array (optional)
type => #string (optional)
}
}
tags:
标签表示任意数量的字符串作为一个数组,这些字符串可以稍后用于根据分配给它们的标签过滤和处理事件。
type:
类型字段可用于标记特定类型的事件,这有助于稍后过滤和搜索它们。类型被添加到存储在elasticsearch的文档中,以后可以在Kibana中查看类型字段。例如,我们可以将类型指定为“error_logs”或“info_logs”。
redis:redis实例流
stdin:标准事件流
syslog:网络syslog消息流
ganglia:网络通过udp发送的ganglia数据包
lumberjack:通过lumberjack协议接收事件
eventlog:Windows事件日志
s3:s3 bucket文件事件流
elasticsearch:Elasticsearch集群查询的结果集
过滤插件
流行的Logstash过滤插件
csv:解析CSV文件
格式:
filter {
csv {
columns => #Array of column names.
separator => #String ; default -","
}
}
例如:
filter {
csv {
columns =>
["date_of_record","open","high","low","close","volume","adj_close"
]
separator => ","
}
}
date:它用于解析来自传入事件的日期字段,并将其用作Logstash时间戳字段,可以稍后用于分析
格式:
filter {
date {
match => # array (optional), default: []
target => # string (optional), default: "@timestamp"
timezone => # string (optional)
}
}
drop:删除传入事件中满足匹配筛选条件的所有内容
grok:将日志中非结构化数据或事件解析成结构化
multiline:解析来自单一源的多行数据,作为一个logstash事件
dns:从指定的任何字段中解析一个IP地址
mutate:在事件中重命名、删除、修改和替换字段
格式:
filter {
mutate {
convert => # hash of field and data type (optional,data type should be one of [integer/float/string])
join => # hash of fields to be joined (optional)
lowercase => # array of fields to be converted (optional)
merge => # hash of fields to be merged (optional)
rename => # hash of original and rename field (optional)
replace => # hash of fields to replaced with (optional)
split => # hash of fields to be split (optional)
strip => # array of fields (optional)
uppercase => # array of fields (optional)
}
}
geoip:检索到的IP地址添加地理信息
输出插件
流行的Logstash输出插件
file:输出到文件
e-mail:收到输出时,它会根据某些条件发送电子邮件
elasticsearch:输出到elasticsearch集群,这是Logstash最常见和最推荐的输出
格式:
output {
elasticsearch {
action => # string (optional), default: "index"
cluster => # string (optional)
host => # string (optional)
document_id => # string (optional), default: nil
index => # string (optional), default: "logstash-%{+YYYY.MM.dd
index_type => # string (optional)
port => # string (optional)
protocol => # string, one of ["node", "transport", "http"] (optional)
}
}
stdout:标准输出流
redis:事件写入redis队列,并用作许多ELK实现的代理
mongodb:输出到mongodb
kafka:输出到kafka topic