Skip to main content

Hello everyone,

 

I regularly encounter problems with the VEEAM plugin that I use to collect the following information: job status, licenses, and repository.

 

Overall, data collection works, but quite often—even though the plugin is operational—I get the following error:

 

CHECK_NRPE: Receive header underflow—only 0 bytes received (4 expected)

 

Topology:

 

Veeam B&R installed on Windows servers

 

NSClient++ (latest version) installed on all affected servers

 

Pollers running Debian 12

 

Checks performed with check_centreon_nrpe3

 

Example of command used:

 

/usr/lib/nagios/plugins/check_centreon_nrpe3 -H $HOSTADDRESS$ -p 5666 -t 240 -u -2 -P 8192 \

-c check_centreon_plugins -a ‘apps::backup::veeam::local::plugin’ 'job-status' \

'--filter-name=“” --filter-start-time=‘’ --filter-end-time=“172800” --filter-counters=“” \

--ok-status=“%{last_result} =~ /Success|None/i” \

--warning-status=“%{enabled} == 1 and %{last_result} =~ /Warning/i” \

--critical-status=“%{enabled} == 1 and not %{last_result} =~ /Success|None|Never|Warning/i” \

--warning-long=“86400” --critical-long=“172800” --verbose'

 

Problems encountered:

 

Sometimes, the checks fail with the above error, and I have to manually force the status of the metrics.

 

On one server in particular, the job-status metric systematically fails with the error Receive header underflow, while licenses and repository report correctly.

 

Thank you.

 

PS: I also tried adjusting the timeouts, but that didn't make much difference...

Hello,
On your poller terminal : -

time /usr/lib/nagios/plugins/check_centreon_nrpe3 -H $HOSTADDRESS$ -p 5666 -u -2 -P 8192 \

-c check_centreon_plugins -a ‘apps::backup::veeam::local::plugin’ 'job-status' \

'--filter-name=“” --filter-start-time=‘’ --filter-end-time=“172800” --filter-counters=“” \

--ok-status=“%{last_result} =~ /Success|None/i” \

--warning-status=“%{enabled} == 1 and %{last_result} =~ /Warning/i” \

--critical-status=“%{enabled} == 1 and not %{last_result} =~ /Success|None|Never|Warning/i” \

--warning-long=“86400” --critical-long=“172800” --verbose'





Give you exact execution time
--------------------------------------------------------------------------------------------
also try this one





/usr/lib/nagios/plugins/check_centreon_nrpe3 -H $HOSTADDRESS$ -p 5666 -t 75 -2 -u -P 8192 -c check_centreon_plugins -a 'apps::backup::veeam::local::plugin' 'job-status' ' --filter-name="" --filter-start-time="" --filter-end-time="86400" --filter-counters="" --ok-status="%{is_running} == 1 and %{status} =~ /Success/i" --warning-status="%{is_running} == 0 and %{status} =~ /Warning/i" --critical-status="%{is_running} == 0 and %{status} =~ /Failed/i" --warning-long="" --critical-long="" --verbose'

Thank you


Hello,

Here is the feedback for the two orders in question:

time ./check_centreon_nrpe3 -H 192.168.2.11 -p 5666 -t 240 -u -2 -P 8192 -c check_centreon_plugins -a 'apps::back
up::veeam::local::plugin' job-status --filter-name="" --filter-start-time="" --filter-end-time="" --filter-counters="" --ok-status="%{last_result} =~ /Success|None/i"
--warning-status="%{enabled} == 1 and %{last_result} =~ /Warning/i" --critical-status="%{enabled} == 1 and not %{last_result} =~ /Success|None|Never|Warning/i" --warni
ng-long="" --critical-long=""
CHECK_NRPE: Receive header underflow - only 0 bytes received (4 expected).

real    0m30,024s
user    0m0,013s
sys     0m0,004s

