【问题标题】:Kapacitor .post() HTTP Post to url not sending dataKapacitor .post() HTTP Post 到 url 不发送数据
【发布时间】:2017-09-25 14:50:44
【问题描述】:

我正在使用 kapacitor 通过 HTTP POST 向 URL 发送警报。书面脚本正在访问给定的 url,但它没有向任何给定的 url 发送相关数据。

以下是我的 TICK 脚本。

stream
    |from()
        .measurement('cpu')
    |alert()
        .id('kapacitor/{{ index .Tags "host"}}')
        .message('{{ .ID }} is {{ .Level }} value:{{ index .Fields "value" }}')
        .info(lambda: TRUE)
        .post('http://localhost:1440/alert')
        .post('http://localhost/test.php')

以下是第一个帖子脚本:

var express = require("express");
var app = express();

var moment = require("moment");
var dateTime = moment();

var bodyParser = require("body-parser");
var urlencodedParser = bodyParser.urlencoded({extended:false});
var jsonParser = bodyParser.json();
var port = 1440;

app.post('/alert', jsonParser ,function(request, response){
    console.log(request.body);
    response.send(); 
});

app.listen(port);

console.log('Express App.js listening to port '+port);

以下是第二个帖子脚本:

<?php

    $content = json_encode($_REQUEST);
    echo file_put_contents("/home/mahendra/Documents/tick/highcputick.log", $content);

?>

两个 url 都在获取 emtpy 数据。 Kapacitor 版本为:Kapacitor 1.3.1

以下是 Kapacitor [[httppost]] 配置

[[httppost]]
   endpoint = "NodeJs"
   url = "http://localhost:1440/alert"
#   headers = { Example = "node" }
#   basic-auth = { username = "my-user", password = "my-pass" }

【问题讨论】:

  • 如果这对你有用,有什么更新吗?

标签: influxdb telegraf kapacitor


【解决方案1】:

您实际上需要在滴答脚本上设置端点,例如:

...
.post()
.endpoint('NodeJs')

【讨论】:

    【解决方案2】:

    我在 php - zend 框架中遇到了类似的问题,这就是我解决问题的方法。

    header('Content-Type: application/json');
    $data = json_decode(file_get_contents('php://input'),true);
    

    您的消息详情将在 $data 中。我在这里得到了这个:https://github.com/influxdata/kapacitor/issues/1681

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 1970-01-01
      • 2013-05-12
      • 2020-06-20
      • 2014-06-06
      • 1970-01-01
      相关资源
      最近更新 更多