我正试图将消息的子集作为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输出失败的原因吗?
我会通过首先将请求从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)。