./check_centreon_nrpe3 -H 192.168.2.11 -p 5666 -t 75 -u -2 -P 8192 -c check_centreon_plugins -a 'apps::backup::veeam::local::plugin' job-status --filter-name="" --filter-start-time="" --filter-end-time="" --filter-counters="" --ok-status="%{last_result} =~ /Success|None/i" --warning-status="%{enabled} == 1 and %{last_result} =~ /Warning/i" --critical-status="%{enabled} == 1 and not %{last_result} =~ /Success|None|Never|Warning/i" --warning-long="" --critical-long=""
CHECK_NRPE: Receive header underflow - only 0 bytes received (4 expected).

Thank you


Hello ,
Does your .ini file have below parameter?

[/setting/default]
timeout= 75

If not can you please add and try again.

Thank You


Thank you for your feedback.

This does not solve the problem. I am sending you the command executed on the Poller as well as the response :

time ./check_centreon_nrpe3 -H 192.168.2.11 -p 5666 -t 75 -u -2 -P 8192 -c check_centreon_plugins -a 'apps::backup::veeam::local::p
lugin' job-status --filter-name="" --filter-start-time="" --filter-end-time="" --filter-counters="" --ok-status="%{last_result} =~ /Success|None/i" --warning-status="%{enabled} == 1 and
 %{last_result} =~ /Warning/i" --critical-status="%{enabled} == 1 and not %{last_result} =~ /Success|None|Never|Warning/i" --warning-long="" --critical-long=""
CHECK_NRPE STATE UNKNOWN: Socket timeout after 75 seconds.

real    1m15,032s
user    0m0,011s
sys     0m0,004s


Here is an excerpt from the nsclient.log file:

2025-09-30 17:36:39: debug:c:\source\0.5.2\modules\CheckExternalScripts\CheckExternalScripts.cpp:374: Command line: scripts\\centreon\\centreon_plugins.exe --plugin=apps::backup::veeam::local::plugin --mode=job-status --filter-name=
2025-09-30 17:38:06: error:c:\source\0.5.2\include\socket/connection.hpp:139: Socket was unexpectedly closed trying to send data (possibly check your timeout settings)
2025-09-30 17:38:28: debug:c:\source\0.5.2\include\nrpe/server/protocol.hpp:92: Accepting connection from: 192.168.2.240, count=1
2025-09-30 17:38:28: debug:c:\source\0.5.2\modules\CheckExternalScripts\CheckExternalScripts.cpp:374: Command line: scripts\\centreon\\centreon_plugins.exe --plugin=apps::backup::veeam::local::plugin --mode=job-status --filter-name=
2025-09-30 17:40:02: error:c:\source\0.5.2\include\socket/connection.hpp:139: Socket was unexpectedly closed trying to send data (possibly check your timeout settings)


Hello,
exactly you need to update timeout in nsclient.ini file at C:Program Files/Centreon NSClient++.
. we can check directly on the host, note the Measure-Command(it is possible that this could take minutes 5+)
 

PS C:\Program Files\Centreon NSClient++\scripts\centreon> Measure-Command {.\centreon_plugins.exe --plugin="apps::backup::veeam::local::plugin" --mode="job-status" --filter-name="" --filter-start-time="" --filter-end-time="86400" --filter-counters="" --ok-status="" --warning-status="%{is_running} == 0 and %{status} =~ /Warning/i" --critical-status="%{is_running} == 0 and %{status} =~ /Failed/i" --warning-long="" --critical-long="" --verbose}


above command will give you timeout add it into timeouts nsclient.ini at C:program files/Centreon NSClient++ As [/setting/default] under [/setting/external scripts] then restart nsclient service.

 


Hopefully this will address your problem :)


I successfully executed the Measure-Command command, which returned :
 

 

So I set the timeout to 180 in nsclient.ini and in my command, and this is what I got back :

 

Out of curiosity, I ran the Veeam plugin's license mode and it returned the expected values, with no timeouts or other errors.

 

Hopefully this will help us in our research...