mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-24 04:33:24 +00:00
[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
This commit is contained in:
parent
f26b9e268b
commit
18e72d0b8f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=390151
@ -93,6 +93,7 @@
|
||||
SUBDIR += kismet
|
||||
SUBDIR += lanmap
|
||||
SUBDIR += lg
|
||||
SUBDIR += librenms
|
||||
SUBDIR += libsmi
|
||||
SUBDIR += lldpd
|
||||
SUBDIR += mbrowse
|
||||
|
144
net-mgmt/librenms/Makefile
Normal file
144
net-mgmt/librenms/Makefile
Normal file
@ -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>
|
2
net-mgmt/librenms/distinfo
Normal file
2
net-mgmt/librenms/distinfo
Normal file
@ -0,0 +1,2 @@
|
||||
SHA256 (librenms-librenms-201506_GH0.tar.gz) = 7618b02292847d1a308cd6bd0649eb386e87d2fbac1e0991914cea6383a540df
|
||||
SIZE (librenms-librenms-201506_GH0.tar.gz) = 23898595
|
11
net-mgmt/librenms/files/patch-config.php.default
Normal file
11
net-mgmt/librenms/files/patch-config.php.default
Normal file
@ -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
|
55
net-mgmt/librenms/files/patch-includes_defaults.inc.php
Normal file
55
net-mgmt/librenms/files/patch-includes_defaults.inc.php
Normal file
@ -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
|
||||
|
17
net-mgmt/librenms/files/patch-poller-wrapper.py
Normal file
17
net-mgmt/librenms/files/patch-poller-wrapper.py
Normal file
@ -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:
|
8
net-mgmt/librenms/files/patch-poller.php
Normal file
8
net-mgmt/librenms/files/patch-poller.php
Normal file
@ -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
|
||||
|
||||
/**
|
13
net-mgmt/librenms/files/pkg-message.in
Normal file
13
net-mgmt/librenms/files/pkg-message.in
Normal file
@ -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
|
13
net-mgmt/librenms/pkg-descr
Normal file
13
net-mgmt/librenms/pkg-descr
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user