Solved: Dell EMC REST API calls with Logstash plugin http_poller

If anyone is looking to pull performance metrics from the Dell EMC Unity Unisphere servers that they're running I hope that this saves you some time.

Useful References:



Dell Unisphere® Management REST API Programmer's Guide

Unisphere® Management REST API Reference Guide

Dell EMC Unity Performance Metrics

Errors that I was running into:

  • "Unable to verify first certifciate" This may be being bypassed in Postman due to the settings but the Dell cert was needed by Logstash in order for this to work.
  • "error" => "PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

Testing in Postman and following the directions from the vexpose.blog links. This is what I ended up with in the headers section. Auth section was, Basic and then the Dell Unisphere un/pass.

If you click on the "Code" button in the upper right hand corner of that section you get the headers and the link that you'll have to use in with the http_poller plugin.

curl --location --request GET 'https://xx.xx.xx.xx/api/types/metricValue/instances?filter=path%20eq%20%22sp.*.cpu.summary.utilization%22' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-EMC-REST-CLIENT: true' \
--header 'Authorization: Basic TW9uaXRvcmluZ1VzZXI6U3VtbWVyMjAyMCQk' \
--header 'Cookie: MOD_AUTH_CAS_S=d62275a517efc66cc448f0a2aa46006e0df23e59; mod_sec_emc=value2&a619ae23d32a7c58d12182558a3557493b481271e8597cc4085b7ac8c0e46ebb&value1&5b9HL1RpzotPB%2FWjMI4XiWFaKRxgC%2FFc4dCFdne8lqQ%3D%0A&value3&1'

Logstash config:

input {
  http_poller {
    urls => {
      test1 => {
        # Supports all options supported by ruby's Manticore HTTP client
        method => get
        user => "<dell_emc_username>"
        password => "<password>"
        url => "https://xx.xx.xx.xx/api/types/metricValue/instances?filter=path%20eq%20%22sp.*.cpu.summary.utilization%22"
        headers => {
          Accept => "application/json"
          "Content-Type" => "application/json"
          "X-EMC-REST-CLIENT" => true
        }
     }
    }
    request_timeout => 60
    # Supports "cron", "every", "at" and "in" schedules by rufus scheduler
    schedule => { cron => "* * * * * UTC"}
    codec => "json"
    cacert => "<path_to_website_cert>"
  }
}

output {
  elasticsearch {
    hosts => ["https://abc.com:9243"]
    manage_template => false
    user => <username>
    password => <password>
    ssl => true
    cacert => "<path_to_elastic_cert"
    index => "dell-emc"
  }
}

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