1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-24 00:45:52 +00:00

Update to 2.0.24.

Fixup the if_ and if_errcoll_ plugins, interface names can be longer than 5
chars.  Add an if_packets_ plugin.

Allow people to have a custom crontab that won't be touched when
installing/deinstalling.

Sponsored by:	Absolight
This commit is contained in:
Mathieu Arnold 2014-10-27 14:43:47 +00:00
parent 60e8f6b3de
commit d25c9df468
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=371586
11 changed files with 233 additions and 52 deletions

View File

@ -1,2 +1,2 @@
SHA256 (munin-2.0.23.tar.gz) = efc23be5a2fd31eacbd6a55eb3526858c4618baff01c16cbe64918a5cfa5df5a
SIZE (munin-2.0.23.tar.gz) = 1337241
SHA256 (munin-2.0.24.tar.gz) = 74940896326bbb33d5607c39d1f972f69c5fc4278c93ae185338113a62a6a4e6
SIZE (munin-2.0.24.tar.gz) = 1337330

View File

@ -1,8 +1,11 @@
MUNIN_VERSION= 2.0.23
MUNIN_VERSION= 2.0.24
MUNIN_SITES= SF/${PORTNAME}/stable/${MUNIN_VERSION}
MUNIN_DISTINFO= ${PORTSDIR}/sysutils/munin-common/distinfo
MUNIN_PATCHES= ${PORTSDIR}/sysutils/munin-common/files/patch-Makefile \
DISTINFO_FILE= ${PORTSDIR}/sysutils/munin-common/distinfo
.if ${PKGNAMESUFFIX} != -common
EXTRA_PATCHES+= ${PORTSDIR}/sysutils/munin-common/files/patch-Makefile \
${PORTSDIR}/sysutils/munin-common/files/patch-Makefile.config
.endif
PORTSCOUT= limit:^2\.0\.

View File

@ -47,8 +47,6 @@ PKGMESSAGE= ${WRKDIR}/pkg-message
.include "${.CURDIR}/../munin-common/munin.mk"
EXTRA_PATCHES= ${MUNIN_PATCHES}
DISTINFO_FILE= ${MUNIN_DISTINFO}
ALL_TARGET= infiles build-master build-man
INSTALL_TARGET= install-master-prime
NO_ARCH= yes

View File

@ -5,4 +5,8 @@ has been placed in %%ETCDIR%%/munin.conf.
Please edit it according to your needs.
The Munin server will be run from cron under the user 'munin'.
If you need to customize the munin crontab, remove the lines
containing #BEGIN_MUNIN_MAIN and #END_MUNIN_MAIN, and add a line
with #MANUAL_MUNIN_CRONTAB.
********************************************************************

View File

@ -1,14 +1,17 @@
#! /bin/sh
# ex:sw=4 sts=4
ask() {
local question default answer
question=$1
default=$2
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]
then
read -p "${question} [${default}]? " answer
fi
if [ x${answer} = x ]; then
if [ x${answer} = x ]
then
answer=${default}
fi
echo ${answer}
@ -36,7 +39,8 @@ delete_crontab_entries() {
TMPFILE=`mktemp -t munin` || exit 1
crontab -u munin -l | sed -e "/^$b\$/,/^$e\$/d" -e '/^[ ]*#/d' -e '/^$/d' > $TMPFILE
if [ -s $TMPFILE ]; then
if [ -s $TMPFILE ]
then
crontab -u munin -l | sed -e "/^$b\$/,/^$e\$/d" | crontab -u munin -
echo "The crontab for user munin had manually created entries."
echo "Only the automatically created entries have been removed."
@ -50,8 +54,8 @@ delete_crontab_entries() {
}
delnewsyslog() {
tmp="/etc/#munin-node$$"
sed -e '/^\/var\/log\/munin\/\*\.log[ ]/d' /etc/newsyslog.conf >${tmp}
tmp=`mktemp -t munin` || exit 1
sed -e '/^\/var\/log\/munin\/\*\.log[ ]/d' /etc/newsyslog.conf >${tmp}
cat ${tmp} > /etc/newsyslog.conf
rm ${tmp}
}
@ -59,23 +63,27 @@ delnewsyslog() {
newsyslog() {
ENTRY=`fgrep '/var/log/munin/*' /etc/newsyslog.conf`
DEFAULT='/var/log/munin/*.log munin:munin 644 7 * @T00 GNWZ'
if [ -z "$ENTRY" ]; then
exit 0
elif [ "$ENTRY" = "$DEFAULT" ]; then
delnewsyslog
if [ -z "$ENTRY" ]
then
exit 0
elif [ "$ENTRY" = "$DEFAULT" ]
then
delnewsyslog
elif yesno "You have changed the default munin-master entry in \"/etc/newsyslog.conf\".
Do you want me to delete it?" y; then
delnewsyslog
echo "Done."
Do you want me to delete it?" y
then
delnewsyslog
echo "Done."
fi
}
case $2 in
DEINSTALL)
if [ -z "${PACKAGE_BUILDING}" ]; then
delete_crontab_entries '#BEGIN_MUNIN_MAIN' '#END_MUNIN_MAIN'
newsyslog
if [ -z "${PACKAGE_BUILDING}" ]
then
delete_crontab_entries '#BEGIN_MUNIN_MAIN' '#END_MUNIN_MAIN'
newsyslog
fi
;;
POST-DEINSTALL)

