aboutsummaryrefslogtreecommitdiffstats
path: root/config/nrpe2/nrpe2.inc
diff options
context:
space:
mode:
Diffstat (limited to 'config/nrpe2/nrpe2.inc')
-rw-r--r--config/nrpe2/nrpe2.inc188
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..b0f4f761
--- /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['command']}]=/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