logstash json post output

匿名 (未验证) 提交于 2019-12-03 01:46:01

问题:

I am current trying to do a JavaScript post to Logstash by using a tcp input.

JavaScript Post

 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 config file

input {     tcp {         port => 5043     } }  filter{ }  output {   stdout  {          codec => rubydebug     } } 

Output in console

{        "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,  } 

I cant seem to see my json data {"test" : hello} passing into logstash could there be something wrong with my logstash.config file ? Please help

回答1:

Actually their is javascript error found in following line @JavaScript Post section

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

replace with

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

i,e double quotes was missed

Above changes will give u the required result

I have tested in following way

JavaScript Post

<!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 config file

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     } } 

Output in console

{           "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" } 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!