jenningsloy318 / redfish_exporter

exporter to get metrics from redfish based hardware such as lenovo/dell/superc servers
Apache License 2.0
70 stars 62 forks source link

redfish_exporter server dies when non-existant IP or hostname is queried. #7

Closed sbates130272 closed 4 years ago

sbates130272 commented 4 years ago

When running redfish_exporter we can cause it to fatally error by entering an IP or hostname that does not exist in the redfish.yml configuration file. This is not a robust solution because we can't expect the client to always get things right and we can't expect IP addresses and hostnames to always be constant and always be online.

Make the application more robust and return a sane message if the client tries to scrape a target that is not in the configuration file.

vidar:~/redfish_exporter$ ./redfish_exporter --config.file=redfish-hostnames.yml --log.level=debug
INFO[0000] redfish_exporter version , build reversion , build branch , build at  on host vidar  source="main.go:69"
INFO[0000] Starting redfish_exporter                     source="main.go:76"
INFO[0000] Loaded config file                            source="config.go:42"
INFO[0000] Listening on :9610                            source="main.go:125"
INFO[0002] Scraping target 1.2.3.4                       source="main.go:40"
FATA[0002] Error getting credentialfor target 1.2.3.4 file: no credentials found for target 1.2.3.4  source="main.go:45"
jenningsloy318 commented 4 years ago

I realized this issue before, at that time it was only used in our internal, so no neefto fix this as we have accurate list of servers.

I will take some time to find a solution for it, but may not be so quick.

sbates130272 commented 4 years ago

Thanks @jenningsloy318. We may also devote some engineering cycles to this by forking your repo and sending PRs back to you.

jenningsloy318 commented 4 years ago

Awsome, very Appreciate your contribution.

jenningsloy318 commented 4 years ago

Hi @sbates130272 I update the code of error handling, can you please build it and tried it again ?

Actually, I usually add a default password in the config, when no password found, it will use the default one, this can also resolve such issue.

sbates130272 commented 4 years ago

Thanks @jenningsloy318. I can confirm that master now does not fail if I enter an non-existant hostname **as long as I also add a default credential section to the redfish.yml config file.

I think in order to close this issue we need to update the README.md to include that. I have a couple of other things I would like to add to that file so I will do a PR for that.