Twitter 输入插件

编辑

对于其他版本,请参阅版本化插件文档

获取帮助

编辑

关于插件的问题,请在Discuss论坛中开启一个主题。对于错误或功能请求,请在Github中开启一个问题。有关 Elastic 支持的插件列表,请查阅Elastic 支持矩阵

描述

编辑

从 Twitter 流媒体 API 提取事件。

示例

    input {
      twitter {
        consumer_key => '...'
        consumer_secret => '...'
        oauth_token => '...'
        oauth_token_secret => '...'
        keywords => [ 'logstash' ]
      }
    }

生成的示例事件字段

    {
        "@timestamp" => 2019-09-23T16:41:53.000Z,
        "message" => "I forgot how fun it is to write @logstash configs !!! Thank you @jordansissel and @elastic !!!"
        "user" => "missnebun",
        "in-reply-to" => nil,
        "retweeted" => false,
        "source" => "http://twitter.com/missnebun/status/1176174859833004037",
        "user_mentions" => [
            { "screen_name"=>"logstash", "name"=>"logstash", "id"=>217155915 },
            { "screen_name"=>"jordansissel", "name"=>"@jordansissel", "id"=>15782607 },
            { "screen_name"=>"elastic", "name"=>"Elastic", "id"=>84512601 }],
        "symbols" => [],
        "hashtags" => [],
        "client" => "<a href=\"http://twitter.com/download/iphone\" rel=\"nofollow\">Twitter for iPhone</a>"
    }

与 Elastic Common Schema (ECS) 的兼容性

编辑

Twitter 流非常具体,不容易映射到Elastic Common Schema (ECS)。我们建议在启用ECS 兼容模式时设置一个target。当未设置target时,插件会在日志中发出警告。

Twitter 输入配置选项

编辑

此插件支持以下配置选项以及稍后描述的通用选项

另请参阅通用选项,了解所有输入插件支持的选项列表。

 

consumer_key

编辑
  • 这是必需的设置。
  • 值类型为string
  • 此设置没有默认值。

你的 Twitter 应用程序的 consumer key

不知道这是什么?你需要在 Twitter 上创建一个“应用程序”,请参阅此网址:https://dev.twitter.com/apps/new

consumer_secret

编辑
  • 这是必需的设置。
  • 值类型为password
  • 此设置没有默认值。

你的 Twitter 应用程序的 consumer secret

如果你没有这些,你可以通过在 Twitter 上注册一个新应用程序来创建一个:https://dev.twitter.com/apps/new

ecs_compatibility

编辑
  • 值类型为string
  • 支持的值有

    • disabled:不使用 ECS 兼容的字段名称(字段可能设置在事件的根级别)
    • v1, v8:避免可能与 Elastic Common Schema 冲突的字段名称(例如,Twitter 特定的属性)
  • 默认值取决于正在运行的 Logstash 版本

    • 当 Logstash 提供 pipeline.ecs_compatibility 设置时,其值用作默认值
    • 否则,默认值为disabled

控制此插件与Elastic Common Schema (ECS)的兼容性。

follows

编辑
  • 值类型为array
  • 此设置没有默认值。

一个以逗号分隔的用户 ID 列表,指示要返回 Twitter 流中状态的用户。有关更多详细信息,请参阅https://developer.twitter.com/en/docs/tweets/filter-realtime/guides/basic-stream-parameters

full_tweet

编辑
  • 值类型为boolean
  • 默认值为false

记录 Twitter 流媒体 API 提供给我们的完整推文对象。

ignore_retweets

编辑
  • 值类型为boolean
  • 默认值为false

允许你忽略来自 Twitter API 的转发。默认值 => false

keywords

编辑
  • 值类型为array
  • 此设置没有默认值。

在 Twitter 流中跟踪的任何关键字。对于多个关键字,请使用语法 ["foo", "bar"]。每个列出的关键字字符串之间存在逻辑 OR,并且每个关键字字符串中以空格分隔的单词之间存在逻辑 AND。有关更多详细信息,请参阅https://dev.twitter.com/streaming/overview/request-parameters#track

不支持通配符“*”选项。要提取所有推文的示例流,建议使用 use_samples 选项。

languages

编辑
  • 值类型为array
  • 此设置没有默认值。

与 Twitter 高级搜索页面上列出的任何语言对应的 BCP 47 语言标识符列表,将仅返回已检测到使用指定语言撰写的推文。

locations

编辑
  • 值类型为string
  • 此设置没有默认值。