View File

@ -1,14 +1,17 @@
#! /bin/sh
# ex:sw=4 sts=4
ask() {
local question default answer
question=$1
default=$2
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]; then
if [ -z "${PACKAGE_BUILDING}" -a -z "${BATCH}" ]
then
read -p "${question} [${default}]? " answer
fi
if [ x${answer} = x ]; then
if [ x${answer} = x ]
then
answer=${default}
fi
echo ${answer}
@ -34,32 +37,33 @@ create_crontab_entries() {
b=$1
e=$2
if crontab -u munin -l > /dev/null 2>&1; then
TMPFILE=`mktemp -t munin` || exit 1
cat > $TMPFILE
crontab -u munin -l | sed -e "/^$b$/,/^$e$/d" | \
cat - $TMPFILE | crontab -u munin -
rm $TMPFILE
if crontab -u munin -l > /dev/null 2>&1
then
if ! crontab -u munin -l | grep -q MANUAL_MUNIN_CRONTAB
then
TMPFILE=`mktemp -t munin` || exit 1
cat > $TMPFILE
crontab -u munin -l | sed -e "/^$b$/,/^$e$/d" | \
cat - $TMPFILE | crontab -u munin -
rm $TMPFILE
fi
else
crontab -u munin -
fi
}
mklogdir() {
}
newsyslog() {
if fgrep -q '/var/log/munin/*' /etc/newsyslog.conf; then
:
else
if ! fgrep -q '/var/log/munin/*' /etc/newsyslog.conf
then
cat >> /etc/newsyslog.conf <<EOT
/var/log/munin/*.log munin:munin 644 7 * @T00 GNWZ
EOT
fi
fi
}
move_www_dir() {
if [ -d ${PKG_PREFIX}/www/data/munin -a ! -d ${PKG_PREFIX}/www/munin ]; then
if [ -d ${PKG_PREFIX}/www/data/munin -a ! -d ${PKG_PREFIX}/www/munin ]
then
echo Migrating ${PKG_PREFIX}/www/data/munin to ${PKG_PREFIX}/www/munin
mv ${PKG_PREFIX}/www/data/munin ${PKG_PREFIX}/www/munin
fi
@ -71,11 +75,12 @@ move_www_dir() {
case $2 in
PRE-INSTALL)
move_www_dir # at some point in the installation, the www dir is created
;;
;;
POST-INSTALL)
if [ -z "${PACKAGE_BUILDING}" ]; then
newsyslog
create_crontab_entries '#BEGIN_MUNIN_MAIN' '#END_MUNIN_MAIN' <<EOT
if [ -z "${PACKAGE_BUILDING}" ]
then
newsyslog
create_crontab_entries '#BEGIN_MUNIN_MAIN' '#END_MUNIN_MAIN' <<EOT
#BEGIN_MUNIN_MAIN
MAILTO=root
@ -83,5 +88,5 @@ MAILTO=root
#END_MUNIN_MAIN
EOT
fi
;;
;;
esac

View File

@ -3,7 +3,6 @@
PORTNAME= munin
PORTVERSION= ${MUNIN_VERSION}
PORTREVISION= 1
CATEGORIES= sysutils perl5
MASTER_SITES= ${MUNIN_SITES}
PKGNAMESUFFIX= -node
@ -32,8 +31,6 @@ SHEBANG_FILES= node/sbin/munin-node node/sbin/munin-sched \
.include "${.CURDIR}/../munin-common/munin.mk"
DISTINFO_FILE= ${MUNIN_DISTINFO}
EXTRA_PATCHES+= ${MUNIN_PATCHES}
ALL_TARGET= build-node build-plugins
INSTALL_TARGET= install-node-prime install-plugins-prime
NO_ARCH= yes

View File

@ -1,6 +1,42 @@
--- plugins/node.d.freebsd/if_.in.orig 2014-04-22 19:29:32 UTC
--- plugins/node.d.freebsd/if_.in.orig 2014-10-26 14:12:24 UTC
+++ plugins/node.d.freebsd/if_.in
@@ -83,9 +83,12 @@
@@ -22,7 +22,7 @@
INTERFACE=${0##*if_}
if [ "$1" = "autoconf" ]; then
- if [ -x /usr/bin/netstat ]; then
+ if [ -x /sbin/ifconfig -o -x /usr/bin/netstat ]; then
echo yes
exit 0
else
@@ -32,8 +32,12 @@
fi
if [ "$1" = "suggest" ]; then
- if [ -x /usr/bin/netstat ]; then
- netstat -i -b -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pflog/d' -e '/<Link#[0-9]*>/s/\** .*//p'
+ if [ -x /sbin/ifconfig ]
+ then
+ ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo
+ exit 0
+ elif [ -x /usr/bin/netstat ]; then
+ netstat -i -b -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pf(log|sync)/d' -e '/<Link#[0-9]*>/s/\** .*//p'
exit 0
else
exit 1
@@ -68,8 +72,10 @@
/<Link#[0-9]*>/ {
if (NF == 10) {
rsum += $6; osum += $9;
- } else {
+ } else if (NF == 11) {
rsum += $7; osum += $10;
+ } else { # NF == 12
+ rsum += $8; osum += $11;
}
}
END {
@@ -83,9 +89,13 @@
if (NF == 10) {
print "rbytes.value", $6;
print "obytes.value", $9;
@ -8,9 +44,10 @@
+ } else if (NF == 11) {
print "rbytes.value", $7;
print "obytes.value", $10;
+ } else {
+ } else { # NF == 12
+ print "rbytes.value", $8;
+ print "obytes.value", $11;
}
}'
fi
+

