Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Jun 2015 08:10:00 +0000 (UTC)
From:      Muhammad Moinur Rahman <bofh@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r390151 - in head/net-mgmt: . librenms librenms/files
Message-ID:  <201506200810.t5K8A05o084994@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bofh
Date: Sat Jun 20 08:10:00 2015
New Revision: 390151
URL: https://svnweb.freebsd.org/changeset/ports/390151

Log:
  [NEW] net-mgmt/librenms: Autodiscovering PHP/MySQL/SNMP based network monitoring
  
  LibreNMS is an autodiscovering PHP/MySQL/SNMP based network monitoring which
  includes support for a wide range of network hardware and operating systems
  including Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP and many more.
  
  LibreNMS has grown out of a lack of easy to configure network monitoring
  platforms. It is intended to provide a more navigable interface to the health
  and performance of your network. Its design goals include collecting as much
  historical data about devices as possible, being completely autodiscovered with
  little or no manual intervention, and having a very intuitive interface.
  
  WWW: http://www.librenms.org

Added:
  head/net-mgmt/librenms/
  head/net-mgmt/librenms/Makefile   (contents, props changed)
  head/net-mgmt/librenms/distinfo   (contents, props changed)
  head/net-mgmt/librenms/files/
  head/net-mgmt/librenms/files/patch-config.php.default   (contents, props changed)
  head/net-mgmt/librenms/files/patch-includes_defaults.inc.php   (contents, props changed)
  head/net-mgmt/librenms/files/patch-poller-wrapper.py   (contents, props changed)
  head/net-mgmt/librenms/files/patch-poller.php   (contents, props changed)
  head/net-mgmt/librenms/files/pkg-message.in   (contents, props changed)
  head/net-mgmt/librenms/pkg-descr   (contents, props changed)
Modified:
  head/net-mgmt/Makefile

Modified: head/net-mgmt/Makefile
==============================================================================
--- head/net-mgmt/Makefile	Sat Jun 20 08:04:26 2015	(r390150)
+++ head/net-mgmt/Makefile	Sat Jun 20 08:10:00 2015	(r390151)
@@ -93,6 +93,7 @@
     SUBDIR += kismet
     SUBDIR += lanmap
     SUBDIR += lg
+    SUBDIR += librenms
     SUBDIR += libsmi
     SUBDIR += lldpd
     SUBDIR += mbrowse

