Logstash和Flowdock集成

时间:2014-04-09 17:18:52

标签: http rest https logstash flowdock

我正在尝试将一部分消息发送到Flowdock作为Logstash的输出。不幸的是,由于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输出失败的原因?

1 个答案:

答案 0 :(得分: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)。