View File

@ -1,6 +1,30 @@
--- plugins/node.d.freebsd/if_errcoll_.in.orig 2014-04-22 19:29:32 UTC
--- plugins/node.d.freebsd/if_errcoll_.in.orig 2014-10-26 14:12:24 UTC
+++ plugins/node.d.freebsd/if_errcoll_.in
@@ -59,9 +59,13 @@
@@ -19,7 +19,7 @@
INTERFACE=${0##*if_errcoll_}
if [ "$1" = "autoconf" ]; then
- if [ -x /usr/bin/netstat ]; then
+ if [ -x /sbin/ifconfig -o -x /usr/bin/netstat ]; then
echo yes
exit 0
else
@@ -29,8 +29,12 @@
fi
if [ "$1" = "suggest" ]; then
- if [ -x /usr/bin/netstat ]; then
- netstat -i -b -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pflog/d' -e '/<Link#[0-9]*>/s/\** .*//p'
+ if [ -x /sbin/ifconfig ]
+ then
+ ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo
+ exit 0
+ elif [ -x /usr/bin/netstat ]; then
+ netstat -i -b -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pf(log|sync)/d' -e '/<Link#[0-9]*>/s/\** .*//p'
exit 0
else
exit 1
@@ -59,9 +63,13 @@
print "ierrors.value", $5;
print "oerrors.value", $8;
print "collisions.value", $10;
@ -9,7 +33,7 @@
print "ierrors.value", $6;
print "oerrors.value", $9;
print "collisions.value", $11;
+ } else {
+ } else { # NF == 12
+ print "ierrors.value", $6;
+ print "oerrors.value", $10;
+ print "collisions.value", $12;

View File

@ -0,0 +1,104 @@
--- plugins/node.d.freebsd/if_packets_.in.orig 2014-10-27 10:21:08 UTC
+++ plugins/node.d.freebsd/if_packets_.in
@@ -0,0 +1,101 @@
+#!@@GOODSH@@
+# -*- sh -*-
+#
+# Wildcard-plugin to monitor network interfaces. To monitor an
+# interface, link if_<interface> to this file. E.g.
+#
+# ln -s /usr/share/munin/node/plugins-auto/if_ /etc/munin/node.d/if_eth0
+#
+# ...will monitor eth0.
+#
+# To aggregate all network interfaces on the system (except lo0),
+# link if_aggregated to this file.
+#
+# Any device found in /usr/bin/netstat can be monitored.
+#
+# Magic markers (optional - used by munin-config and some installation
+# scripts):
+#
+#%# family=auto
+#%# capabilities=autoconf suggest
+
+INTERFACE=${0##*if_}
+
+if [ "$1" = "autoconf" ]; then
+ if [ -x /sbin/ifconfig -o -x /usr/bin/netstat ]; then
+ echo yes
+ exit 0
+ else
+ echo "no (/usr/bin/netstat not found)"
+ exit 0
+ fi
+fi
+
+if [ "$1" = "suggest" ]; then
+ if [ -x /sbin/ifconfig ]
+ then
+ ifconfig -l | sed -Ee 's/[[:<:]](pfsync|faith|pf(log|sync)|lo|plip|carp|enc|fwe)[^ ]*//g' | xargs -n 1 echo
+ exit 0
+ elif [ -x /usr/bin/netstat ]; then
+ netstat -i -b -n | sed -n -e '/^faith/d' -e '/^lo[0-9]/d' -e '/^pf(log|sync)/d' -e '/<Link#[0-9]*>/s/\** .*//p'
+ exit 0
+ else
+ exit 1
+ fi
+fi
+
+if [ "$1" = "config" ]; then
+
+ echo "graph_order rpackets opackets"
+ echo "graph_title $INTERFACE pps"
+ echo 'graph_args --base 1000'
+ echo 'graph_vlabel packets per ${graph_period} in (-) / out (+)'
+ echo 'graph_category network'
+ echo "graph_info This graph shows the packets counter of the $INTERFACE network interface. Please note that the traffic is shown in packets per second."
+ echo 'rpackets.label received'
+ echo 'rpackets.type COUNTER'
+ echo 'rpackets.graph no'
+
+ echo 'rpackets.min 0'
+ echo 'opackets.label pps'
+ echo 'opackets.type COUNTER'
+ echo 'opackets.negative rpackets'
+
+ echo 'opackets.min 0'
+ echo "opackets.info Packets sent (+) and received (-) on the $INTERFACE network interface."
+ exit 0
+fi
+
+if [ "$INTERFACE" = "aggregated" ]; then
+ /usr/bin/netstat -i -b -n | grep -v '^lo' | awk '
+BEGIN { rsum = 0; osum = 0; }
+/<Link#[0-9]*>/ {
+ if (NF == 10) {
+ rsum += $4; osum += $7;
+ } else if (NF == 11) {
+ rsum += $5; osum += $8;
+ } else { # NF == 12
+ rsum += $6; osum += $9;
+ }
+}
+END {
+ printf "rpackets.value %i\n", rsum;
+ printf "opackets.value %i\n", osum;
+}'
+
+else
+ /usr/bin/netstat -i -b -n -I $INTERFACE | awk '
+/<Link#[0-9]*>/ {
+ if (NF == 10) {
+ print "rpackets.value", $4;
+ print "opackets.value", $7;
+ } else if (NF == 11) {
+ print "rbytes.value", $5;
+ print "obytes.value", $8;
+ } else { # NF == 12
+ print "rpackets.value", $6;
+ print "opackets.value", $9;
+ }
+}'
+fi
+

View File

@ -102,6 +102,7 @@ sbin/munin-sched
%%DATADIR%%/plugins/http_loadtime
%%DATADIR%%/plugins/if_
%%DATADIR%%/plugins/if_errcoll_
%%DATADIR%%/plugins/if_packets_
%%DATADIR%%/plugins/ifx_concurrent_sessions_
%%DATADIR%%/plugins/iostat
%%DATADIR%%/plugins/ipac-ng