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>