diff options
Diffstat (limited to 'config/nrpe2')
-rw-r--r-- | config/nrpe2/nrpe2.inc | 188 | ||||
-rw-r--r-- | config/nrpe2/nrpe2.xml | 166 |
2 files changed, 354 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 diff --git a/config/nrpe2/nrpe2.xml b/config/nrpe2/nrpe2.xml new file mode 100644 index 00000000..723bbba9 --- /dev/null +++ b/config/nrpe2/nrpe2.xml @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="utf-8" ?> +<packagegui> + <description>Nagios NRPEv2</description> + <requirements>Describe your package requirements here</requirements> + <name>nrpe2</name> + <version>2.11</version> + <title>NRPEv2</title> + <aftersaveredirect>/pkg_edit.php?xml=nrpe2.xml&id=0</aftersaveredirect> + <include_file>/usr/local/pkg/nrpe2.inc</include_file> + <menu> + <name>NRPEv2</name> + <tooltiptext></tooltiptext> + <section>Services</section> + <url>/pkg_edit.php?xml=nrpe2.xml&id=0</url> + </menu> + <service> + <name>NRPEv2</name> + <rcfile>nrpe2</rcfile> + <executable>nrpe2</executable> + <description>Nagios NRPE Daemon</description> + </service> + <configpath>installedpackages->package->nrpe2</configpath> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>077</chmod> + <item>http://www.pfsense.com/packages/config/nrpe2/nrpe2.inc</item> + </additional_files_needed> + <fields> + <field> + <type>listtopic</type> + <name>NRPE Options</name> + <fieldname>temp</fieldname> + </field> + <field> + <fielddescr>Enabled</fielddescr> + <fieldname>enabled</fieldname> + <description>Check this to enable NRPE daemon</description> + <type>checkbox</type> + </field> + <field> + <type>listtopic</type> + <name>Configuration Options</name> + <fieldname>temp</fieldname> + </field> + <field> + <fielddescr>Port Number</fielddescr> + <fieldname>server_port</fieldname> + <description>Port number we should wait for connections on. (Default: 5666)</description> + <type>input</type> + <required/> + </field> + <field> + <fielddescr>Bind IP Address</fielddescr> + <fieldname>server_address</fieldname> + <description>Set this to the IP address of the interface you want the daemon to listen on.</description> + <type>input</type> + <required/> + </field> + <field> + <fielddescr>Nagios Server(s)</fielddescr> + <fieldname>allowed_hosts</fieldname> + <description>IP Address of Nagios server, usualy a single IP, but if multiple delimit by comma</description> + <type>input</type> + <required/> + </field> + <field> + <type>listtopic</type> + <name>Commands</name> + <fieldname>temp</fieldname> + </field> + <field> + <fielddescr>Command Definitions that the Nagios server can call via the NRPE daemon.</fielddescr> + <fieldname>none</fieldname> + <type>rowhelper</type> + <rowhelper> + <rowhelperfield> + <fielddescr>Name (Allowed Characters: a-zA-Z_)</fielddescr> + <fieldname>name</fieldname> + <type>input</type> + <size>20</size> + <required/> + </rowhelperfield> + <rowhelperfield> + <fielddescr>Command</fielddescr> + <fieldname>command</fieldname> + <type>select</type> + <options> + <option><name></name><value></value></option> + <option><name>check_dhcp</name><value>check_dhcp</value></option> + <option><name>check_dig</name><value>check_dig</value></option> + <option><name>check_disk</name><value>check_disk</value></option> + <option><name>check_dns</name><value>check_dns</value></option> + <option><name>check_file_age</name><value>check_file_age</value></option> + <option><name>check_http</name><value>check_http</value></option> + <option><name>check_icmp</name><value>check_icmp</value></option> + <option><name>check_ifoperstatus</name><value>check_ifoperstatus</value></option> + <option><name>check_ifstatus</name><value>check_ifstatus</value></option> + <option><name>check_load</name><value>check_load</value></option> + <option><name>check_log</name><value>check_log</value></option> + <option><name>check_nntp</name><value>check_nntp</value></option> + <option><name>check_nntps</name><value>check_nntps</value></option> + <option><name>check_ntp</name><value>check_ntp</value></option> + <option><name>check_ntp_peer</name><value>check_ntp_peer</value></option> + <option><name>check_ntp_time</name><value>check_ntp_time</value></option> + <option><name>check_oracle</name><value>check_oracle</value></option> + <option><name>check_ping</name><value>check_ping</value></option> + <option><name>check_procs</name><value>check_procs</value></option> + <option><name>check_rpc</name><value>check_rpc</value></option> + <option><name>check_ssh</name><value>check_ssh</value></option> + <option><name>check_swap</name><value>check_swap</value></option> + <option><name>check_tcp</name><value>check_tcp</value></option> + <option><name>check_time</name><value>check_time</value></option> + <option><name>check_udp</name><value>check_udp</value></option> + <option><name>check_ups</name><value>check_ups</value></option> + <option><name>check_users</name><value>check_users</value></option> + </options> + </rowhelperfield> + <rowhelperfield> + <fielddescr>Warning Level</fielddescr> + <fieldname>warning</fieldname> + <description>At which level do you want a warning to be alerted on?</description> + <type>input</type> + <size>15</size> + <required/> + </rowhelperfield> + <rowhelperfield> + <fielddescr>Critical Level</fielddescr> + <fieldname>critical</fieldname> + <description>At which level do you want a warning to be alerted on?</description> + <type>input</type> + <size>15</size> + <required/> + </rowhelperfield> + <rowhelperfield> + <fielddescr>Extra Options</fielddescr> + <fieldname>extra</fieldname> + <description>Warning! Use at your own risk, incorrect settings here may prevent NRPE from starting!</description> + <type>input</type> + <size>25</size> + </rowhelperfield> + </rowhelper> + </field> + </fields> + <custom_delete_php_command> + nrpe2_custom_php_write_config(); + nrpe2_custom_php_service(); + </custom_delete_php_command> + <custom_add_php_command> + nrpe2_custom_php_write_config(); + nrpe2_custom_php_service(); + </custom_add_php_command> + <custom_php_install_command> + nrpe2_custom_php_install_command(); + nrpe2_custom_php_write_config(); + nrpe2_custom_php_service(); + </custom_php_install_command> + <custom_php_deinstall_command> + nrpe2_custom_php_deinstall_command(); + nrpe2_custom_php_write_config(); + </custom_php_deinstall_command> + <custom_php_resync_config_command> + </custom_php_resync_config_command> + <custom_php_command_before_form> + unset($_POST['temp']); + </custom_php_command_before_form> +</packagegui> |