prometheus-community / ipmi_exporter

Remote IPMI exporter for Prometheus
MIT License
472 stars 133 forks source link

Older ipmimonitoring does not support --ignore-unrecognized-events and --output-event-bitmask #71

Closed sgargel closed 3 years ago

sgargel commented 3 years ago

Older ipmimonitoring does not support --ignore-unrecognized-events and --output-event-bitmask flags.

ipmimonitoring: unrecognized option '--ignore-unrecognized-events'

ipmimonitoring: unrecognized option '--output-event-bitmask'

ipmimonitoring - 0.8.12
Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
Copyright (C) 2006-2007 The Regents of the University of California.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.

I know it's very old and outdated but it would be nice if it's possibile to skip passing that flags.

bitfehler commented 3 years ago

Hey there. Sorry to say so, but I don't think adding support for such old versions makes sense. In fact, I am somewhat surprised that the exporter works with those at all.

I'd be curious though: if you are able to deploy the latest version of the exporter, how come you cannot update to a more recent version of FreeIPMI?

And finally, you can actually work around this using a mechanism similar to the one for running as unprivileged user. You can make the exporter call custom scripts that way, in your case they could simply remove the offending parameters and call the actual IPMI binaries.

sgargel commented 3 years ago

Thanks @bitfehler . I do not hide that I was a little embarrassed for the request :-)

bitfehler commented 3 years ago

@sgargel in case you are still interested: you might want to take a look at the 1.4.0 release. It allows to add custom arguments to the collectors (https://github.com/soundcloud/ipmi_exporter/blob/master/ipmi_remote.yml#L64-L66) but it has another (currently undocumented) feature, because it was easy to implement on top: the config also accepts a key default_args (in the same place as custom_args), which override the default arguments that always get used when freeipmi is called. Using this potentially breaks stuff, so you void your warrant :wink: but it might help you.

The following config snippet would basically override the default with the default settings:

custom_args:
  ipmi:
    - "-Q",
    - "--ignore-unrecognized-events"
    - "--comma-separated-output"
    - "--no-header-output"
    - "--sdr-cache-recreate"
    - "--output-event-bitmask"

Hence, you could try the following:

custom_args:
  ipmi:
    - "-Q",
    - "--comma-separated-output"
    - "--no-header-output"
    - "--sdr-cache-recreate"

Note that certain sensors can output events in a way that breaks parsing without output-event-masks, but I guess it's worth a shot. If you give this a try I'd be curious how it turns out :wink: