Add filesystem discovery script

This commit is contained in:
Daniel Berteaud 2013-04-13 15:31:04 +02:00
parent 31896bd441
commit a7d3fd9c7e
2 changed files with 39 additions and 0 deletions

4
conf/filesystems.conf Normal file
View File

@ -0,0 +1,4 @@
# Provides an equivalent to the builtin vfs.fs.discovery, but works
# on older agent (pre 2.0.0) and FreeBSD
# Uncomment to enable
#UserParameter=vfs.fs.discovery,/var/lib/zabbix/bin/disco_filesystems

35
scripts/disco_filesystems Normal file
View File

@ -0,0 +1,35 @@
#!/usr/bin/perl
$first = 1;
print "{\n";
print "\t\"data\":[\n\n";
my $cmd;
my $re;
# On Linux, parse /proc/mounts
if (-e "/proc/mounts"){
$cmd = 'cat /proc/mounts';
$re = qr/\S+ (\S+) (\S+)/;
}
# On BSD (at least pfsense), there's no /proc/mounts
# parse the mount output
else{
$cmd = '/sbin/mount';
$re = qr/on (\S+) \((\S+), /;
}
for (`$cmd`){
($fsname, $fstype) = m/$re/;
$fsname =~ s!/!\\/!g;
print "\t,\n" if not $first;
$first = 0;
print "\t{\n";
print "\t\t\"{#FSNAME}\":\"$fsname\",\n";
print "\t\t\"{#FSTYPE}\":\"$fstype\"\n";
print "\t}\n";
}
print "\n\t]\n";
print "}\n";