diff --git a/net-mgmt/monitoring-plugins/Makefile b/net-mgmt/monitoring-plugins/Makefile index c0fc97c87954..f98c79a9a4c3 100644 --- a/net-mgmt/monitoring-plugins/Makefile +++ b/net-mgmt/monitoring-plugins/Makefile @@ -1,140 +1,141 @@ PORTNAME= monitoring-plugins PORTVERSION= 3.0.3 +PORTREVISION= 1 CATEGORIES= net-mgmt MASTER_SITES= https://www.monitoring-plugins.org/download/ \ LOCAL/mat/${PORTNAME} MAINTAINER= ports@FreeBSD.org COMMENT= Monitoring Plugins for Nagios WWW= https://www.monitoring-plugins.org/ LICENSE= GPLv3 LICENSE_FILE= ${WRKSRC}/COPYING USES= charsetfix gmake libtool perl5 ssl USE_SUBMAKE= yes GNU_CONFIGURE= yes CONFIGURE_ARGS= --datadir=${PREFIX}/share \ --libexecdir=${PREFIX}/libexec/nagios \ --localstatedir=${NAGIOSDIR} \ --prefix=${PREFIX} \ --sbindir=${PREFIX}/${NAGIOSWWWDIR}/cgi-bin \ --sysconfdir=${PREFIX}/etc/nagios \ --with-cgiurl=${NAGIOSCGIURL} \ --with-perl=${PERL} # Also, force some commands with their expected paths so that they don't get # disabled. CONFIGURE_ARGS+= --with-ping-command="/sbin/ping -n -t %d -c %d %s" \ --with-ping6-command="${_PING6_CMD}" \ ac_cv_path_PATH_TO_PING6=/sbin/ping6 \ ac_cv_path_PATH_TO_PING=/sbin/ping \ ac_cv_path_PATH_TO_QMAIL_QSTAT=/var/qmail/bin/qmail-qstat \ ac_cv_path_PATH_TO_SMBCLIENT=${LOCALBASE}/bin/smbclient \ ac_cv_path_PATH_TO_SUDO=${LOCALBASE}/bin/sudo CPPFLAGS+= -I${LOCALBASE}/include LIBS+= -L${LOCALBASE}/lib CONFLICTS_INSTALL= nagios-plugins OPTIONS_DEFINE= DBI EXTRAOPTS FPING IPV6 LDAP MYSQL NETSNMP NLS PGSQL \ QSTAT RADIUS SSH_PORTABLE OPTIONS_DEFAULT= DNS_BASE EXTRAOPTS OPTIONS_SINGLE= DNS OPTIONS_SINGLE_DNS= DNS_BASE DNS_BINDTOOLS OPTIONS_SUB= yes DBI_DESC= Check database using DBI DNS_BASE_DESC= Use drill for check_dig and no check_dns DNS_BINDTOOLS_DESC= Use dig and nslookup from dns/bind-tools DNS_DESC= Configuration of check_dig and check_dns (see help) EXTRAOPTS_DESC= Parsing of plugins ini config files for extra options FPING_DESC= Support for non-flooding fast ping (check_fping) LDAP_DESC= OpenLDAP support (check_ldap) MYSQL_DESC= MySQL support (check_mysql) NETSNMP_DESC= SNMP support (check_snmp) PGSQL_DESC= PostgreSQL support (check_pgsql) QSTAT_DESC= Game server query support (check_game) RADIUS_DESC= Radius support (check_radius) SSH_PORTABLE_DESC= Build check_ssh with ports openssh (instead of base) DBI_LIB_DEPENDS= libdbi.so:databases/libdbi DBI_CONFIGURE_WITH= dbi DNS_BASE_CONFIGURE_ON= --with-dig-command=/usr/bin/drill \ ac_cv_path_PATH_TO_NSLOOKUP= DNS_BASE_EXTRA_PATCHES= ${FILESDIR}/extra-patch-dig-to-drill.diff DNS_BINDTOOLS_BUILD_DEPENDS= ${LOCALBASE}/bin/dig:dns/bind-tools DNS_BINDTOOLS_RUN_DEPENDS= ${DNS_BINDTOOLS_BUILD_DEPENDS} DNS_BINDTOOLS_CONFIGURE_ON= --with-dig-command=${LOCALBASE}/bin/dig \ --with-nslookup-command=${LOCALBASE}/bin/nslookup EXTRAOPTS_CONFIGURE_ENABLE= extra-opts FPING_BUILD_DEPENDS= fping:net/fping FPING_RUN_DEPENDS= fping:net/fping FPING_CONFIGURE_OFF= ac_cv_path_PATH_TO_FPING6= \ ac_cv_path_PATH_TO_FPING= IPV6_CONFIGURE_WITH= ipv6 LDAP_USES= ldap LDAP_CONFIGURE_WITH= ldap MYSQL_USES= mysql MYSQL_CONFIGURE_WITH= mysql=${LOCALBASE} NETSNMP_BUILD_DEPENDS= p5-Net-SNMP>=0:net-mgmt/p5-Net-SNMP \ snmpcheck:net-mgmt/net-snmp NETSNMP_RUN_DEPENDS= p5-Net-SNMP>=0:net-mgmt/p5-Net-SNMP \ snmpcheck:net-mgmt/net-snmp NETSNMP_CONFIGURE_OFF= ac_cv_path_PATH_TO_SNMPGET= \ ac_cv_path_PATH_TO_SNMPGETNEXT= NLS_USES= gettext NLS_CONFIGURE_ENABLE= nls PGSQL_USES= pgsql PGSQL_CONFIGURE_WITH= pgsql=${LOCALBASE} QSTAT_BUILD_DEPENDS= qstat:games/qstat QSTAT_RUN_DEPENDS= qstat:games/qstat QSTAT_CONFIGURE_OFF= ac_cv_path_PATH_TO_QSTAT= \ ac_cv_path_PATH_TO_QUAKESTAT= RADIUS_LIB_DEPENDS= libradiusclient-ng.so:net/radiusclient RADIUS_CONFIGURE_WITH= radius SSH_PORTABLE_BUILD_DEPENDS= ${LOCALBASE}/bin/ssh:security/openssh-portable SSH_PORTABLE_RUN_DEPENDS:= ${SSH_PORTABLE_BUILD_DEPENDS} SSH_PORTABLE_CONFIGURE_ON= --with-ssh-command=${LOCALBASE}/bin/ssh NAGIOSDIR?= /var/spool/nagios NAGIOSWWWDIR?= www/nagios NAGIOSHTMURL?= /nagios NAGIOSCGIURL?= ${NAGIOSHTMURL}/cgi-bin .include _PING6_CMD= /sbin/ping6 -n -t %d -c %d %s .if !exists(/usr/bin/ssh) && empty(PORT_OPTIONS:MSSH_PORTABLE) PLIST_SUB+= SSH="@comment " .else PLIST_SUB+= SSH="" .endif post-patch: .for file in check_by_ssh.c check_disk.c check_http.c check_mrtgtraf.c \ check_nagios.c check_ntp_peer.c check_ntp_time.c \ check_pgsql.c check_snmp.c check_ssh.c check_swap.c check_time.c \ check_users.c @${REINPLACE_CMD} -e 's|setlocale (LC_ALL, "");|setlocale (LC_ALL, ""); setlocale(LC_NUMERIC, "C");|g' ${WRKSRC}/plugins/${file} .endfor .include diff --git a/net-mgmt/monitoring-plugins/files/patch-plugins-scripts_check__mailq.pl b/net-mgmt/monitoring-plugins/files/patch-plugins-scripts_check__mailq.pl index fc244ca94d41..b94fd8277ee0 100644 --- a/net-mgmt/monitoring-plugins/files/patch-plugins-scripts_check__mailq.pl +++ b/net-mgmt/monitoring-plugins/files/patch-plugins-scripts_check__mailq.pl @@ -1,51 +1,51 @@ --- plugins-scripts/check_mailq.pl.orig 2025-11-08 16:31:19.283295000 +0100 +++ plugins-scripts/check_mailq.pl 2025-11-08 16:39:40.042634000 +0100 @@ -571,7 +571,39 @@ elsif ( $mailq eq "nullmailer" ) { $state = $ERRORS{'CRITICAL'}; } } # end of ($mailq eq "nullmailer") + +elsif ( $mailq eq "opensmtp" ) { + ## open mailq + if ( defined $utils::PATH_TO_MAILQ && -x $utils::PATH_TO_MAILQ ) { -+ if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { ++ if (! open (MAILQ, "$utils::PATH_TO_MAILQ | " ) ) { + print "ERROR: could not open $utils::PATH_TO_MAILQ \n"; + exit $ERRORS{'UNKNOWN'}; + } + }elsif( defined $utils::PATH_TO_MAILQ){ + unless (-x $utils::PATH_TO_MAILQ) { + print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n"; + exit $ERRORS{'UNKNOWN'}; + } + } else { + print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n"; + exit $ERRORS{'UNKNOWN'}; + } + + $msg_q++ while (); + close(MAILQ) ; + if ($msg_q < $opt_w) { + $msg = "OK: $mailq mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; + $state = $ERRORS{'OK'}; + }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) { + $msg = "WARNING: $mailq mailq is $msg_q (threshold w = $opt_w)"; + $state = $ERRORS{'WARNING'}; + }else { + $msg = "CRITICAL: $mailq mailq is $msg_q (threshold c = $opt_c)"; + $state = $ERRORS{'CRITICAL'}; + } +} # end of ($mailq eq "opensmtp") + # Perfdata support print "$msg|unsent=$msg_q;$opt_w;$opt_c;0\n"; exit $state; @@ -635,7 +667,7 @@ sub process_arguments(){ } if (defined $opt_M) { - if ($opt_M =~ /^(sendmail|qmail|postfix|exim|nullmailer)$/) { + if ($opt_M =~ /^(sendmail|qmail|postfix|exim|nullmailer|opensmtp)$/) { $mailq = $opt_M ; }elsif( $opt_M eq ''){ $mailq = 'sendmail';