elasticsearch 处理JSON+;使用logstash和#x2B;拍子,elasticsearch,logstash,kibana,logstash-configuration,elastic-stack,elasticsearch,Logstash,Kibana,Logstash Configuration,Elastic Stack" /> elasticsearch 处理JSON+;使用logstash和#x2B;拍子,elasticsearch,logstash,kibana,logstash-configuration,elastic-stack,elasticsearch,Logstash,Kibana,Logstash Configuration,Elastic Stack" />

elasticsearch 处理JSON+;使用logstash和#x2B;拍子

elasticsearch 处理JSON+;使用logstash和#x2B;拍子,elasticsearch,logstash,kibana,logstash-configuration,elastic-stack,elasticsearch,Logstash,Kibana,Logstash Configuration,Elastic Stack,我试图将一些JSON日志文件(其中包含stacktrace)解析为Logstash,但我认为堆栈跟踪不会让它发生 这是我的日志配置:(我尝试过的众多配置之一) 这就是我正在尝试解决的json类型(它是jasmine的jsonReporter的结果) { “suite1”:{ “id”:“suite1”, “说明”:“创建流程-模拟测试2”, “全名”:“创建流程-模拟测试2”, “失败的预期”:[], “状态”:“已完成”, “规格”:[{ “id”:“spec0”, “说明”:“创建流程后应重

我试图将一些JSON日志文件(其中包含stacktrace)解析为Logstash,但我认为堆栈跟踪不会让它发生

这是我的日志配置:(我尝试过的众多配置之一)

这就是我正在尝试解决的json类型(它是jasmine的jsonReporter的结果)

{
“suite1”:{
“id”:“suite1”,
“说明”:“创建流程-模拟测试2”,
“全名”:“创建流程-模拟测试2”,
“失败的预期”:[],
“状态”:“已完成”,
“规格”:[{
“id”:“spec0”,
“说明”:“创建流程后应重定向到modeler”,
“全名”:“创建流程-模拟测试2应在创建流程后重定向到modeler”,
“失败的预期”:[{
“matcherName”:“toMatch”,
“消息”:“预期”http://localhost:3000/#!/signin'匹配/myDashboard/“,
“堆栈”:“错误:预期失败\n在环境中。(/home/ls/code/ph/app/tests/e2e/create process.e2e.test.js:18:35)\n在/home/ls/code/ph/node\u modules/dragrator/node\u modules/jasminewd2/index.js:95:14\n在[object object object object](/home/ls/code/ph/node_modules/dragrator/node_modules/selenium webdriver/lib/webdriver/promise.js:1654:20)\n在[object object].webdriver.promise.ControlFlow.runEventLoop\n(/home/ls/code/ph/node_modules/dragrator/node_modules/selenium webdriver/lib/webdriver/promise.js:1518:8)\n在[object object]对象].wrapper[as_onTimeout](timers.js:274:14)\n at Timer.listOnTimeout(timers.js:119:15)”,
“通过”:错误,
“预期”:{},
“实际”:http://localhost:3000/#!/签名“
}, {
“匹配名称”:“,
“消息”:“失败:使用locator:By.id(\“selectedUser\”)找不到元素”,
“堆栈”:“错误:失败:在buildExpectationResult的堆栈(/home/ls/code/ph/node\u modules/dragrator/node\u modules/jasmine/node\u modules/jasmine-core/lib/jasmine-core/jasmine.js:1441:17)处使用定位器By.id(\“selectedUser\”)找不到元素(/home/ls/code/ph/node_modules/progrator/node_modules/jasmine/node_modules/jasmine core/lib/jasmine core/jasmine.js:1411:14)\n在Spec.Env.expectationResultFactory(/home/ls/code/ph/node_modules/progrator/node_modules/jasmine/node_modules/jasmine/jasmine core/jasmine core/jasmine core/jasmine.js:533:18)\n在Spec.addition.expectationres(/home/ls/code/ph/node_modules/dragrator/node_modules/jasmine/node_modules/jasmine core/lib/jasmine core/jasmine.js:293:34)\n在Env.fail(/home/ls/code/ph/node_modules/dragrator/node_modules/jasmine/node_modules/jasmine/jasmine core/lib/jasmine core/jasmine-core/jasmine.js:837:25)\n在Function.next.fa(/home/ls/code/ph/node\u modules/dragrator/node\u modules/jasmine/node\u modules/jasmine-core/lib/jasmine-core/jasmine.js:1776:19)\n at/home/ls/ph/node\u modules/dragrator/node\u modules/jasminewd2/index.js:104:16\n at/home/ls/code/ph/node\u modules/dragrator/node\u modules/selenium/selenium webdriver/lib/goog/base.js:1582:15\n at[对象].webdriver.promise.ControlFlow.runInNewFrame(/home/ls/code/ph/node_modules/dragor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)\n在notify(/home/ls/code/ph/node_modules/dragor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12)处),
“通过”:错误,
“预期”:“,
“实际”:”
}],
“通过预期”:[],
“状态”:“失败”
}]
},
“suite2”:{
“id”:“suite2”,
“说明”:“登录PB Modeler”,
“全名”:“登录PB Modeler”,
“失败的预期”:[],
“状态”:“已完成”,
“规格”:[{
“id”:“spec1”,
“说明”:“登录后应重定向到myDashboard”,
“全名”:“登录PB Modeler后应重定向到myDashboard”,
“失败的预期”:[{
“matcherName”:“toMatch”,
“消息”:“预期”http://localhost:3000/#!/signin'匹配/myDashboard/“,
“堆栈”:“错误:预期失败\n在环境中。(/home/ls/code/ph/app/tests/e2e/login.e2e.test.js:18:37)\n在/home/ls/code/ph/node\u模块/量角器/node\u模块/jasminewd2/index.js:95:14\n在[object object object].webdriver.promise.ControlFlow.runInNewFrame\(/home/ls/code/ph/node_modules/dragrator/node_modules/selenium webdriver/lib/webdriver/promise.js:1654:20)\n在[object object].webdriver.promise.ControlFlow.runEventLoop\n(/home/ls/code/ph/node_modules/dragrator/node_modules/selenium webdriver/lib/webdriver/promise.js:1518:8)\n在[object object]对象].wrapper[as_onTimeout](timers.js:274:14)\n at Timer.listOnTimeout(timers.js:119:15)”,
“通过”:错误,
“预期”:{},
“实际”:http://localhost:3000/#!/签名“
}],
“通过预期”:[],
“状态”:“失败”
}]
}
我现在尝试了许多配置,
如果我试图像上面那样发送它,Logstash将无法正确映射它。
因此,我所做的是删除空格并在reporter中设置beautify=false,并用“[]”将其包围,使其看起来像一个数组,Logstash将“随机”获取它

