Trouble with extremely long running SNMP tasks with Rittal PDU

Hello, I have trouble with a Rittal PDU managed 7979.440 (pdu1 is the primary one and I have a second pdu2 in “secondary” mode connected to the “primary” one). The SNMP walk/scan takes a very long time when done manually and I run into timeouts. I have already tried limiting the plugins for the host to the plugins with prefix cmciii but that does not help.

Does anyone have experience with getting these long-running SNMP tasks on Rittal PDUs to work with Checkmk?

CMK version: Checkmk raw 2.4.0-2025.11.17
OS version: Docker on Ubuntu 24.04

Error message:

Output of “cmk --debug -vvn hostname”: (If it is a problem with checks or plugins)

full output.txt (174.3 KB)

The important question here is where in the whole process it takes the time.

I think you only need the “cmciii” section of data or?
Most times, with such devices, i look at runtime where the time is spent and decide then if i need the data or not.

What you can do for a test is

  • disable all SNMP section for this device and leave only the “cmciii” section active
  • do the same as with your output and look for the time spent
  • if already the cmciii takes this long then you have bad luck with this device

With Rittal devices you have only SNMP and Modbus as connection options and nothing else :frowning:

Actually, my Rittal PDU has a RedFish interface. However, I have no luck with this either.

With Rittal devices you have only SNMP and Modbus as connection options and nothing else 

Actually, my Rittal PDU has a RedFish interface. However, I have no luck with this either.

OMD[mgm]:~$ cmk --debug -vvn pdu1
value store: loading from disk
Checkmk version 2.4.0-2025.11.17
+ FETCHING DATA
  Source: SourceInfo(hostname='pdu1', ipaddress='10.200.53.3', ident='special_redfish', fetcher_type=<FetcherType.SPECIAL_AGENT: 6>, source_type=<SourceType.HOST: 1>)
[cpu_tracking] Start [7c7409d1e600]
Read from cache: AgentFileCache(path_template=/omd/sites/mgm/tmp/check_mk/data_source_cache/special_redfish/pdu1, max_age=MaxAge(checking=0, discovery=90.0, inventory=90.0), simulation=False, use_only_cache=False, file_cache_mode=6)
Not using cache (does not exist)
Calling: /omd/sites/mgm/lib/python3/cmk/plugins/redfish/libexec/agent_redfish -u redfish --password-id uuidec941aec-dd80-4d2b-893d-da043582eac2:/omd/sites/mgm/var/check_mk/passwords_merged -p 443 -P https -m '' -n Memory,Power,Processors,Thermal,FirmwareInventory,NetworkAdapters,NetworkInterfaces,EthernetInterfaces,Storage,ArrayControllers,SmartStorage,HostBusAdapters,PhysicalDrives,LogicalDrives,Drives,Volumes,SimpleStorage -c '' --timeout 10 --retries 2 10.200.53.3
Get data from program
[cpu_tracking] Stop [7c7409d1e600 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.27, children_system=0.1, elapsed=1.4100000001490116))]
  Source: SourceInfo(hostname='pdu1', ipaddress='10.200.53.3', ident='piggyback', fetcher_type=<FetcherType.PIGGYBACK: 4>, source_type=<SourceType.HOST: 1>)
[cpu_tracking] Start [7c74093ada60]
Read from cache: NoCache(path_template=/dev/null, max_age=MaxAge(checking=0.0, discovery=0.0, inventory=0.0), simulation=False, use_only_cache=False, file_cache_mode=1)
0 piggyback files for 'pdu1'.
0 piggyback files for '10.200.53.3'.
Get piggybacked data
[cpu_tracking] Stop [7c74093ada60 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.0))]
[cpu_tracking] Start [7c7409f77e60]
+ PARSE FETCHER RESULTS
  HostKey(hostname='pdu1', source_type=<SourceType.HOST: 1>)  -> Add sections: []
