【问题标题】:logstash json post outputlogstash json 后输出
【发布时间】:2016-12-15 10:18:20
【问题描述】:

我目前正在尝试使用 tcp 输入向 Logstash 发布 JavaScript。

JavaScript 帖子

 xhr = new XMLHttpRequest();
 var url = "http://localhost:5043";
 xhr.open("POST", url, true);
 xhr.setRequestHeader("Content-type", "application/json");
 var data = JSON.stringify({"test" : hello});
 xhr.send(data);

Logstash 配置文件

input {
    tcp {
        port => 5043
    }
}

filter{
}

output {
  stdout  { 
        codec => rubydebug
    }
}

控制台输出

{
       "message" => "OPTIONS / HTTP/1.1\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.611Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Host: localhost:5043\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.620Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Connection: keep-alive\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.621Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Access-Control-Request-Method: POST\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.622Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Origin: http://atgdev11\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.623Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.626Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Access-Control-Request-Headers: content-type\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.634Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Accept: */*\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.651Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Referer: http://test/Welcome.jsp\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.653Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Accept-Encoding: gzip, deflate, sdch, br\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.719Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}
{
       "message" => "Accept-Language: en-US,en;q=0.8\r",
      "@version" => "1",
    "@timestamp" => "2016-12-15T09:58:54.720Z",
          "host" => "0:0:0:0:0:0:0:1",
          "port" => 55867,

}

我似乎看不到我的 json 数据 {"test" : hello} 传递到 logstash 我的 logstash.config 文件是否有问题?请帮忙

【问题讨论】:

  • {"test" : hello} 为什么没有" 你好?
  • 我试图让这个简单易懂。我正在使用 JavaScript 提取数据并将其存储在一个名为“hello”的变量中。我不想只输出那个字符串“hello”,它是一个包含数据的变量。
  • 好的。我只是在问我唯一能想到的。

标签: logstash elastic-stack logstash-grok logstash-configuration


【解决方案1】:

实际上它们是在以下行@JavaScript Post部分中发现的javascript错误

var data = JSON.stringify({"test" : hello});

替换为

var data = JSON.stringify({"test" : "hello"});

i,e 双引号丢失

以上更改将为您提供所需的结果

我已经通过以下方式进行了测试

JavaScript 帖子

<!DOCTYPE html>
<html>
<title>Web Page Design</title>

<script>
function sayHello() {
 var  xhr = new XMLHttpRequest();
 var url = "http://localhost:5043";
 xhr.open("POST", url, true);
 xhr.setRequestHeader("Content-type", "application/json");
 var data = JSON.stringify({"test" : "hello"});
 xhr.send(data);
}
sayHello();
</script>

<body>
</body>
</html>

Logstash 配置文件

input {
  http {
    port => 5043
    response_headers => {
        "Access-Control-Allow-Origin" => "*"
        "Content-Type" => "text/plain"
        "Access-Control-Allow-Headers" => "Origin, X-Requested-With, Content-Type, 
        Accept"
    }   
    }
}

filter {
}

output {
  stdout  { 
        codec => rubydebug
    }
}

控制台输出

{
          "host" => "0:0:0:0:0:0:0:1",
    "@timestamp" => 2018-10-08T11:01:34.395Z,
       "headers" => {
             "http_user_agent" => "Mozilla/5.0 (Windows NT 6.1; Win64; x64) Appl
eWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36",
              "content_length" => "17",
                "request_path" => "/",
              "request_method" => "POST",
                 "http_origin" => "null",
                "content_type" => "application/json",
        "http_accept_encoding" => "gzip, deflate, br",
                   "http_host" => "localhost:5043",
                 "request_uri" => "/",
        "http_accept_language" => "en-US,en;q=0.9",
                 "http_accept" => "*/*",
             "http_connection" => "keep-alive",
                "http_version" => "HTTP/1.1"
    },
          "test" => "hello",#### here is you input data in json format #####
      "@version" => "1"
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多