diff options
Diffstat (limited to 'config/nrpe2/nrpe2.inc')
-rw-r--r-- | config/nrpe2/nrpe2.inc | 188 |
1 files changed, 188 insertions, 0 deletions
diff --git a/config/nrpe2/nrpe2.inc b/config/nrpe2/nrpe2.inc new file mode 100644 index 00000000..b4948799 --- /dev/null +++ b/config/nrpe2/nrpe2.inc @@ -0,0 +1,188 @@ +<?php + +/** + * Author: Erik Kristensen + * Email: erik@erikkristensen.com + * + * Developed for: pfSense.com + * + * Copyright (c) 2009, pfSense.com + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in thedocumentation and/or other materials provided with the distribution. + * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +require('filter.inc'); + +function nrpe2_custom_php_install_command() +{ + global $g, $config; + conf_mount_rw(); + + $ip = $config['interfaces']['lan']['ipaddr']; + + $config['installedpackages']['nrpe2']['config'][0]['enabled'] = TRUE; + $config['installedpackages']['nrpe2']['config'][0]['server_address'] = $ip; + $config['installedpackages']['nrpe2']['config'][0]['server_port'] = 5666; + $config['installedpackages']['nrpe2']['config'][0]['allowed_hosts'] = "127.0.0.1"; + + $config['installedpackages']['nrpe2']['config'][0]['row'] = array( + 0 => array( + 'name' => 'check_users', + 'command' => 'check_users', + 'warning' => '5', + 'critical' => '10' + ), + 1 => array( + 'name' => 'check_load', + 'command' => 'check_load', + 'warning' => '15,10,5', + 'critical' => '30,25,20', + ), + 2 => array( + 'name' => 'check_root', + 'command' => 'check_disk', + 'warning' => '20%', + 'critical' => '10%', + 'extra' => '-p /' + ), + 3 => array( + 'name' => 'check_var', + 'command' => 'check_disk', + 'warning' => '20%', + 'critical' => '10%', + 'extra' => '-p /var/run' + ), + 4 => array( + 'name' => 'check_zombie_procs', + 'command' => 'check_procs', + 'warning' => '5', + 'critical' => '10', + 'extra' => '-s Z' + ), + 5 => array( + 'name' => 'check_total_procs', + 'command' => 'check_procs', + 'warning' => '150', + 'critical' => '200' + ) + ); + + $fd = fopen('/usr/local/etc/rc.d/nrpe2', 'w'); + $rc_file = <<<EOD +#!/bin/sh +# +# $FreeBSD: ports/net-mgmt/nrpe2/files/nrpe2.in,v 1.3 2008/12/25 20:24:43 miwi Exp $ +# + +# PROVIDE: nrpe2 +# REQUIRE: NETWORKING +# KEYWORD: shutdown + +# +# Add the following lines to /etc/rc.conf to enable nrpe2: +# nrpe2_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable nrpe2. +# nrpe2_flags (str): Set to "" by default. +# nrpe2_configfile (str): Set to "/usr/local/etc/nrpe.cfg" by default. +# nrpe2_pidfile (str): Set to "/var/spool/nagios/nrpe2.pid" by default. +# + +. /etc/rc.subr + +nrpe2_enable=\${nrpe2_enable-"YES"} +name="nrpe2" +rcvar=`set_rcvar` + +command="/usr/local/sbin/nrpe2" +command_args="-d" +extra_commands="reload" + +sig_reload=HUP + +[ -z "\${nrpe2_flags}" ] && nrpe2_flags="" +[ -z "\${nrpe2_configfile}" ] && nrpe2_configfile="/usr/local/etc/nrpe.cfg" +[ -z "\${nrpe2_pidfile}" ] && nrpe2_pidfile="/var/run/nrpe2.pid" + +load_rc_config "\${name}" + +pidfile="\${nrpe2_pidfile}" + +required_files="\${nrpe2_configfile}" +command_args="\${command_args} -c \${nrpe2_configfile}" + +run_rc_command "$1" +EOD; + fwrite($fd, $rc_file); + fclose($fd); + + conf_mount_ro(); +} + +function nrpe2_custom_php_deinstall_command() +{ + global $g, $config; + conf_mount_rw(); + + conf_mount_ro(); +} + +function nrpe2_custom_php_write_config() +{ + global $g, $config; + + foreach ($config['installedpackages']['nrpe2']['config'][0]['row'] as $cmd) + { + $cmds[] = "command[{$cmd['name']}]=/usr/local/libexec/nagios/{$cmd['command']} -w {$cmd['warning']} -c {$cmd['critical']} {$cmd['extra']}\n"; + } + $commands = implode($cmds); + + $server_port = $config['installedpackages']['nrpe2']['config'][0]['server_port']; + $server_address = $config['installedpackages']['nrpe2']['config'][0]['server_address']; + $allowed_hosts = $config['installedpackages']['nrpe2']['config'][0]['allowed_hosts']; + + $fd = fopen('/usr/local/etc/nrpe.cfg', 'w'); + $nrpe_cfg = <<<EOD +log_facility=daemon +pid_file=/var/run/nrpe2.pid +server_port={$server_port} +server_address={$server_address} +nrpe_user=nagios +nrpe_group=nagios +allowed_hosts={$allowed_hosts} +dont_blame_nrpe=0 +debug=0 +command_timeout=60 +connection_timeout=300 +{$commands} +EOD; + fwrite($fd, $nrpe_cfg); + fclose($fd); +} + +function nrpe2_custom_php_service() +{ + global $g, $config; + + if ($config['installedpackages']['nrpe2']['config'][0]['enabled'] == "on") + { + exec("/usr/local/etc/rc.d/nrpe2 restart"); + } + else + { + exec("/usr/local/etc/rc.d/nrpe2 stop"); + } +} + +?>
\ No newline at end of file |