Input { Plugin name { Setting 1…… Setting 2…….. } }
>Logstash-plugin install Logstash-input-<plugin name>
插件名称和说明 |
beats
从弹性节拍框架中获取日志数据或事件。
|
cloudwatch
从 Amazon Web Services 提供的 API CloudWatch 中提取事件。
|
couchdb_changes
来自使用此插件提供的 couchdb 的 _chages URI 的事件。
|
drupal_dblog
使用启用的DBLog提取drupal的看门狗日志数据。
|
Elasticsearch
检索在 Elasticsearch 集群中执行的查询结果。
|
eventlog
从windows事件日志中获取事件。
|
exec
获取shell命令输出作为Logstash中的输入。
|
file
从输入文件中获取事件。当 Logstash 与输入源一起在本地安装并且可以访问输入源日志时,这很有用。
|
generator
它用于测试目的,它会产生随机事件。
|
github
从 GitHub webhook 捕获事件。
|
graphite
从Graphite监控工具获取指标数据。
|
heartbeat
它也用于测试,它产生类似心跳的事件
|
http
通过两种网络协议收集日志事件,即 http 和 https。
|
http_poller
用于将 HTTP API 输出解码为事件。
|
jdbc
它将 JDBC 事务转换为 Logstash 中的事件。
|
jmx
使用 JMX 从远程 Java 应用程序中提取指标。
|
log4j
通过 TCP 套接字从 Log4j 的 socketAppender 对象捕获事件。
|
rss
到命令行工具的输出作为 Logstash 中的输入事件。
|
tcp
通过 TCP 套接字捕获事件。
|
twitter
从 Twitter 流 API 收集事件。
|
unix
通过 UNIX 套接字收集事件。
|
websocket
通过 websocket 协议捕获事件。
|
xmpp
通过 Jabber/xmpp 协议读取事件。
|
名称 | 默认值 | 描述 |
add_field | {} | 向输入事件追加一个新字段。 |
close_older | 3600 | 上次读取时间(以秒为单位)超过此插件中指定的文件被关闭。 |
codec | "plain" | 用于在进入Logstash管道之前对数据进行解码。 |
delimiter | "\n" | 用于指定换行符。 |
discover_interval | 15 | 它是在指定路径中发现新文件之间的时间间隔(以秒为单位)。 |
enable_metric | true | 用于启用或禁用指定插件的指标报告和收集。 |
exclude | 用于指定文件名或模式,应从输入插件中排除。 | |
Id | 为该插件实例指定唯一标识。 | |
max_open_files | 它指定了Logstash在任何时候的最大输入文件数。 | |
path | 指定文件的路径,它可以包含文件名的模式。 | |
start_position | "end" | 如果需要,可以更改为"开始";最初 Logstash 应该从头开始读取文件,而不仅仅是新的日志事件。 |
start_interval | 1 | 以秒为单位指定时间间隔,之后Logstash会检查修改过的文件。 |
tags | 要添加任何其他信息,例如 Logstash,当任何日志事件未能符合指定的 grok 过滤器时,它会在标签中添加"_grokparsefailure"。 | |
type | 这是一个特殊字段,可以将其添加到输入事件中,它在过滤器和 kibana 中很有用。 |
名称 | 默认值 | 描述 |
add_field | {} | 与文件插件相同,用于在输入事件中附加字段。 |
ca_file | 用于指定SSL证书颁发机构文件的路径。 | |
codec | "plain" | 用于在进入 Logstash 管道之前解码来自 Elasticsearch 的输入事件。 |
docinfo | "false" | 如果想从 Elasticsearch 引擎中提取索引、类型和 id 等附加信息,可以将其更改为 true。 |
docinfo_fields | ["_index", "_type", "_id"] | 可以删除任何不想在 Logstash 输入中出现的字段。 |
enable_metric | true | 用于启用或禁用指定插件的指标报告和收集。 |
hosts | 它用于指定所有弹性搜索引擎的地址,这些引擎将作为该 Logstash 实例的输入源。语法是host:port 或IP:port。 | |
Id | 它用于为该特定输入插件实例提供唯一标识号。 | |
index | "logstash-*" | 它用于指定索引名称或模式,Logstash 将监视 Logstash 以进行输入。 |
password | 用于身份验证。 | |
query | "{ \"sort\": [ \"_doc\" ] }" | 查询执行。 |
ssl | 1 | 启用或禁用安全套接字层。 |
tags | 在输入事件中添加任何附加信息。 | |
type | 它用于对输入表单进行分类,以便在后续阶段轻松搜索所有输入事件。 | |
user | 出于真实目的。 |
名称 | 默认值 | 描述 |
add_field | {} | 与文件插件一样,用于在输入事件中附加一个字段 |
codec | "plain" | 用于解码来自windows的输入事件;在进入 Logstash 管道之前 |
logfile | ["Application", "Security", "System"] | 输入日志文件中所需的事件 |
interval | 1000 | 以毫秒为单位,定义了两次连续检查新事件日志的间隔 |
tags | 在输入事件中添加任何附加信息 | |
type | 用于将特定插件的输入表单分类为给定类型,以便在后期阶段轻松搜索所有输入事件 |
名称 | 默认值 | 描述 |
add_field | {} | 与文件插件一样,用于在输入事件中附加一个字段 |
codec | "plain" | 用于解码来自windows的输入事件;在进入 Logstash 管道之前 |
consumer_key | 它包含 Twitter 应用程序的消费者密钥。有关更多信息,请访问 https://dev.twitter.com/apps/new | |
consumer_secret | 它包含 Twitter 应用程序的消费者密钥。有关更多信息,请访问 https://dev.twitter.com/apps/new | |
enable_metric | true | 用于启用或禁用该插件实例的报告和指标收集 |
follows |
它指定用逗号分隔的用户ID,LogStash 会检查这些用户在Twitter 中的状态。
有关更多信息,请访问
https://dev.twitter.com
|
|
full_tweet | false | 如果你想让 Logstash 读取从 twitter API 返回的完整对象,你可以将其更改为 true |
id | 用于为该特定输入插件实例提供唯一标识号 | |
ignore_retweets | false | 可以更改设置为 true 以忽略输入推特提要中的转推 |
keywords | 这是一组关键字,需要在 twitters 输入源中进行跟踪 | |
language | 它定义了 LogStash 所需的推文语言,来自输入推特提要。这是一个标识符数组,它定义了 Twitter 中的特定语言 | |
locations | 根据指定的位置从输入源中过滤掉推文。这是一个数组,其中包含位置的经度和纬度 | |
oauth_token | 这是一个必填字段,其中包含用户 oauth 令牌。有关更多信息,请访问以下链接 https://dev.twitter.com/apps | |
oauth_token_secret | 这是一个必填字段,其中包含用户 oauth 秘密令牌。有关更多信息,请访问以下链接 https://dev.twitter.com/apps | |
tags | 在输入事件中添加任何附加信息 | |
type | 用于将特定插件的输入表单分类为给定类型,以便在后期阶段轻松搜索所有输入事件 |
名称 | 默认值 | 描述 |
add_field | {} | 与文件插件一样,用于在输入事件中附加一个字段 |
codec | "plain" | 用于解码来自windows的输入事件;在进入 Logstash 管道之前 |
enable_metric | true | 用于启用或禁用该插件实例的报告和指标收集 |
host | "0.0.0.0" | 客户端依赖的服务器操作系统地址 |
id | 它包含 Twitter 应用程序的消费者密钥 | |
mode | "server" | 用于指定输入源是服务器还是客户端。 |
port | 它定义了端口号 | |
ssl_cert | 用于指定SSL证书的路径 | |
ssl_enable | false | 启用或禁用 SSL |
ssl_key | 指定SSL密钥文件的路径 | |
tags | 在输入事件中添加任何附加信息 | |
type | 用于将特定插件的输入表单分类为给定类型,以便在后期阶段轻松搜索所有输入事件 |
output { Plugin name { Setting 1…… Setting 2…….. } }
>logstash-plugin install logstash-output-<plugin name>
插件名称和说明 |
CloudWatch
此插件用于将聚合指标数据发送到亚马逊网络服务的 CloudWatch。
|
csv
用于以逗号分隔的方式写入输出事件。
|
Elasticsearch
用于存储Elasticsearch索引中的输出日志。
|
email
它用于在生成输出时发送通知电子邮件。用户可以在电子邮件中添加有关输出的信息。
|
exec
用于运行匹配输出事件的命令。
|
ganglia
它把指标扭曲到了 Gangila 的 gmond。
|
gelf
用于以 GELF 格式为 Graylog2 生成输出。
|
google_bigquery
它将事件输出到 Google BigQuery。
|
google_cloud_storage
它将输出事件存储到 Google Cloud Storage。
|
graphite
用于将输出事件存储到Graphite。
|
graphtastic
用于在 Windows 上编写输出指标。
|
hipchat
用于存储输出日志事件到HipChat。
|
http
用于将输出日志事件发送到 http 或 https 端点。
|
influxdb
用于在InfluxDB中存储输出事件。
|
irc
用于将输出事件写入irc。
|
mongodb
它将输出数据存储在MongoDB中。
|
nagios
用于将被动检查结果通知Nagios。
|
nagios_nsca
用于通过NSCA协议将被动检查结果通知Nagios。
|
opentsdb
它将 Logstash 输出事件存储到 OpenTSDB。
|
pipe
它将输出事件流式传输到另一个程序的标准输入。
|
rackspace
用于将输出的日志事件发送到Rackspace Cloud的Queue服务。
|
redis
它使用rpush命令将输出的日志数据发送到Redis队列。
|
riak
用于将输出事件存储到Riak分布式键/值对中。
|
s3
它将输出日志数据存储到 Amazon Simple Storage Service。
|
sns
用于将输出事件发送到亚马逊的简单通知服务。
|
solr_http
它在 Solr 中索引和存储输出日志数据。
|
sps
用于将事件发送到 AWS 的 Simple Queue Service。
|
statsd
用于将指标数据传送到 statsd 网络守护进程。
|
stdout
用于在 CLI 的标准输出上显示输出事件,如命令提示符。
|
syslog
用于将输出事件发送到系统日志服务器。
|
tcp
用于将输出事件发送到TCP socket。
|
udp
用于通过UDP推送输出事件。
|
websocket
用于通过WebSocket协议推送输出事件。
|
xmpp
用于通过XMPP协议推送输出事件。
|
名称 | 默认值 | 描述 |
action | index | 用于定义在 Elasticsearch 引擎中执行的动作。此设置的其他值是删除、创建、更新等。 |
cacert | 包含.cer 或.pem 文件的路径,用于服务器的证书验证。 | |
codec | "plain" | 它用于在将输出日志数据发送到目标源之前对其进行编码。 |
doc_as_upset | false | 此设置用于更新操作的情况。如果在输出插件中未指定文档 id,它会在 Elasticsearch 引擎中创建一个文档。 |
document_type | 用于在同一个文档类型中存储同类型的事件。如果未指定,则使用相同的事件类型。 | |
flush_size | 500 | 用于提高Elasticsearch中批量上传的性能 |
hosts | ["127.0.0.1"] | 输出日志数据的目标地址数组 |
idle_flush_time | 1 | 它定义了两次flush之间的时间限制(秒),Logstash强制在此设置中指定的时间限制后刷新 |
index | "logstash-%{+YYYY.MM.dd}" | 用于指定Elasticsearch引擎的索引 |
manage_templpate | true | 用于在Elasticsearch中应用默认模板 |
parent | nil | 用于指定Elasticsearch中父文档的id |
password | 用于对Elasticsearch中安全集群的请求进行身份验证 | |
path | 用于指定Elasticsearch的HTTP路径。 | |
pipeline | 无 | 用于设置摄取管道,用户希望为一个事件执行 |
proxy | 用于指定HTTP代理 | |
retry_initial_interval | 2 | 用于设置批量重试之间的初始时间间隔(秒)。每次重试后都会加倍,直到达到 retry_max_interval |
retry_max_interval | 64 | 用于设置retry_initial_interval的最大时间间隔 |
retry_on_conflict | 1 | Elasticsearch 更新文档的重试次数 |
ssl | 启用或禁用保护到 Elasticsearch 的 SSL/TLS | |
template | 包含自定义模板在Elasticsearch中的路径 | |
template_name | "logstash" | 这用于在 Elasticsearch 中命名模板 |
timeout | 60 | 是对 Elasticsearch 的网络请求超时 |
upsert | "" | 它更新文档,或者如果 document_id 不存在,它会在 Elasticsearch 中创建一个新文档 |
user | 它包含在安全的 Elasticsearch 集群中对 Logstash 请求进行身份验证的用户 |
名称 | 默认值 | 描述 |
address | "localhost" | 是邮件服务器地址 |
attachments | [] | 它包含附件的名称和位置 |
body | "" | 它包含电子邮件正文,应该是纯文本 |
cc | 它包含以逗号分隔的电子邮件地址,用于电子邮件的抄送 | |
codec | "plain" | 用于在将输出日志数据发送到目标源之前对其进行编码。 |
contenttype | "text/html; charset = UTF-8" | 用于邮件的内容类型 |
debug | false | 用于在调试模式下执行邮件中继 |
domain | "localhost" | 用于设置发送邮件的域 |
from | "logstash.alert@nowhere.com" | 用于指定发件人的电子邮件地址 |
htmlbody | "" | 用于指定html格式的邮件正文 |
password | 用于与邮件服务器进行身份验证 | |
port | 25 | 用于定义与邮件服务器通信的端口 |
replyto | 用于指定email的reply-to字段的email id | |
subject | "" | 它包含电子邮件的主题行 |
use_tls | false | 启用或禁用与邮件服务器通信的 TSL |
username | Is 包含与服务器进行身份验证的用户名 | |
via | "smtp" | 定义了Logstash发送邮件的方法 |
名称 | 默认值 | 描述 |
automatic_retries | 1 | 用于设置logstash重试http请求的次数 |
cacert | 它包含服务器证书验证的文件路径 | |
codec | "plain" | 用于在将输出日志数据发送到目标源之前对其进行编码。 |
content_type | 我指定对目的服务器的http请求的内容类型 | |
cookies | true | 用于启用或禁用cookies |
format | "json" | 用于设置http请求体的格式 |
标题 | 包含http头信息 | |
http_method | "" | 用于指定logstash在请求中使用的http方法,取值可以是"put"、"post"、"patch"、"delete"、"get"、"head" |
request_timeout | 60 | 用于与邮件服务器进行身份验证 |
url | 此插件必须设置指定 http 或 https 端点 |
名称 | 默认值 | 描述 |
codec | "plain" | 它用于在将输出日志数据发送到目标源之前对其进行编码。 |
workers | 1 | 用于指定输出的worker数量 |
名称 | 默认值 | 描述 |
codec | "plain" | 用于在将输出日志数据发送到目标源之前对其进行编码。 |
count | {} | 用于定义要在指标中使用的计数 |
decrement | [] | 用于指定减量指标名称 |
host | "本地主机" | 包含statsd服务器地址 |
increment | [] | 用于指定增量指标名称 |
port | 8125 | 包含statsd服务器的端口 |
sample_rate | 1 | 用于指定metric的采样率 |
sender | "%{host}" | 指定发件人姓名 |
set | {} | 用于指定一个集合度量 |
timing | {} | 用于指定时间度量 |
workers | 1 | 用于指定输出的worker数量 |
filter { Plugin name { Setting 1…… Setting 2…….. } }
>logstash-plugin install logstash-filter-<plugin name>
插件名称和说明 |
aggregate
这个插件从同类型的各种事件中收集或聚合数据,并在最终事件中处理它们
|
alter
它允许用户更改日志事件的字段,这些事件过滤器不处理
|
anonymize
用于用一致的hash替换字段的值
|
cipher
用于在将输出事件存储到目标源之前对其进行加密
|
clone
用于在Logstash中创建输出事件的副本
|
collate
按时间或计数合并来自不同日志的事件
|
csv
这个插件根据分隔符解析输入日志中的数据
|
date
它从事件中的字段中解析日期并将其设置为事件的时间戳
|
dissect
这个插件可以帮助用户从非结构化数据中提取字段,并使grok过滤器可以轻松正确地解析它们
|
drop
用于丢弃所有相同类型或任何其他相似的事件
|
elapsed
用于计算开始和结束事件之间的时间
|
Elasticsearch
用于将之前Elasticsearch中存在的日志事件的字段复制到Logstash中的当前字段
|
extractnumbers
用于从日志事件中的字符串中提取数字
|
geoip
它在事件中添加一个字段,其中包含日志事件中存在的IP位置的纬度和经度
|
grok
常用的过滤器插件,解析事件获取字段
|
i18n
它从日志事件中的一个字段中删除特殊字符
|
json
用于在事件或事件的特定字段中创建结构化的Json对象
|
kv
这个插件在日志数据中配对键值对很有用
|
metrics
用于聚合指标,例如计算每个事件的持续时间
|
multiline
它也是常用的过滤器插件之一,它可以帮助用户将多行日志数据转换为单个事件。
|
mutate
此插件用于重命名、删除、替换和修改事件中的字段
|
range
用于根据预期范围和范围内的字符串长度检查事件中字段的数值。
|
ruby
用于运行任意Ruby代码
|
sleep
这使 Logstash 休眠指定的时间
|
split
它用于拆分事件的一个字段并将所有拆分的值放在该事件的克隆中
|
xml
用于通过解析日志中存在的 XML 数据来创建事件
|
插件名称和说明 |
avro
此插件将 Logstash 事件编码序列化为 avro 数据或将 avro 记录解码为 Logstash 事件
|
cloudfront
此插件从 AWS cloudfront 读取编码数据
|
cloudtrail
这个插件用于从AWS cloudtrail读取数据
|
collectd
这从名为 collect over UDP 的二进制协议读取数据
|
compress_spooler
用于将Logstash中的日志事件压缩成spooled batches
|
dots
通过为每个事件设置一个点到标准输出来使用性能跟踪
|
es_bulk
用于将Elasticsearch的批量数据转换成包含Elasticsearch元数据的Logstash事件
|
graphite
这个编解码器从graphite中读取数据到events中,并将event转化为graphite格式的记录
|
gzip_lines
此插件用于处理 gzip 编码数据
|
json
这用于将 Json 数组中的单个元素转换为单个 Logstash 事件
|
json_lines
用于处理带换行符的Json数据
|
line
它的插件会在一个live中读写事件,这意味着在换行符之后会有一个新的事件
|
multiline
用于将多行日志数据转换为单个事件
|
netflow
该插件用于将nertflow v5/v9数据转换为logstash事件
|
nmap
将nmap结果数据解析成XML格式
|
plain
读取没有分隔符的文本
|
rubydebug
这个插件将使用 Ruby Awesome 打印库编写输出 Logstash 事件
|
>logstash-plugin generate--type filter--name myfilter--path c:/tpwork/logstash/lib
C:\tpwork\logstash\lib\logstash-filter-myfilter\lib\logstash\filters\myfilter.rb
gem "logstash-filter-myfilter",:path => "C:/tpwork/logstash/lib/logstash-filter-myfilter"
>logstash-plugin install--no-verify
input { file { path => "C:/tpwork/logstash/bin/log/input1.log" } } filter { grok { match => [ "message", "%{LOGLEVEL:loglevel}-%{NOTSPACE:taskid}- %{NOTSPACE:logger}-%{WORD:label}(-%{INT:duration:int})?" ] } myfilter{} } output { file { path => "C:/tpwork/logstash/bin/log/output1.log" codec => rubydebug } }
>logstash –f logsatsh.conf
INFO-48566-TRANSACTION_START-start
{ "path" => "C:/tpwork/logstash/bin/log/input.log", "@timestamp" => 2017-01-07T06:25:25.484Z, "loglevel" => "INFO", "logger" => "TRANSACTION_END", "@version" => "1", "host" => "Dell-PC", "label" => "end", "message" => "Hi, You are learning this on lidihuo.com", "taskid" => "48566", "tags" => [] }