Providing checks with an external file

Hello,

We recently started evaluating Sensu.
I’m using Sensu Go with agents running on docker.

We’re having a trouble to finish designing monitoring using SNMP.

In pseudo our check command should be:
perform_check.sh --metric someMetric --target_host {{ .labels.target_host }} --file {{ .labels.target_model }}_external_file.txt

How would we include the file so the agent could have access to it?

  • Including external files within the agent docker image will leave us with many images or with a bloated image.
  • Including the files in the host of the agent and mounting them in makes the check not declarative.
  • Creating an asset for each file will leave us with many assets and much work.

The “simplest” way we came up with is create an asset that downloads the external file to the agent using some combination of token substitution and dynamic runtime asset paths.

Am I missing some key feature?
Or is it not as trivial?

P.S.

What are we really trying to do?
We want human-readable SNMP objects to be requested and outputted.
Typically, you’d want a .mib file along with SNMP polling or trapping in order to parse the object identifiers into textual fields. ("-h")
As we monitor quite a few kinds of devices with SNMP, we have different .mib files for each kind of device.

Take a look at the proxy_requests, and this guide on monitoring external devices (e.g. network devices) using proxy requests:

Proxy requests provide support for token substitution (templating). Once configured, you can register entities with an API call (e.g. one per network device) to enable monitoring.

I hope this helps!