Twitter 输入插件

编辑
  • 插件版本:v4.1.1
  • 发布日期:2023-11-16
  • 更改日志

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

获取帮助

编辑

有关插件的问题,请在 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

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

您的 Twitter 应用程序的消费者密钥

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

consumer_secret

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

您的 Twitter 应用程序的消费者密钥

如果您没有其中之一,可以通过向 Twitter 注册新应用程序来创建一个:https://dev.twitter.com/apps/new

ecs_compatibility

编辑
  • 值类型为 字符串
  • 支持的值为

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

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

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

follows

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

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

full_tweet

编辑

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

ignore_retweets

编辑

允许您忽略来自 Twitter API 的转发。默认 ⇒ false

keywords

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

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

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

languages

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

BCP 47 语言标识符列表,对应于 Twitter 高级搜索页面上列出的任何语言,只会返回已检测为使用指定语言编写的推文。

locations

编辑
  • 值类型为 字符串
  • 此设置没有默认值。

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

oauth_token

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

您的 oauth 令牌。

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

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

oauth_token_secret

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

您的 oauth 令牌密钥。

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

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

proxy_address

编辑
  • 值类型为 字符串
  • 默认值为 "127.0.0.1"

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

proxy_port

编辑
  • 值类型为 数字
  • 默认值为 3128

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

rate_limit_reset_in

编辑
  • 值类型为 数字
  • 默认值为 300

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

use_proxy

编辑

何时使用代理处理连接

use_samples

编辑

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

target

编辑
  • 值类型为 字符串
  • 此设置没有默认值。

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

此选项对于在执行下游模式(例如 ECS)时避免填充未知字段很有用。

通用选项

编辑

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

设置 输入类型 必需

add_field

hash

codec

codec

enable_metric

布尔值

id

字符串

tags

数组

type

字符串

add_field

编辑
  • 值类型为 哈希
  • 默认值为 {}

向事件添加字段

codec

编辑

用于输入数据的编解码器。输入编解码器是在数据进入输入之前对其进行解码的便捷方法,无需在 Logstash 管道中使用单独的过滤器。

enable_metric

编辑

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

  • 值类型为 字符串
  • 此设置没有默认值。

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

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

id 字段中的变量替换仅支持环境变量,不支持使用密钥存储中的值。

tags

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

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

这可以帮助以后进行处理。

type

编辑
  • 值类型为 字符串
  • 此设置没有默认值。

为由该输入处理的所有事件添加一个type字段。

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

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

如果您尝试在已经具有类型的事件上设置类型(例如,当您从发送方将事件发送到索引器时),则新的输入不会覆盖现有类型。即使发送到另一个 Logstash 服务器,在发送方设置的类型也会在事件的整个生命周期中保留。