Received no piggyback data
0 piggyback files for 'pdu1'.
[cpu_tracking] Stop [7c7409f77e60 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.0))]
[special_redfish] AttributeError: 'NoneType' object has no attribute 'replace'(!!), [piggyback] Success (but no data found for this host), execution time 1.4 sec | execution_time=1.410 user_time=0.000 system_time=0.000 children_user_time=0.270 children_system_time=0.100 cmk_time_ds=1.040 cmk_time_agent=0.000
Agent exited with code 1: Agent failed - please submit a crash report! (Crash-ID: 2252c692-d03d-11f0-881c-f2efcc654044)

Traceback (most recent call last):
  File "/omd/sites/mgm/lib/python3/cmk/special_agents/v0_unstable/agent_common.py", line 151, in _special_agent_main_core
    return main_fn(args)
           ^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 800, in agent_redfish_main
    get_information(redfishobj)
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 545, in get_information
    systems_col = fetch_data(redfishobj.redfish_connection, systems_url, "System")
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 263, in fetch_data
    response_url = client.get(url, None)
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 117, in get
    return self._client.get(url, timeout=timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3.12/site-packages/redfish/rest/v1.py", line 651, in get
    return self._rest_request(path, method='GET', args=args,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3.12/site-packages/redfish/rest/v1.py", line 1140, in _rest_request
    return super(HttpClient, self)._rest_request(path=path, method=method,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3.12/site-packages/redfish/rest/v1.py", line 810, in _rest_request
    reqpath = path.replace('//', '/')
              ^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'replace'(!!)


[cpu_tracking] Start [7c74093ada60]
Read from cache: NoCache(path_template=/dev/null, max_age=MaxAge(checking=0.0, discovery=0.0, inventory=0.0), simulation=False, use_only_cache=False, file_cache_mode=1)
0 piggyback files for 'slgmvzmz2-pdu1'.
0 piggyback files for '10.200.53.3'.
Get piggybacked data
[cpu_tracking] Stop [7c74093ada60 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.0))]
[cpu_tracking] Start [7c7409f77e60]
+ PARSE FETCHER RESULTS
  HostKey(hostname='slgmvzmz2-pdu1', source_type=<SourceType.HOST: 1>)  -> Add sections: []
Received no piggyback data
0 piggyback files for 'slgmvzmz2-pdu1'.
[cpu_tracking] Stop [7c7409f77e60 - Snapshot(process=posix.times_result(user=0.0, system=0.0, children_user=0.0, children_system=0.0, elapsed=0.0))]
[special_redfish] AttributeError: 'NoneType' object has no attribute 'replace'(!!), [piggyback] Success (but no data found for this host), execution time 1.4 sec | execution_time=1.410 user_time=0.000 system_time=0.000 children_user_time=0.270 children_system_time=0.100 cmk_time_ds=1.040 cmk_time_agent=0.000
Agent exited with code 1: Agent failed - please submit a crash report! (Crash-ID: 2252c692-d03d-11f0-881c-f2efcc654044)

Traceback (most recent call last):
  File "/omd/sites/mgm/lib/python3/cmk/special_agents/v0_unstable/agent_common.py", line 151, in _special_agent_main_core
    return main_fn(args)
           ^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 800, in agent_redfish_main
    get_information(redfishobj)
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 545, in get_information
    systems_col = fetch_data(redfishobj.redfish_connection, systems_url, "System")
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 263, in fetch_data
    response_url = client.get(url, None)
                   ^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3/cmk/plugins/redfish/special_agents/agent_redfish.py", line 117, in get
    return self._client.get(url, timeout=timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3.12/site-packages/redfish/rest/v1.py", line 651, in get
    return self._rest_request(path, method='GET', args=args,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3.12/site-packages/redfish/rest/v1.py", line 1140, in _rest_request
    return super(HttpClient, self)._rest_request(path=path, method=method,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/omd/sites/mgm/lib/python3.12/site-packages/redfish/rest/v1.py", line 810, in _rest_request
    reqpath = path.replace('//', '/')
              ^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'replace'(!!)

Is it possible to get the output from a curl https://your-device/redfish/v1 ?

If it is a PDU you can try to use the redfish agent for PDUs.

That is accessable with the second redfish rule inside the other integrations section.

Long running SNMP on Rittal PDU is what I would expect / experienced as well. For the Rittal PDU we therefor usually changed to an 5Min Interval and a 3Min Timeout setting in CheckMK.