-那么,考虑到stackTraces,解析这两个嵌套JSON对象的好方法是什么呢?这样,当它被发送到ES和kibana时,是一个可行的数据

-我如何为这个结构或数据模型制作映射,以便它在发送给ELK时能够理解它

我正在使用
ES 2.1 Logstash 2.1 基巴纳4.3.1
Filebeat 1.0.1

我不知道记录日志的应用程序的语言。但我发现(对于Ruby)和(对于Java)非常有用。这将有助于elimi
input {
# This configuration works but the input file needs to be set in a format like so [{},{}] 
    file {
        path => "/opt/logstash/confFiles/suite1.json"
        start_position => beginning
        codec  => json
        sincedb_path => "/opt/logstash/confFiles/suite1incedb"
    }

} 

filter {
    json{
        source => "message"
    }
}

output {
    stdout {codec => rubydebug}
}
{
    "suite1": {
        "id": "suite1",
        "description": "create process - simulate test 2",
        "fullName": "create process - simulate test 2",
        "failedExpectations": [],
        "status": "finished",
        "specs": [{
            "id": "spec0",
            "description": "should redirect to modeler after create a process",
            "fullName": "create process - simulate test 2 should redirect to modeler after create a process",
            "failedExpectations": [{
                "matcherName": "toMatch",
                "message": "Expected 'http://localhost:3000/#!/signin' to match /myDashboard/.",
                "stack": "Error: Failed expectation\n    at Env.<anonymous> (/home/ls/code/ph/app/tests/e2e/create-process.e2e.test.js:18:35)\n    at /home/ls/code/ph/node_modules/protractor/node_modules/jasminewd2/index.js:95:14\n    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/home/ls/code/ph/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)\n    at [object Object].webdriver.promise.ControlFlow.runEventLoop_ (/home/ls/code/ph/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1518:8)\n    at [object Object].wrapper [as _onTimeout] (timers.js:274:14)\n    at Timer.listOnTimeout (timers.js:119:15)",
                "passed": false,
                "expected": {},
                "actual": "http://localhost:3000/#!/signin"
            }, {
                "matcherName": "",
                "message": "Failed: No element found using locator: By.id(\"selectedUser\")",
                "stack": "Error: Failed: No element found using locator: By.id(\"selectedUser\")\n    at stack (/home/ls/code/ph/node_modules/protractor/node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1441:17)\n    at buildExpectationResult (/home/ls/code/ph/node_modules/protractor/node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1411:14)\n    at Spec.Env.expectationResultFactory (/home/ls/code/ph/node_modules/protractor/node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:533:18)\n    at Spec.addExpectationResult (/home/ls/code/ph/node_modules/protractor/node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:293:34)\n    at Env.fail (/home/ls/code/ph/node_modules/protractor/node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:837:25)\n    at Function.next.fail (/home/ls/code/ph/node_modules/protractor/node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core/jasmine.js:1776:19)\n    at /home/ls/code/ph/node_modules/protractor/node_modules/jasminewd2/index.js:104:16\n    at /home/ls/code/ph/node_modules/protractor/node_modules/selenium-webdriver/lib/goog/base.js:1582:15\n    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/home/ls/code/ph/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)\n    at notify (/home/ls/code/ph/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:465:12)",
                "passed": false,
                "expected": "",
                "actual": ""
            }],
            "passedExpectations": [],
            "status": "failed"
        }]
    },
    "suite2": {
        "id": "suite2",
        "description": "login to PB Modeler",
        "fullName": "login to PB Modeler",
        "failedExpectations": [],
        "status": "finished",
        "specs": [{
            "id": "spec1",
            "description": "should redirect to myDashboard after login",
            "fullName": "login to PB Modeler should redirect to myDashboard after login",
            "failedExpectations": [{
                "matcherName": "toMatch",
                "message": "Expected 'http://localhost:3000/#!/signin' to match /myDashboard/.",
                "stack": "Error: Failed expectation\n    at Env.<anonymous> (/home/ls/code/ph/app/tests/e2e/login.e2e.test.js:18:37)\n    at /home/ls/code/ph/node_modules/protractor/node_modules/jasminewd2/index.js:95:14\n    at [object Object].webdriver.promise.ControlFlow.runInNewFrame_ (/home/ls/code/ph/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1654:20)\n    at [object Object].webdriver.promise.ControlFlow.runEventLoop_ (/home/ls/code/ph/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/promise.js:1518:8)\n    at [object Object].wrapper [as _onTimeout] (timers.js:274:14)\n    at Timer.listOnTimeout (timers.js:119:15)",
                "passed": false,
                "expected": {},
                "actual": "http://localhost:3000/#!/signin"
            }],
            "passedExpectations": [],
            "status": "failed"
        }]
    }