diff options
author | mat <mat@FreeBSD.org> | 2004-03-02 23:54:05 +0800 |
---|---|---|
committer | mat <mat@FreeBSD.org> | 2004-03-02 23:54:05 +0800 |
commit | fbc0d4b9ce67cdbcdb56f828341b653eb6325202 (patch) | |
tree | 4f603f76b5f734f117aead81232da91859e0bc70 /sysutils/munin-node | |
parent | 8f2a6f8706344b039832c6710419c012d848180c (diff) | |
download | freebsd-ports-graphics-fbc0d4b9ce67cdbcdb56f828341b653eb6325202.tar.gz freebsd-ports-graphics-fbc0d4b9ce67cdbcdb56f828341b653eb6325202.tar.zst freebsd-ports-graphics-fbc0d4b9ce67cdbcdb56f828341b653eb6325202.zip |
Add Munin network-wide graphing framework (node)
This is the node part. It is used on all machines Munin shall watch.
PR: ports/62479
Submitted by: Lupe Christoph <lupe@lupe-christoph.de>
Diffstat (limited to 'sysutils/munin-node')
-rw-r--r-- | sysutils/munin-node/Makefile | 58 | ||||
-rw-r--r-- | sysutils/munin-node/distinfo | 2 | ||||
-rw-r--r-- | sysutils/munin-node/files/munin-node.sh | 26 | ||||
-rw-r--r-- | sysutils/munin-node/files/patch-Makefile.config | 72 | ||||
-rw-r--r-- | sysutils/munin-node/files/patch-munin-node.conf.in | 11 | ||||
-rw-r--r-- | sysutils/munin-node/files/pkg-message | 12 | ||||
-rw-r--r-- | sysutils/munin-node/pkg-deinstall | 61 | ||||
-rw-r--r-- | sysutils/munin-node/pkg-descr | 13 | ||||
-rw-r--r-- | sysutils/munin-node/pkg-install | 88 | ||||
-rw-r--r-- | sysutils/munin-node/pkg-plist | 60 |
10 files changed, 403 insertions, 0 deletions
diff --git a/sysutils/munin-node/Makefile b/sysutils/munin-node/Makefile new file mode 100644 index 00000000000..a300189e83d --- /dev/null +++ b/sysutils/munin-node/Makefile @@ -0,0 +1,58 @@ +# New ports collection makefile for: munin-node +# Date created: 25 Januar 2004 +# Whom: Lupe Christoph <lupe@lupe-christoph.de> +# +# $FreeBSD$ +# + +PORTNAME= munin +PORTVERSION= 1.0.0.p3 +CATEGORIES= sysutils perl5 +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} +MASTER_SITE_SUBDIR= munin +PKGNAMESUFFIX= -node +DISTNAME= munin_1.0.0pre3 + +MAINTAINER= lupe@lupe-christoph.de +COMMENT= Node-specific part of Munin + +BUILD_DEPENDS= ${RUN_DEPENDS} +RUN_DEPENDS= ${SITE_PERL}/Net/Server/Fork.pm:${PORTSDIR}/net/p5-Net-Server + +.include <bsd.port.pre.mk> + +.if ${PERL_LEVEL} < 500800 +RUN_DEPENDS+= ${SITE_PERL}/Net/Domain.pm:${PORTSDIR}/net/p5-Net +.endif + +USE_GMAKE= yes +PATCH_STRIP= -p1 +WRKSRC= ${WRKDIR}/munin-1.0.0pre3 +PKGMESSAGE= ${WRKDIR}/pkg-message +ALL_TARGET= DATADIR=${DATADIR} build build-man +INSTALL_TARGET= DATADIR=${DATADIR} install-node install-node-plugins + +MAN5= munin-node.conf.5 +MAN8= munin-node-configure.8 munin-node.8 munin-run.8 + +pre-install: + @${SED} 's@%%PREFIX%%@${LOCALBASE}@g' ${FILESDIR}/pkg-message > ${PKGMESSAGE} + @PKG_PREFIX=${PREFIX} ${SH} pkg-install ${PKGNAME} PRE-INSTALL + +post-install: + @${SED} 's@%PREFIX%@${LOCALBASE}@g' ${FILESDIR}/munin-node.sh > ${PREFIX}/etc/rc.d/munin-node.sh + @${CHMOD} +x ${PREFIX}/etc/rc.d/munin-node.sh + @if [ ! -f ${PREFIX}/etc/munin/plugin-conf.d/plugins.conf ]; then \ + ${INSTALL_DATA} ${WRKSRC}/plugins.conf ${PREFIX}/etc/munin/plugin-conf.d/plugins.conf; \ + fi + @${CAT} ${PKGMESSAGE} + @${INSTALL_MAN} -d ${PREFIX}/man/man5 + @${INSTALL_MAN} -d ${PREFIX}/man/man8 + @${INSTALL_MAN} -C ${WRKSRC}/build/doc/munin-node.conf.5 ${PREFIX}/man/man5 + @${INSTALL_MAN} -C ${WRKSRC}/build/doc/munin-node-configure.8 ${PREFIX}/man/man8 + @${INSTALL_MAN} -C ${WRKSRC}/build/doc/munin-node.8 ${PREFIX}/man/man8 + @${INSTALL_MAN} -C ${WRKSRC}/build/doc/munin-run.8 ${PREFIX}/man/man8 + @PKG_PREFIX=${PREFIX} ${SH} pkg-install ${PKGNAME} POST-INSTALL + @${ECHO} ${DISTNAME} | ${SED} -e 's/munin_//' > ${PREFIX}/etc/munin/VERSION.node + +.include <bsd.port.post.mk> diff --git a/sysutils/munin-node/distinfo b/sysutils/munin-node/distinfo new file mode 100644 index 00000000000..33d0172cbc0 --- /dev/null +++ b/sysutils/munin-node/distinfo @@ -0,0 +1,2 @@ +MD5 (munin_1.0.0pre3.tar.gz) = f1aea51a61304b824dd61d7ad7808f6d +SIZE (munin_1.0.0pre3.tar.gz) = 120572 diff --git a/sysutils/munin-node/files/munin-node.sh b/sysutils/munin-node/files/munin-node.sh new file mode 100644 index 00000000000..a0b47d4e1f5 --- /dev/null +++ b/sysutils/munin-node/files/munin-node.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +PROGRAM=%PREFIX%/sbin/munin-node +CONFIG=%PREFIX%/etc/munin/munin-node.conf + +case "$1" in + start) + if [ -x $PROGRAM -a -f $CONFIG -a -d $PLUGINS ]; then + $PROGRAM --config $CONFIG && echo -n ' munin-node' + fi + ;; + + stop) + if [ -f $CONFIG ]; then + PIDFILE=`awk '$1 == "pid_file" { print $2 }' $CONFIG` + if [ -f $PIDFILE ]; then + /bin/kill `cat $PIDFILE` && echo -n ' munin-node' + fi + fi + ;; + + *) + echo "Usage: `basename $0` { start | stop }" + exit 64 + ;; +esac diff --git a/sysutils/munin-node/files/patch-Makefile.config b/sysutils/munin-node/files/patch-Makefile.config new file mode 100644 index 00000000000..7e1b893d6f0 --- /dev/null +++ b/sysutils/munin-node/files/patch-Makefile.config @@ -0,0 +1,72 @@ +--- munin-1.0.0pre3.orig/Makefile.config Sun Feb 1 22:05:52 2004 ++++ munin-1.0.0pre3/Makefile.config Sat Feb 7 12:48:23 2004 +@@ -7,42 +7,46 @@ + # + # the base of the Munin installation. + # +-PREFIX = $(DESTDIR)/opt/munin ++ifdef PREFIX ++UPREFIX=$(PREFIX) ++else ++UPREFIX=/usr ++endif + + # Where Munin keeps its configurations (server.conf, client.conf, ++) +-CONFDIR = $(DESTDIR)/etc/opt/munin ++CONFDIR = $(PREFIX)/etc/munin + + # Server only - where to put munin-cron +-BINDIR = $(PREFIX)/bin ++BINDIR = $(UPREFIX)/bin + + # Client only - where to put munin-node, munin-node-configure, and munin-run +-SBINDIR = $(PREFIX)/sbin ++SBINDIR = $(UPREFIX)/sbin + + # Where to put text and html documentation +-DOCDIR = $(PREFIX)/doc ++DOCDIR = $(UPREFIX)/doc + + # Where to put man pages +-MANDIR = $(PREFIX)/man ++MANDIR = $(UPREFIX)/man + + # Where to put internal binaries and plugin repository +-LIBDIR = $(PREFIX)/lib ++LIBDIR = ${DATADIR} + + # Server only - Output directory +-HTMLDIR = $(PREFIX)/var/www ++HTMLDIR = $(PREFIX)/www/data/munin + + # Client only - Where to put RRD files and other intenal data +-DBDIR = $(DESTDIR)/var/opt/munin ++DBDIR = $(PREFIX)/var/munin + + # Client only - Where plugins should put their states. Must be writable by + # group "munin", and should be preserved between reboots + PLUGSTATE = $(DBDIR)/plugin-state + + # Where Munin should place its logs. +-LOGDIR = $(DESTDIR)/var/log/munin ++LOGDIR = /var/log + + # Location of PID files and other statefiles. On the server, must be + # writable by the user "munin". +-STATEDIR = $(DESTDIR)/var/run/munin ++STATEDIR = /var/run/munin + + # The perl interpreter to use + PERL = $(shell which perl) +@@ -65,9 +69,8 @@ + GROUP = munin + + # Which command to use to check if the USER and GROUP to run Munin as, exists. +-GETENT = $(shell which getent || which true 2>/dev/null) +-CHECKUSER = $(shell $(GETENT) passwd $(USER) >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) +-CHECKGROUP = $(shell $(GETENT) group $(GROUP) >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) ++CHECKUSER:= $(shell grep $(USER) /etc/passwd >/dev/null 2>/dev/null || (echo "echo User $(USER) nonexistant. Create the user and retry; exit 2")) ++CHECKGROUP:= $(shell grep $(GROUP) /etc/group >/dev/null 2>/dev/null || (echo "echo Group $(GROUP) nonexistant. Create the group and retry; exit 2")) + + CHOWN = chown + CHMOD = chmod diff --git a/sysutils/munin-node/files/patch-munin-node.conf.in b/sysutils/munin-node/files/patch-munin-node.conf.in new file mode 100644 index 00000000000..535618ec792 --- /dev/null +++ b/sysutils/munin-node/files/patch-munin-node.conf.in @@ -0,0 +1,11 @@ +--- munin-1.0.0pre1.orig/node/munin-node.conf.in Thu Jan 15 15:28:57 2004 ++++ munin-1.0.0pre1/node/munin-node.conf.in Sun Jan 25 14:26:15 2004 +@@ -12,7 +12,7 @@ + # Which port to bind to; + host * + user root +-group root ++group wheel + setsid yes + + # Regexps for files to ignore diff --git a/sysutils/munin-node/files/pkg-message b/sysutils/munin-node/files/pkg-message new file mode 100644 index 00000000000..206a4405759 --- /dev/null +++ b/sysutils/munin-node/files/pkg-message @@ -0,0 +1,12 @@ + +******************************************************************** +Unless this file already existed, a sample configuration file +has been placed in %%PREFIX%%/etc/munin/munin-node.conf. + +Please edit it according to your needs. + +The Munin client will be started at system boot automatically. +You can start it manually with: + %%PREFIX%%/etc/rc.d/munin-node.sh start +******************************************************************** + diff --git a/sysutils/munin-node/pkg-deinstall b/sysutils/munin-node/pkg-deinstall new file mode 100644 index 00000000000..217b827f561 --- /dev/null +++ b/sysutils/munin-node/pkg-deinstall @@ -0,0 +1,61 @@ +#! /bin/sh +# +# $Log: pkg-deinstall,v $ +# Revision 1.2 2004/02/06 18:49:58 lupe +# Fixes for pkg_add compatibility. +# +# + +ask() { + local question default answer + + question=$1 + default=$2 + if [ -z "${PACKAGE_BUILDING}" ]; then + read -p "${question} [${default}]? " answer + fi + if [ x${answer} = x ]; then + answer=${default} + fi + echo ${answer} +} + +yesno() { + local dflt question answer + + question=$1 + dflt=$2 + while :; do + answer=$(ask "${question}" "${dflt}") + case "${answer}" in + [Yy]*) return 0;; + [Nn]*) return 1;; + esac + echo "Please answer yes or no." + done +} + +stop_process() { + if [ -x ${PKG_PREFIX}/etc/rc.d/munin-node.sh ]; then + ${PKG_PREFIX}/etc/rc.d/munin-node.sh stop + fi +} + +delete_group() { + local g + + g=$1 + if yesno "Do you want me to remove group \"${g}\"" y; then + pw groupdel -n ${g} + echo "Done." + fi +} + +case $2 in + DEINSTALL) + stop_process + ;; + POST-DEINSTALL) + delete_group munin + ;; +esac diff --git a/sysutils/munin-node/pkg-descr b/sysutils/munin-node/pkg-descr new file mode 100644 index 00000000000..b70648adb02 --- /dev/null +++ b/sysutils/munin-node/pkg-descr @@ -0,0 +1,13 @@ +Munin network-wide graphing framework (node) + +Munin is a tool for graphing all sorts of information about one or more +servers and displaying it in a web interface. It uses the execellent +RRDTool (written by Tobi Oetiker) and is written in Perl. Munin has a +master/node architecture. The master connects to all the nodes at regular +intervals, and asks them for data. It then stores the data in RRD-files, +and (if needed) updates the graphs. One of the main goals have been ease +of creating own "plugins" (graphs). + +This is the node part. It is used on all machines Munin shall watch. + +WWW: http://www.linpro.no/projects/munin/ diff --git a/sysutils/munin-node/pkg-install b/sysutils/munin-node/pkg-install new file mode 100644 index 00000000000..09c169bf6b1 --- /dev/null +++ b/sysutils/munin-node/pkg-install @@ -0,0 +1,88 @@ +#! /bin/sh +# +# $Log: pkg-install,v $ +# Revision 1.2 2004/02/06 18:49:58 lupe +# Fixes for pkg_add compatibility. +# +# + +ask() { + local question default answer + + question=$1 + default=$2 + if [ -z "${PACKAGE_BUILDING}" ]; then + read -p "${question} [${default}]? " answer + fi + if [ x${answer} = x ]; then + answer=${default} + fi + echo ${answer} +} + +yesno() { + local dflt question answer + + question=$1 + dflt=$2 + while :; do + answer=$(ask "${question}" "${dflt}") + case "${answer}" in + [Yy]*) return 0;; + [Nn]*) return 1;; + esac + echo "Please answer yes or no." + done +} + +make_group() { + local g + + g=$1 + + if pw group show "${g}" >/dev/null 2>&1; then + echo "You already have a group \"${g}\", so I will use it." + else + echo "You need a group \"${g}\"." + if which -s pw && yesno "Would you like me to create it" y; then + pw groupadd ${g} || exit + echo "Done." + else + echo "Please create it, and try again." + if ! grep -q "^${u}:" /etc/passwd; then + echo "While you're at it, please create a user \"${u}\" too," + echo "with a default group of \"${g}\"." + fi + exit 1 + fi + fi +} + +init_plugins() { + if [ -f ${PKG_PREFIX}/etc/munin/VERSION.node ]; then + prevver=$(cat ${PKG_PREFIX}/etc/munin/VERSION.node) + fi + + mkdir -p ${PKG_PREFIX}/etc/munin/plugins ${PKG_PREFIX}/var/munin/plugin-state + + if [ -n "$prevver" ]; then + echo -n "Initializing new plugins.." + ${PKG_PREFIX}/sbin/munin-node-configure --shell --newer "${prevver%-*}" | sh -x + else + echo -n "Initializing plugins.." + ${PKG_PREFIX}/sbin/munin-node-configure --shell | sh -x + fi + echo "done." +} + + +######################################################################## + +case $2 in + PRE-INSTALL) + make_group munin + ;; + POST-INSTALL) + init_plugins + ;; +esac diff --git a/sysutils/munin-node/pkg-plist b/sysutils/munin-node/pkg-plist new file mode 100644 index 00000000000..93a9e0bbdf3 --- /dev/null +++ b/sysutils/munin-node/pkg-plist @@ -0,0 +1,60 @@ +etc/munin/VERSION.node +etc/munin/munin-node.conf +etc/munin/plugin-conf.d/plugins.conf +etc/rc.d/munin-node.sh +sbin/munin-node +sbin/munin-node-configure +sbin/munin-run +share/munin/plugins/apache_accesses +share/munin/plugins/apache_processes +share/munin/plugins/apache_volume +share/munin/plugins/bind9 +share/munin/plugins/cpu +share/munin/plugins/df +share/munin/plugins/df_inode +share/munin/plugins/exim_mailqueue +share/munin/plugins/exim_mailstats +share/munin/plugins/hddtemp +share/munin/plugins/if_ +share/munin/plugins/if_errcoll_ +share/munin/plugins/ircu +share/munin/plugins/load +share/munin/plugins/mailman +share/munin/plugins/memory +share/munin/plugins/multips +share/munin/plugins/munin_graph +share/munin/plugins/munin_update +share/munin/plugins/mysql_bytes +share/munin/plugins/mysql_isam_space_ +share/munin/plugins/mysql_queries +share/munin/plugins/mysql_slowqueries +share/munin/plugins/mysql_threads +share/munin/plugins/named +share/munin/plugins/netstat +share/munin/plugins/open_files +share/munin/plugins/plugins.history +share/munin/plugins/pop_stats +share/munin/plugins/postfix_mailqueue +share/munin/plugins/postfix_mailstats +share/munin/plugins/postfix_mailvolume +share/munin/plugins/processes +share/munin/plugins/ps_ +share/munin/plugins/psu_ +share/munin/plugins/samba +share/munin/plugins/snmp__if_ +share/munin/plugins/spamstats +share/munin/plugins/squid_cache +share/munin/plugins/squid_icp +share/munin/plugins/squid_requests +share/munin/plugins/squid_traffic +share/munin/plugins/surfboard +share/munin/plugins/swap +share/munin/plugins/sybase_space +share/munin/plugins/vmstat +@unexec rmdir %D/var/munin/plugin-state 2>/dev/null || true +@unexec rmdir %D/var/munin 2>/dev/null || true +@dirrm share/munin/plugins +@unexec rmdir %D/share/munin 2>/dev/null || true +@unexec rm -rf %D/etc/munin/plugins 2>/dev/null || true +@unexec rmdir %D/etc/munin/plugin-conf.d 2>/dev/null || true +@unexec rmdir %D/etc/munin 2>/dev/null || true |