【问题标题】:Logstash and Flowdock integrationLogstash 和 Flowdock 集成
【发布时间】:2014-05-23 01:42:48
【问题描述】:

我正在尝试将一部分消息作为 Logstash 的输出发送到 Flowdock。不幸的是,由于this issue,我基本上没有得到任何关于为什么我的消息没有成功的回复。剥离到一个基本示例,即使我将输出配置更改为以下内容,我也会看到问题:

output {
  http {
    http_method => "post"
    url => "https://api.flowdock.com/v1/messages/team_inbox/API_TOKEN"
    format => "message"
    content_type => "application/json"
    message => "{\"source\":\"logstash\",\"from_address\":\"me@example.com\", \"subject\":\"Log Message\", \"content\":\"test\"}"
  }
}

不过,我知道该输出通常有效,因为如果我将以下内容添加到输出中,我会看到写入文件的日志消息:

file {
  path => "/mnt/test.log"
}

我也知道我发送给 Flowdock 的 http 消息应该可以正常工作

curl -X POST https://api.flowdock.com/v1/messages/team_inbox/API_TOKEN -d "{\"source\":\"logstash\",\"from_address\":\"me@example.com\",\"subject\":\"Log Message\",\"content\":\"test\"}" -H "Content-Type: application/json"

导致将消息发布到团队收件箱。

是否有任何方法可以解决此问题以确定我从 logstash 输出失败的原因?

【问题讨论】:

    标签: http rest https logstash flowdock


    【解决方案1】:

    我将首先将请求从 Logstash 发送到仅输出接收到的请求的服务,例如 RequestBin,从而开始调试问题。

    类似:

    output {
      http {
        http_method => "post"
        url => "http://requestb.in/<created_id>"
        format => "message"
        content_type => "application/json"
        message => "{\"source\":\"logstash\",\"from_address\":\"me@example.com\",\"subject\":\"Log Message\", \"content\":\"test\"}"
      }
    }
    

    在确保 Logstash 发出的请求正确后,获取该请求(最好是准确的数据)并尝试使用 curl 或其他方式将其发送到 Flowdock。

    此时,您应该能够说明请求在任一端失败的原因并相应地通知相关方(即向https://logstash.jira.com/secure/Dashboard.jspa 开票或向 support@flowdock.com 发送电子邮件)。

    【讨论】:

    • 谢谢,这帮助我找到了问题。结果是由于logstash中的known bug以及它如何处理引号。在看到它发送的实际请求后立即变得显而易见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-18
    • 1970-01-01
    • 2016-03-09
    • 2019-12-05
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多