Added: head/net-mgmt/librenms/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/Makefile	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,144 @@
+# Created by: Muhammad Moinur Rahman<bofh@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	librenms
+PORTVERSION=	201506
+CATEGORIES=	net-mgmt
+MASTER_SITES=	http://www.librenms.org/
+
+MAINTAINER=	bofh@FreeBSD.org
+COMMENT=	Autodiscovering PHP/MySQL/SNMP based network monitoring
+
+LICENSE=	GPLv3
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	librenms
+
+USES=		python shebangfix
+SHEBANG_FILES=	html/js/makemini.pl mibs/process.pl scripts/agent-local/bind \
+		scripts/agent-local/dmi scripts/agent-local/dpkg \
+		scripts/agent-local/drbd scripts/agent-local/hddtemp \
+		scripts/agent-local/memcached scripts/agent-local/mysql \
+		scripts/agent-local/rpm scripts/agent-local/temperature \
+		scripts/agent-local/tinydns scripts/apache-stats.py \
+		scripts/check_mk_agent scripts/cron.sh scripts/cron-hourly.sh \
+		scripts/cron-minute.sh scripts/get-geshi.sh \
+	       	scripts/get-jpgraph.sh scripts/ifAlias \
+		scripts/Migration/Standard_Conversion/convert_no_xml.sh \
+		scripts/Migration/Standard_Conversion/destwork_no_xml.sh \
+		scripts/Migration/Standard_Conversion/mkdir.sh \
+		scripts/Migration/XML_Conversion/convert.sh \
+		scripts/Migration/XML_Conversion/destwork.sh \
+		scripts/Migration/XML_Conversion/mkdir.sh validate.php \
+	       	scripts/postfix-queues scripts/removespikes.php \
+		scripts/removespikes.pl scripts/watchmaillog/watchmaillog.pl
+USE_PHP=	ctype filter gd json mcrypt mysql session snmp tokenizer xml
+WANT_PHP_CLI=	yes
+
+NO_BUILD=	yes
+
+RUN_DEPENDS+=	rrdtool:${PORTSDIR}/databases/rrdtool \
+		dot:${PORTSDIR}/graphics/graphviz \
+		Magick-config:${PORTSDIR}/graphics/ImageMagick \
+		mtr:${PORTSDIR}/net/mtr-nox11 \
+		${LOCALBASE}/share/pear/Net/IPv4.php:${PORTSDIR}/net/pear-Net_IPv4 \
+		${LOCALBASE}/share/pear/Net/IPv6.php:${PORTSDIR}/net/pear-Net_IPv6 \
+		snmpget:${PORTSDIR}/net-mgmt/net-snmp \
+		bash:${PORTSDIR}/shells/bash
+
+OPTIONS_DEFINE=	APACHEMOD FPING IPMITOOL LIBVIRT MYSQLD NAGPLUGINS NMAP PYPOLLER WMIC
+OPTIONS_DEFAULT=	APACHEMOD FPING IPMITOOL LIBVIRT NAGPLUGINS NMAP PYPOLLER WMIC
+APACHEMOD_DESC=	Use PHP with Apache 2.2+ module
+FPING_DESC=	Enable fping support ping monitoring
+IPMITOOL_DESC=	Enable support for monitoring hardware IPMI
+MYSQLD_DESC=	Use local MySQL server
+WMIC_DESC=	Enable support for WMI polling
+PYPOLLER_DESC=	Enable Python Poller Wrapper
+
+FPING_RUN_DEPENDS=	fping:${PORTSDIR}/net/fping
+IPMITOOL_RUN_DEPENDS=	ipmitool:${PORTSDIR}/sysutils/ipmitool
+LIBVIRT_RUN_DEPENDS=	virsh:${PORTSDIR}/devel/libvirt
+NAGPLUGINS_RUN_DEPENDS=	${LOCALBASE}/libexec/nagios/check_nagios:${PORTSDIR}/net-mgmt/nagios-plugins
+NMAP_RUN_DEPENDS=	nmap:${PORTSDIR}/security/nmap
+PYPOLLER_RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}MySQLdb>0:${PORTSDIR}/databases/py-MySQLdb
+WMIC_RUN_DEPENDS=	wmic:${PORTSDIR}/net-mgmt/wmi-client
+MYSQLD_USE=		MYSQL=server
+MYSQLD_USE_OFF=		MYSQL=client
+
+.include <bsd.port.options.mk>
+
+SUB_FILES+=	pkg-message
+SUB_LIST+=	PHP="${PHPBASE}/bin/php" PYTHON=${PYTHON_CMD}
+
+ROOT_FILES=	addhost.php adduser.php	alerts.php build-base.php build.sql \
+	       	billing-calculate.php callback.php check-errors.php \
+	       	check-services.php config_to_json.php daily.php daily.sh \
+	       	delhost.php discovery.php dist-pollers.php irc.php \
+	       	poll-billing.php poller.php poller-wrapper.py renamehost.php \
+		snmptrap.php syslog.php	validate.php
+
+ROOT_DIRS=	contrib html includes lib mibs scripts sql-schema \
+	       	upgrade-scripts
+
+DOCS=		AUTHORS.md CHANGELOG CONTRIBUTING.md LICENSE.txt README.md
+PORTDOCS=	*
+PORTEXAMPLES=	snmp.conf.example snmpd.conf.example
+NO_ARCH=	yes
+
+.if ${PORT_OPTIONS:MAPACHEMOD} && !defined(PACKAGE_BUILDING)
+WANT_PHP_MOD=	yes
+USE_APACHE_RUN=	22+
+.else
+# Package builder doesn't create php5 with module
+WANT_PHP_WEB=	yes
+.endif
+
+post-patch:
+	${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|g' \
+	       ${WRKSRC}/poller-wrapper.py ${WRKSRC}/poller.php
+
+do-install:
+	@${MKDIR} ${STAGEDIR}/${WWWDIR}
+.for dir in ${ROOT_DIRS}
+	@${MKDIR} ${STAGEDIR}/${WWWDIR}/${dir}
+	@cd ${WRKSRC}/${dir} && ${COPYTREE_SHARE} . ${STAGEDIR}/${WWWDIR}/${dir}
+.endfor
+.for f in ${ROOT_FILES}
+	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${WWWDIR}
+.endfor
+# Create empty rrd dir writable by www
+	@${MKDIR} ${STAGEDIR}/${WWWDIR}/rrd
+# Files in scripts dir should be executable
+	@${FIND} ${STAGEDIR}/${WWWDIR}/scripts -type f -exec ${CHMOD} +x {} \;
+# Ensure PHP and Python scripts are executable
+	@${FIND} ${STAGEDIR}/${WWWDIR} -type f -name '*.py' -or -type f -name \
+	       '*.php' -exec ${CHMOD} +x {} \;
+# Rename for @sample
+
+.if ${PORT_OPTIONS:MDOCS}
+	@${MKDIR} ${STAGEDIR}/${DOCSDIR}
+.for f in ${DOCS}
+	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${DOCSDIR}
+.endfor
+	@cd ${WRKSRC}/doc && ${COPYTREE_SHARE} . ${STAGEDIR}/${DOCSDIR}
+.endif
+.if ${PORT_OPTIONS:MEXAMPLES}
+	@${MKDIR} ${STAGEDIR}/${EXAMPLESDIR}
+.for f in ${PORTEXAMPLES}
+	${INSTALL_DATA} ${WRKSRC}/${f} ${STAGEDIR}/${EXAMPLESDIR}
+.endfor
+.endif
+
+post-install:
+	@${ECHO_CMD} "@owner ${WWWOWN}" >> ${TMPPLIST}
+	@${ECHO_CMD} "@group ${WWWGRP}" >> ${TMPPLIST}
+	@${FIND} -s ${STAGEDIR}${WWWDIR} -not -type d | ${SORT} | \
+		${SED} -e 's#^${STAGEDIR}${PREFIX}/##' >> ${TMPPLIST}
+	${INSTALL_DATA} ${WRKSRC}/config.php.default \
+	       ${STAGEDIR}/${WWWDIR}/config.php.sample
+	@${ECHO} @sample ${WWWDIR}/config.php.sample >> ${TMPPLIST}
+	@${ECHO} @dir ${WWWDIR}/rrd >> ${TMPPLIST}
+	@${ECHO_CMD} "@group" >> ${TMPPLIST}
+	@${ECHO_CMD} "@owner" >> ${TMPPLIST}
+
+.include <bsd.port.mk>

Added: head/net-mgmt/librenms/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/distinfo	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,2 @@
+SHA256 (librenms-librenms-201506_GH0.tar.gz) = 7618b02292847d1a308cd6bd0649eb386e87d2fbac1e0991914cea6383a540df
+SIZE (librenms-librenms-201506_GH0.tar.gz) = 23898595

Added: head/net-mgmt/librenms/files/patch-config.php.default
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/files/patch-config.php.default	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,11 @@
+--- config.php.default.orig	2015-06-15 14:48:46 UTC
++++ config.php.default
+@@ -14,7 +14,7 @@ $config['memcached']['host']    = "local
+ $config['memcached']['port']    = 11211;
+ 
+ ### Locations - it is recommended to keep the default
+-#$config['install_dir']  = "/opt/librenms";
++$config['install_dir']  = "/usr/local/www/librenms";
+ 
+ ### This should *only* be set if you want to *force* a particular hostname/port
+ ### It will prevent the web interface being usable form any other hostname

Added: head/net-mgmt/librenms/files/patch-includes_defaults.inc.php
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/files/patch-includes_defaults.inc.php	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,55 @@
+--- includes/defaults.inc.php.orig	2015-06-15 11:23:55 UTC
++++ includes/defaults.inc.php
+@@ -31,7 +31,7 @@ $config['project_name']     = "LibreNMS"
+ $config['project_id']     = strtolower($config['project_name']);
+ 
+ $config['temp_dir']      = "/tmp";
+-$config['install_dir']   = "/opt/" . $config['project_id'];
++$config['install_dir']   = "/usr/local/www/" . $config['project_id'];
+ $config['log_dir']       = $config['install_dir'] . "/logs";
+ 
+ // What is my own hostname (used to identify this host in its own database)
+@@ -39,26 +39,26 @@ $config['own_hostname'] = "localhost";
+ 
+ // Location of executables
+ 
+-$config['rrdtool']          = "/usr/bin/rrdtool";
+-$config['fping']            = "/usr/bin/fping";
++$config['rrdtool']          = "/usr/local/bin/rrdtool";
++$config['fping']            = "/usr/local/sbin/fping";
+ $config['fping_options']['retries'] = 3;
+ $config['fping_options']['timeout'] = 500;
+-$config['fping6']           = "/usr/bin/fping6";
+-$config['snmpwalk']         = "/usr/bin/snmpwalk";
+-$config['snmpget']          = "/usr/bin/snmpget";
+-$config['snmpbulkwalk']     = "/usr/bin/snmpbulkwalk";
++$config['fping6']           = "/usr/local/sbin/fping6";
++$config['snmpwalk']         = "/usr/local/bin/snmpwalk";
++$config['snmpget']          = "/usr/local/bin/snmpget";
++$config['snmpbulkwalk']     = "/usr/local/bin/snmpbulkwalk";
+ $config['whois']            = "/usr/bin/whois";
+-$config['ping']             = "/bin/ping";
+-$config['mtr']              = "/usr/bin/mtr";
+-$config['nmap']             = "/usr/bin/nmap";
+-$config['nagios_plugins']   = "/usr/lib/nagios/plugins";
+-$config['ipmitool']         = "/usr/bin/ipmitool";
+-$config['virsh']            = "/usr/bin/virsh";
+-$config['dot']              = "/usr/bin/dot";
+-$config['unflatten']        = "/usr/bin/unflatten";
+-$config['neato']            = "/usr/bin/neato";
+-$config['sfdp']             = "/usr/bin/sfdp";
+-$config['svn']              = "/usr/bin/svn";
++$config['ping']             = "/sbin/ping";
++$config['mtr']              = "/usr/local/bin/mtr";
++$config['nmap']             = "/usr/local/bin/nmap";
++$config['nagios_plugins']   = "/usr/local/libexec/nagios";
++$config['ipmitool']         = "/usr/local/bin/ipmitool";
++$config['virsh']            = "/usr/local/bin/virsh";
++$config['dot']              = "/usr/local/bin/dot";
++$config['unflatten']        = "/usr/local/bin/unflatten";
++$config['neato']            = "/usr/local/bin/neato";
++$config['sfdp']             = "/usr/local/bin/sfdp";
++$config['svn']              = "/usr/bin/svnlite";
+ 
+ // Memcached - Keep immediate statistics
+ 

Added: head/net-mgmt/librenms/files/patch-poller-wrapper.py
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/files/patch-poller-wrapper.py	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,17 @@
+--- poller-wrapper.py.orig	2014-11-04 16:14:27 UTC
++++ poller-wrapper.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! %%LOCALBASE%%/bin/python
+ """
+  poller-wrapper A small tool which wraps around the Observium poller
+                 and tries to guide the polling process with a more modern
+@@ -38,6 +38,8 @@ except:
+     print "threading, Queue, sys, subprocess, time, os, json"
+     sys.exit(2)
+ 
++os.environ['PATH'] += ':%%LOCALBASE%%/sbin:%%LOCALBASE%%/bin'
++
+ try:
+     import MySQLdb
+ except:

Added: head/net-mgmt/librenms/files/patch-poller.php
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/files/patch-poller.php	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,8 @@
+--- poller.php.orig	2015-05-27 15:48:33 UTC
++++ poller.php
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env php
++#!%%LOCALBASE%%/bin/php
+ <?php
+ 
+ /**

Added: head/net-mgmt/librenms/files/pkg-message.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/files/pkg-message.in	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,13 @@
+=== Configuration details ===
+You can mostly follow the guide at:
+http://docs.librenms.org/
+
+with the following notes:
+- Installation directory is %%WWWDIR%%
+- The following lines should be added to /etc/crontab:
+
+33	*/6	*	*	*	www	cd %%WWWDIR%% && %%PHP%% discovery.php -h all >> /dev/null 2>&1
+*/5	*	*	*	*	www	cd %%WWWDIR%% && %%PHP%% discovery.php -h new >> /dev/null 2>&1
+*/5	*	*	*	*	www	cd %%WWWDIR%% && %%PYTHON%% poller-wrapper.py 16 >> /dev/null 2>&1
+15	0	*	*	*	www	sh %%WWWDIR%%/daily.sh >> /dev/null 2>&1
+*	*	*	*	*	www	%%PHP%% %%WWWDIR%%/alerts.php >> /dev/null 2>&1

Added: head/net-mgmt/librenms/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/librenms/pkg-descr	Sat Jun 20 08:10:00 2015	(r390151)
@@ -0,0 +1,13 @@
+LibreNMS is an autodiscovering PHP/MySQL/SNMP based network monitoring
+which includes support for a wide range of network hardware and
+operating systems including Cisco, Linux, FreeBSD, Juniper, Brocade,
+Foundry, HP and many more.
+
+LibreNMS has grown out of a lack of easy to configure network
+monitoring platforms. It is intended to provide a more navigable
+interface to the health and performance of your network. Its design
+goals include collecting as much historical data about devices as
+possible, being completely autodiscovered with little or no manual
+intervention, and having a very intuitive interface. 
+
+WWW: http://www.librenms.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201506200810.t5K8A05o084994>