一个以逗号分隔的经度、纬度对列表,指定一组用于过滤推文的边界框。有关更多详细信息,请参阅https://dev.twitter.com/streaming/overview/request-parameters#locations

oauth_token

编辑
  • 这是必需的设置。
  • 值类型为string
  • 此设置没有默认值。

你的 oauth 令牌。

要获取此令牌,请使用你想要的任何帐户登录 Twitter,然后访问https://dev.twitter.com/apps

单击你的应用程序(与 consumer_key 和 consumer_secret 设置一起使用)然后在页面底部,单击“创建我的访问令牌”,这将创建一个绑定到你的帐户和该应用程序的 oauth 令牌和密钥。

oauth_token_secret

编辑
  • 这是必需的设置。
  • 值类型为password
  • 此设置没有默认值。

你的 oauth 令牌密钥。

要获取此令牌,请使用你想要的任何帐户登录 Twitter,然后访问https://dev.twitter.com/apps

单击你的应用程序(与 consumer_key 和 consumer_secret 设置一起使用)然后在页面底部,单击“创建我的访问令牌”,这将创建一个绑定到你的帐户和该应用程序的 oauth 令牌和密钥。

proxy_address

编辑
  • 值类型为string
  • 默认值为"127.0.0.1"

代理的位置,默认情况下与运行此 LS 实例的机器相同

proxy_port

编辑
  • 值类型为number
  • 默认值为3128

代理正在侦听的端口,默认值为 3128 (squid)

rate_limit_reset_in

编辑
  • 值类型为number
  • 默认值为300

当 Twitter 响应 429 TooManyRequests 时,在重试连接之前等待的秒数。在某些情况下,x-rate-limit-reset 标头未在响应中设置,并且 <error>.rate_limit.reset_in 为 nil。如果发生这种情况,我们将使用此处指定的整数。默认值为 5 分钟。

use_proxy

编辑
  • 值类型为boolean
  • 默认值为false

何时使用代理来处理连接

use_samples

编辑
  • 值类型为boolean
  • 默认值为false

返回所有公共状态的一小部分随机样本。默认访问级别返回的推文是相同的,因此如果两个不同的客户端连接到此端点,它们将看到相同的推文。如果设置为 true,则将忽略 keywords、follows、locations 和 languages 选项。默认值 => false

target

编辑
  • 值类型为string
  • 此设置没有默认值。

如果没有target,则事件是在根级别从推文创建的。当target设置为字段引用时,推文数据将放置在目标字段中。

当强制执行 ECS 等下游架构时,此选项对于避免填充未知字段非常有用。

通用选项

编辑

所有输入插件都支持这些配置选项

设置 输入类型 必需

add_field

hash

codec

codec

enable_metric

boolean

id

string

tags

array

type

string

add_field

编辑
  • 值类型为hash
  • 默认值为{}

向事件添加字段

codec

编辑
  • 值类型为codec
  • 默认值为"plain"

用于输入数据的编解码器。输入编解码器是一种方便的方法,可以在数据进入输入之前解码数据,而无需在 Logstash 管道中使用单独的过滤器。

enable_metric

编辑
  • 值类型为boolean
  • 默认值为true

默认情况下禁用或启用此特定插件实例的指标日志记录,我们会记录所有可以记录的指标,但是你可以禁用特定插件的指标收集。

  • 值类型为string
  • 此设置没有默认值。

向插件配置添加唯一ID。如果未指定 ID,Logstash 将生成一个 ID。强烈建议你在配置中设置此 ID。当你具有两个或多个相同类型的插件时,这特别有用,例如,如果你有两个 Twitter 输入。在这种情况下,添加一个命名的 ID 将在使用监视 API 时帮助监视 Logstash。

input {
  twitter {
    id => "my_plugin_id"
  }
}

id字段中的变量替换仅支持环境变量,并且不支持使用来自秘密存储的值。

tags

编辑
  • 值类型为array
  • 此设置没有默认值。

向你的事件添加任意数量的标签。

这可以帮助稍后的处理。

type

编辑
  • 值类型为string
  • 此设置没有默认值。

向此输入处理的所有事件添加type字段。

类型主要用于过滤器激活。

类型作为事件本身的一部分存储,因此你也可以使用该类型在 Kibana 中进行搜索。

如果你尝试在已具有类型的事件上设置类型(例如,当你将事件从托运人发送到索引器时),则新的输入将不会覆盖现有类型。在托运人处设置的类型在该事件的生命周期内保留,即使发送到另一个 Logstash 服务器也是如此。