Need to exclude RDM from check_drivesize

This support forum board is for support questions relating to Nagios XI, our flagship commercial network monitoring solution.
Locked
dxb74
Posts: 14
Joined: Thu Oct 08, 2020 2:09 pm

Need to exclude RDM from check_drivesize

Post by dxb74 »

I have a service on all my servers to check the available space on disks. We are currently able to exclude the CDROM and/or any removable drives as well as the S: (we use for swap) and A: drives from the check but have been unable to figure out how to exclude RDM (Raw Disk Mappings) disks. Our current command is as follows:

check_drivesize "filter=type not in ('CDROM, 'REMOVABLE')" drive=* "crit=free<100M" "warn=free<500M" "exclude=S:\\\" "exclude=A:\\\" "exclude=System Reserved" "detail-syntax=%(drive_or_name): ${total_free}" "perf-config=free.free(unit:G) free(igno9red:true)"

and yields the following result when run on a server that has an RDM drive:

Filter processing failed: Failed to get size for \\?\Volume{7e8cac3e-b3af-11e7-8157-005056899fd6}\: 3ed: The volume does not contain a recognized file system. : 0 < convert(104857600)

How can we exclude RDM drives from these checks?
User avatar
pbroste
Posts: 1288
Joined: Tue Jun 01, 2021 1:27 pm

Re: Need to exclude RDM from check_drivesize

Post by pbroste »

Hello @dxb74

Thanks for reaching out, taking a look at the options we see that this is the [url=example to exclude:[/url]
check_drivesize "crit=free<1g" drive=* "filter=type in ('fixed', 'remote')" exclude=C:\\ exclude=D:\\
Without the ability to test but it appears that the following can exclude the \\? path, since I don't have a system to test this on.

Code: Select all

check_drivesize -a "filter=type not in ('CDROM', 'REMOVABLE')" "exclude=\\?"
or your example:
\\?\Volume{7e8cac3e-b3af-11e7-8157-005056899fd6}\
Look like this:

Code: Select all

check_drivesize -a "filter=type not in ('CDROM', 'REMOVABLE')" "exclude=\\?\Volume{7e8cac3e-b3af-11e7-8157-005056899fd6}\"
Please let us know how things look,
Perry
dxb74
Posts: 14
Joined: Thu Oct 08, 2020 2:09 pm

Re: Need to exclude RDM from check_drivesize

Post by dxb74 »

Unfortunately, neither of those two exclude flags ("exclude=\\?\" nor "exclude=\\?\Volume{7e8cac3w-b31f-11e7-8157-005056899fd6}\") work.

Still get this error: Filter processing failed: Failed to get size for \\?\Volume{7e8cac3w-b31f-11e7-8157-005056899fd6}\: 3ed: The volume does not contain a recognized file system.: 0 > convert(0).

Was hoping that there was a 'type' (similar to CDROM, REMOVABLE, FIXED, etc.) that would correspond to a RDM (Raw Disk Mapping) that I could filter out.

I tried the flag: "filter=type not in ('cdrom', 'removable, 'raw')" but that yielded the error: Filter processing failed: Failed to convert type: raw, Failed to convert type: cdrom, removable, raw: 3 not in convert(0)
User avatar
pbroste
Posts: 1288
Joined: Tue Jun 01, 2021 1:27 pm

Re: Need to exclude RDM from check_drivesize

Post by pbroste »

Hello @dxb74

Looks like RDM is not associated with a recognized file system, with that it appears that the check_drivesize will not be able to exclude it.

Let's see if there are any others in the forum that have suggestions, please chime in.

Thanks,
Perry
dxb74
Posts: 14
Joined: Thu Oct 08, 2020 2:09 pm

Re: Need to exclude RDM from check_drivesize

Post by dxb74 »

UPDATE: We were able to get it to exclude the RDM drives with the following command: check_nrpe -H 127.0.0.1 -c check_drivesize "detail-syntax=%{drive_or_name}: ${used}/${size} used" exclude=S:\ exclude=A:\ "filter=type not in ('cdrom', 'removable') and mounted=1" "crit=free<100M" "warn=free<500M"

The key was the 'and mounted=1' in the filter.

However, I now have a new question. When running this command we get output like so: OK All 2 drive(s) are ok|'D:\ free'=197.2831GB;0.48827;0.09765;0;249.99804 'D:\ free %'=79%;0;0;0;100 'C:\ free'=13.87358GB;0.48827;0.09765;0;59.65527 'C:\ free
%'=23%;1;0;0;100


For this server, the D: drive has a size of 250 GB, 197 GB of which are free. So when the result shows 'D:\ free'=197.2831GB;0.48827;0.09765;0;249.99804' what do all of those numbers represent? Obviously, the first number is GB free and the last is GB Total size. What are the ones in between and how can I get rid of them? Ideally, we'd like the status to read something like: "197 GB free out of 250 GB Total", or something to that effect - simple and informative.
User avatar
pbroste
Posts: 1288
Joined: Tue Jun 01, 2021 1:27 pm

Re: Need to exclude RDM from check_drivesize

Post by pbroste »

Hello @dxb74

Excellent find and leg work on the 'and mounted=1' filter to get the exclude to work.

Digging into the script we see that the additional data is including the performance data:
request.add_arguments("perf-config=free(unit:" + perf_unit + ")used(unit:" + perf_unit + ")");
request.add_arguments("detail-syntax=${drive}: Total: ${size} - Used: ${used} - Free: ${free}");
Does not appear that there is an option to exclude that data from the results.

Thanks,
Perry
Locked