Get Data from XML WebService


(Android Games) #1

I'm new to Logstash and trying to build a dashboard,which will consume data webservice .

I've installed elastic,Kibana and trying to configure logstash using http poller for pulling data from webservice

I'm trying to access XML web Service on periodic interval with http Poller , using certificate base authentication.

input 
{
	http_poller 
	{
		urls => 
		{
		
		test1 =>
				{		
				"https://abc//SS/inc.asmx/GetList?Severity=Informational"
				method => get
				}
		}
		truststore => "C:\Users\Downloads\logstash-6.4.1\logstash-6.4.1\data\abc.p12"
		truststore_password => "pass"
		request_timeout => 60
		schedule => { cron => "* * * * * UTC"}
		codec => "plain"
	}
}     
output 
{
  elasticsearch 
  {
index => "cs_users"
  }
}

Error

C:\Users\Chezhian\Downloads\logstash-6.4.1\logstash-6.4.1\bin>logstash -f poller.conf
Sending Logstash logs to C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logs which is now configured via log4j2.properties
[2018-09-25T12:56:55,582][WARN ][logstash.config.source.multilocal] Ignoring the 'pipelines.yml' file because modules or command line options are specified
[2018-09-25T12:56:56,175][INFO ][logstash.runner          ] Starting Logstash {"logstash.version"=>"6.4.1"}
[2018-09-25T12:56:56,832][ERROR][logstash.agent           ] Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"LogStash::ConfigurationError", :message=>"Expected one of #, => at line 11, column 5 (byte 167) after input \n{\n\thttp_poller \n\t{\n\t\turls => \n\t\t{\n\t\t\n\t\ttest1 =>\n\t\t\t\t{\t\t\n\t\t\t\t\"https://abc//SS/inc.asmx/GetList?Severity=Informational\"\n\t\t\t\t", :backtrace=>["C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/compiler.rb:41:in `compile_imperative'", "C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/compiler.rb:49:in `compile_graph'", "C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/compiler.rb:11:in `block in compile_sources'", "org/jruby/RubyArray.java:2486:in `map'", "C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/compiler.rb:10:in `compile_sources'", "org/logstash/execution/AbstractPipelineExt.java:149:in `initialize'", "C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/pipeline.rb:22:in `initialize'", "C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/pipeline.rb:90:in `initialize'", "C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/pipeline_action/create.rb:38:in `execute'", "C:/Users/Downloads/logstash-6.4.1/logstash-6.4.1/logstash-core/lib/logstash/agent.rb:309:in `block in converge_state'"]}
[2018-09-25T12:56:57,145][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

Am i missing something ?


(Ry Biesemeyer) #2

In your "test1" block, you have a keyless-value. It should be:

		test1 =>
				{		
				url => "https://abc//SS/inc.asmx/GetList?Severity=Informational"
				method => get
				}
		}

(Android Games) #3

Thanks for the reply.
but i get this error when queried from Kibana

PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Now my configuration file looks as below

input 
{
	http_poller 
	{
		urls => 
		{
		
		test1 =>
				{		
				url=>"https://abc//SWS/incidents.asmx/GetList?Severity=Informational"
				method => get
				}
		}
		ssl_certificate_validation => false
		verify_ssl => false
		truststore => "C:\Users\Downloads\logstash-6.4.1\logstash-6.4.1\data\abc.p12"
		truststore_password => "pass"
		request_timeout => 60
		schedule => { cron => "* * * * * UTC"}
		codec => "plain"
	}
}

output 
{
  elasticsearch 
  {
    index => "cs_users"
  }
}

(system) #4

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.