我正在尝试从Splunk中获取一些信息,这样我就可以使用它了。我成功登录了,但之后我什么也做不了。我试图让我保存的搜索和工作都无济于事。这是我用来登录并尝试获取保存的搜索结果的代码。
var splunkjs = require('splunk-sdk');
var service = new splunkjs.Service({username: "****", password: "*****", host: "dllprdspl01.dl.prd.p.******.com", port: 8089, scheme: "https", version: 5});
service.login(function(err, success) {
if (err) {
throw err;
}
console.log("Login was successful: " + success);
var mySavedSearches = service.savedSearches();
mySavedSearches.fetch(function(err, mySavedSearches) {
console.log("There are " + mySavedSearches.list().length + " saved searches");
var savedSearchColl = mySavedSearches.list();
for(var i = 0; i < savedSearchColl.length; i++) {
var search = savedSearchColl[i];
console.log(i + ": " + savedSearchColl[i].name);
console.log(" Query: " + savedSearchColl[i].properties().search + "\n");
}
});
});我在登录时返回成功,但是当我尝试列出我保存的搜索时,我得到了这个错误:
TypeError: Cannot call method 'list' of undefined在我登录之后,我已经将我的服务打印到控制台上,并且我看不到任何错误。
我已经能够使用以下代码连接并获取会话密钥:
var splunkjs = require('splunk-sdk');
var xml2js = require('xml2js');
var context = new splunkjs.Context({username: "****", password: "****", host: "****.com", port: 8089, scheme: "https", version: 5});
var sessionKey;
var key = context.login(function(err, success){
if(err){
throw err;
}
// console.log("Login was successful " + success);
var keyXml = key.req.res.body;
var parser = new xml2js.Parser();
parser.parseString(keyXml, function(err, result){
sessionKey = result.response.sessionKey[0];
});
context.sessionKey = sessionKey;
console.log(context);
context.get('services/saved/searches/hamm_test_mn7', function(err, response){
console.get(response);
})
});如果我可以得到我的会话密钥,那么我应该登录到splunk。我该如何从那里开始完成我保存的搜索。
发布于 2013-01-03 03:21:36
通过在Splunk工作的Neeraj的帮助,我能够连接到Splunk并获得我保存的搜索结果。我没有注意到我必须在我的Splunk服务器上安装xml2json。这里是解释所有需要发生的事情的doc页面。然后我不得不将我的版本号改为4.3,而不是像上面那样的5。然后一切都连接起来了,我可以像我想要的那样得到我保存的搜索结果。在原始代码中,看起来我是在连接,但实际上返回的是一个空的服务对象。这是我用来确保连接的代码。当你看到会话密钥时,你就知道Splunk在跟你说话。
var splunkjs = require('splunk-sdk');
var service = new splunkjs.Service({username: "admin",password: "changeme",host: "localhost",port:8089,scheme: "https",version: 4.3});
service.login(function (err, success) {
if (err) console.log("Error logging in", err);
else console.log(service.sessionKey);
});发布于 2012-12-08 02:07:47
令人惊讶的是,你可以登录,但它在保存的搜索中卡住了。我们来看看在抓取过程中是否抛出了错误。尝试以下代码,如果您在控制台中看到任何内容,请告诉我。
var splunkjs = require('splunk-sdk');
var service = new splunkjs.Service({username: "****", password: "*****", host: "dllprdspl01.dl.prd.p.******.com", port: 8089, scheme: "https", version: 5});
service.login(function(err, success) {
if (err) {
throw err;
}
console.log("Login was successful: " + success);
var mySavedSearches = service.savedSearches();
mySavedSearches.fetch(function(err, mySavedSearches) {
if (err) {
console.log("Error in fetching savedSearches:", err);
throw err;
}
console.log("There are " + mySavedSearches.list().length + " saved searches");
var savedSearchColl = mySavedSearches.list();
for(var i = 0; i < savedSearchColl.length; i++) {
var search = savedSearchColl[i];
console.log(i + ": " + savedSearchColl[i].name);
console.log(" Query: " + savedSearchColl[i].properties().search + "\n");
}
});
});https://stackoverflow.com/questions/13753775
复制相似问题