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にログインする必要があります。保存した検索を完了するには、そこからどのように進めますか。