// pmie.conf // Time between checks... delta = 1 sec; // ======================================== // Setting up for Nagios // ======================================== // ---------------------------------------- // Range of values, multiple instances // ---------------------------------------- warn_level_sys = 80; crit_level_sys = 90; // 1st: check for good values and put it out... // // If ALL instances are under the warning value, then all is well. all_inst ( 75%_sample ( filesys.full < $warn_level_sys ) ) -> print "%h %v %i\n"; // ) -> shell "/usr/local/sbin/nagios.ext " "Disk " "0 " "\"Disks OK:\" " "%h \"[%i: %v%]\" "; // 2nd: check for warning values and put them out... // // If ALL instances are under the critical value, and some are // in the warning range, print a warning... all_inst ( 75%_sample ( (max_inst filesys.full < $crit_level_sys) ) ) && some_inst ( 75%_sample ( (max_inst filesys.full < $crit_level_sys) && (max_inst filesys.full >= $warn_level_sys) ) // ) -> shell "/usr/local/sbin/nagios.ext " "Disk " "1 " "\"Disks filling:\" " "%h \"[%i: %v%]\" "; ) -> print "WARN: %h %v %i"; // 3rd: check for critical values and put them out... // // If ANY instances are in the critical range, print a critical warning... some_inst ( 75%_sample ( filesys.full >= $crit_level_sys ) // ) -> shell "/usr/local/sbin/nagios.ext " "Disk " "2 " "\"Disks nearly full:\" " "%h \"[%i: %v%]\" "; ) -> print "CRIT"; // ---------------------------------------- // Discrete values, single instance // ---------------------------------------- delta = 5 min; some_inst ( network.ip.forwarding == 0 ) -> shell "/usr/local/sbin/nagios.ext " "IP\\ Forwarding " "0 " "\"IP forwarding is off [OK]\" " "%h "; some_inst ( network.ip.forwarding == 1 ) -> shell "/usr/local/sbin/nagios.ext " "IP\\ Forwarding " "1 " "\"IP forwarding is on [WARNING]\" " "%h "; some_inst ( network.ip.forwarding == 2 ) -> shell "/usr/local/sbin/nagios.ext " "IP\\ Forwarding " "2 " "\"IP forwarding is on [CRITICAL]\" " "%h "; // ---------------------------------------- // Range of values, single instance // ---------------------------------------- warn_level = 50; crit_level = 90; some_inst ( (swap.used * 100) / swap.length < $warn_level ) -> shell "/usr/local/sbin/nagios.ext " "\"Swap Usage\" " "0 " "\"Swap Utilization: [%v%]\" " "%h "; some_inst ( (swap.used * 100) / swap.length >= $warn_level && (swap.used * 100) / swap.length < $crit_level ) -> shell "/usr/local/sbin/nagios.ext " "\"Swap Usage\" " "1 " "\"Swap Utilization: [%v%]\" " "%h "; some_inst ( (swap.used * 100) / swap.length >= $crit_level ) -> shell "/usr/local/sbin/nagios.ext " "\"Swap Usage\" " "2 " "\"Swap Utilization: [%v%]\" " "%h "; 75%_sample ( swap.used * 100 / (mem.util.used + swap.used) < 30 ) -> shell "/usr/local/sbin/nagios.ext " "\"Swap Dependence\" " "0 " "\"Swap Dependence: [%v%]\" " "%h "; 75%_sample ( swap.used * 100 / (mem.util.used + swap.used) < 50 && swap.used * 100 / (mem.util.used + swap.used) >= 30 ) -> shell "/usr/local/sbin/nagios.ext " "\"Swap Dependence\" " "0 " "\"Swap Dependence: [%v%]\" " "%h "; 75%_sample ( swap.used * 100 / (mem.util.used + swap.used) >= 50 ) -> shell "/usr/local/sbin/nagios.ext " "\"Swap Dependence\" " "0 " "\"Swap Dependence: [%v%]\" " "%h "; // ---------------------------------------- // Range of values, known constant multiple instances // ---------------------------------------- delta = 5 min; warn_level_load = 4; crit_level_load = 8; some_inst ( (kernel.all.load #'5 minute' < $warn_level_load) ) -> shell "/usr/local/sbin/nagios.ext " "\"System Load\" " "0 " "\"Load OK: \" " "%h " "%v "; some_inst ( ((kernel.all.load #'5 minute' >= $warn_level_load) && (kernel.all.load #'5 minute' < $crit_level_load)) ) -> shell "/usr/local/sbin/nagios.ext " "\"System Load\" " "1 " "\"Load increasing: \" " "%h " "%v "; some_inst ( (kernel.all.load #'5 minute' >= $crit_level_load) ) -> shell "/usr/local/sbin/nagios.ext " "\"System Load\" " "2 " "\"Load dangerously high: \" " "%h " "%v "; // Checking swap: // delta = 10 sec; // // 75%_sample ( // swap.pagesin > 50 || // swap.pagesout > 50 // ) -> print "Heavy paging..." & // syslog "Heavy paging..."; // // 75%_sample ( // swap.in > 10 || // swap.out > 10 // ) -> print "Heavy swapping..." & // syslog "Heavy swapping..."; // // 75%_sample ( // swap.used * 100 / (mem.util.used + swap.used) > 50 // ) -> print "Heavy dependence on swap..." & // syslog "Heavy dependence on swap..."; // ---------------------------------------- // Status (informational) reporting // ---------------------------------------- // delta = 1 hour; // // ( kernel.uname.version != '' ) // -> shell "/usr/local/sbin/nagios.ext " "\"Kernel Version\" " "0 " "\"Kernel: %v\" "