0

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

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输出为什么失败?

4

1 回答 1

3

我将首先将请求从 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)。

于 2014-04-10T07:18:41.680 回答