That did the trick!  I didn't understand that relabeling could be used to 
modify the url path.  Here's the final config that I ended up with:

  - job_name: 'pdu'
    static_configs:
    - targets: [ 'localhost:9117', ]
      labels:
        pduname: 'pdu1'
    - targets: [ 'localhost:9117', ]
      labels:
        pduname: 'pdu2'
    metrics_path: '/snmp'
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
        replacement: '10.13.5.16'
      - source_labels: ['pduname']
        target_label: __param_module

I hadn't tried running the snmp_exporter directly on the snmpd_proxy host 
because I couldn't get the generator to build on RHEL7.  But it looks like 
I can run the generator on a compatible host, then copy over the snmp.yml 
that it produces.  This should allow me to move the snmp_exporter to the 
machine running the snmpd proxy, at which point I should be able to use the 
relabel_config example from the documentation.

Thanks for the advice,

--Mike
On Wednesday, November 4, 2020 at 6:00:19 PM UTC-6 Brian Brazil wrote:

> On Wed, 4 Nov 2020 at 23:04, Michael Thomas <[email protected]> wrote:
>
>> Our SNMP-enabled devices are on a secure, non-routed subnet in our 
>> datacenter.  To enable snmp monitoring of them, we use a snmpd proxy[1]. 
>> This allows us to grab snmp data from each device using the same IP 
>> address, but a different community name.  For example:
>>
>> # snmpget -v2c -On -c pdu1 snmpd.proxy.host 
>> .1.3.6.1.2.1.1.5.0.1.3.6.1.2.1.1.5.0 = STRING: DCS_PDU_10_1
>> # snmpget -v2c -On -c pdu2 snmpd.proxy.host .1.3.6.1.2.1.1.5.0 
>> .1.3.6.1.2.1.1.5.0 = STRING: DCS_PDU_11_1
>>
>> Our snmp_exporter(s) run on the same host as prometheus, which is not the 
>> same host that the snmp proxy is running on.  I've generated a 
>> snmp_exporter snmp.yml config that specified a different module for each 
>> device:
>>
>> servertech_sentry3: &servertech_sentry3
>>   walk:
>>   - 1.3.6.1.4.1.1718.3.2.2
>>   - 1.3.6.1.4.1.1718.3.2.3
>> [...]
>> pdu1:
>>   <<: *servertech_sentry3
>>   auth:
>>     community: pdu1
>>
>> pdu2:
>>   <<: *servertech_sentry3
>>   auth:
>>     community: pdu2
>>
>> This lets us use a single exporter for all identical devices by 
>> specifying a different module, eg
>>
>> http://prometheus.host:9116/snmp?target=snmpd.proxy.host&module=pdu1
>> http://prometheus.host:9116/snmp?target=snmpd.proxy.host&module=pdu2
>>
>> However, I'm uncertain now to use this in my prometheus.yml file so that 
>> they show up as different targets under the same job.  I wanted to do 
>> something like this:
>>
>>   - job_name: 'pdu'
>>     static_configs:
>>       - targets:
>>         - 'prometheus.host:9116/snmp?target=snmpd.proxy.host&module=pdu1'
>>         - 'prometheus.host:9116/snmp?target=snmpd.proxy.host&module=pdu2'
>>
>> ...but prometheus doesn't like having the url path in the target; it only 
>> wants a hostname:port.  But in my case, I want to reuse the same 
>> hostname:port for multiple targets.
>>
>
> You will need to use relabelling to set __param_module.
>
> However a simpler idea might be to run the snmp_exporter on the machine 
> the snmpd_proxy is currently running on. Generally you want the snmp 
> exporter near the network devices, not Prometheus, given how chatty SNMP is.
>
> Brian
>  
>
>>
>> Is this something that is possible?  If not, the only other option I see 
>> is to run a separate snmp_exporter instance (listening on different ports) 
>> for each snmp device (we have ~50 such devices).  Ultimately I want to have 
>> a single job_name, but be able to select data for each individual proxied 
>> snmp device in grafana.
>>
>> --Mike
>> [1]http://net-snmp.sourceforge.net/wiki/index.php/Snmpd_proxy
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Prometheus Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/prometheus-users/2038b634-8058-4eb1-836f-31acd4b95a49n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/prometheus-users/2038b634-8058-4eb1-836f-31acd4b95a49n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
>
> -- 
> Brian Brazil
> www.robustperception.io
>

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/6520cbcc-e4a0-4552-8bea-641fcd503f3an%40googlegroups.com.

Reply via email to