Problem using http_poller to get access token from AppDynamics OAUTH API

I am using the http_poller input filter to get an outh access token from AppDynamics that I will then use to pass to the http filter plugin to retrieve AppDynamics REST API metric data to insert into Elasticsearch.

My logstash http_poller configuration is:

input {
	http_poller {
		urls => {
			AppDynamics => {
				method => post
				url => "https://*appdynamics-test-account*/controller/api/oauth/access_token"
				headers => {
					"Accept" => "application/json"
					"Content-Type" => "application/vnd.appd.cntrl+protobuf;v=1"
					"Authorizations" => "*AppDynamics bearer token*"
					"grant_type" => "client_credentials"
					"client_id" => "Stage-CurlTest"
					"client_secret" => "*AppDynamics Client Secret*"
				}
			}
		}
		request_timeout => 60
		schedule => { every => "1h"}
		codec => "json"
		metadata_target => "appd-token"
		type => "AppDynamics"
	}
}
}

I am getting the following error response when the poller tries to connect to AppDynamics

{
	"type": "AppDynamics",
	"@timestamp": "2021-10-18T14:02:11.191Z",
	"appd-token": {
		"request": {
			"method": "post",
			"url": "https://*appdynamics-test-account*/controller/api/oauth/access_token",
			"headers": {
				"Authorizations": "AppDynamics Bearer Token",
				"grant_type": "client_credentials",
				"client_secret": "`AppDynamics Client Secret`",
				"client_id": "Stage-CurlTest",
				"Content-Type": "application/vnd.appd.cntrl+protobuf;v=1",
				"Accept": "application/json"
			}
		},
		"response_headers": {
			"x-content-type-options": "nosniff",
			"x-frame-options": "SAMEORIGIN",
			"x-xss-protection": "1; mode=block",
			"connection": "keep-alive",
			"server": "AppDynamics",
			"date": "Mon, 18 Oct 2021 14:02:10 GMT"
		},
		"runtime_seconds": 0.36,
		"host": "SAPPLOG03",
		"name": "AppDynamics",
		"response_message": "Not Acceptable",
		"code": 406,
		"times_retried": 0
	},
	"@version": "1",
	"tags": [
		"_httprequestfailure"
	]
}

New to both the http_poller filter and the AppDynamics Metric REST API so not sure what I have configured wrong. I'm also going to post this in the AppDynamics Support forum.

Thanks,
Bill

Was able to get my http_poller plugin returning an access token with the following configuration

	http_poller {
		urls => {
			AppDynamics => {
				method => post
				url => "https://vertex-test.saas.appdynamics.com/controller/api/oauth/access_token"
				body => "grant_type=client_credentials&client_id=xxxx@vertex-test&client_secret=xxxx"
				headers => {
					"Content-Type" => "application/vnd.appd.cntrl+protobuf;v=1"
				}
			}
		}
		request_timeout => 60
		schedule => { every => "15m"}
		codec => "json"
		metadata_target => "appd-token"
		type => "AppDynamics"
	}

But now I am getting an invalid access token error when the http filter plugin fires - this is the config for that

		http {
			body_format => "json"
			follow_redirects => false
			url => "https://xxxx.saas.appdynamics.com/controller/rest/applications/Vertex%20Cloud%20%28Stage%29/metric-data?metric-path=Application%20Infrastructure%20Performance%7COSP%20Servers%7CIndividual%20Nodes%7CSOSESB01%7CJVM%7CMemory%7CHeap%7CCurrent%20Usage%20%28MB%29&time-range-type=BEFORE_NOW&duration-in-mins=60"
			verb => "GET"
			headers => [ "Authorization", "Bearer %{appd-token}" ]
			target_body => "[@metadata][api_response]"
			target_headers => "[@metadata][api_headers]" 
		}

I am following the sample given by Yassine Lasri in this post Http_poller REST API authentication token

Getting closer...

Thanks,
Bill

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