Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Feb 2018 19:57:56 +0000 (UTC)
From:      Li-Wen Hsu <lwhsu@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r463157 - in head/sysutils: . snmp_exporter snmp_exporter/files
Message-ID:  <201802271957.w1RJvuQt073265@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: lwhsu
Date: Tue Feb 27 19:57:56 2018
New Revision: 463157
URL: https://svnweb.freebsd.org/changeset/ports/463157

Log:
  Add sysutils/snmp_exporter, SNMP Exporter for Prometheus
  
  PR:		226223
  Submitted by:	Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Differential Revision:	https://reviews.freebsd.org/D14526

Added:
  head/sysutils/snmp_exporter/
  head/sysutils/snmp_exporter/Makefile   (contents, props changed)
  head/sysutils/snmp_exporter/distinfo   (contents, props changed)
  head/sysutils/snmp_exporter/files/
  head/sysutils/snmp_exporter/files/generator.yml   (contents, props changed)
  head/sysutils/snmp_exporter/files/patch-generator_main.go   (contents, props changed)
  head/sysutils/snmp_exporter/files/pkg-message.in   (contents, props changed)
  head/sysutils/snmp_exporter/files/snmp_exporter.in   (contents, props changed)
  head/sysutils/snmp_exporter/pkg-descr   (contents, props changed)
  head/sysutils/snmp_exporter/pkg-plist   (contents, props changed)
Modified:
  head/sysutils/Makefile

Modified: head/sysutils/Makefile
==============================================================================
--- head/sysutils/Makefile	Tue Feb 27 19:49:00 2018	(r463156)
+++ head/sysutils/Makefile	Tue Feb 27 19:57:56 2018	(r463157)
@@ -1130,6 +1130,7 @@
     SUBDIR += smenu
     SUBDIR += smp_utils
     SUBDIR += snap
+    SUBDIR += snmp_exporter
     SUBDIR += snooze
     SUBDIR += snowlog
     SUBDIR += socket

Added: head/sysutils/snmp_exporter/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/Makefile	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,37 @@
+# $FreeBSD$
+
+PORTNAME=	snmp_exporter
+PORTVERSION=	0.9.0
+DISTVERSIONPREFIX=v
+CATEGORIES=	sysutils
+
+MAINTAINER=	fabian.freyer@physik.tu-berlin.de
+COMMENT=	SNMP Exporter for Prometheus
+
+LICENSE=	APACHE20
+
+LIB_DEPENDS=	libnetsnmp.so:net-mgmt/net-snmp
+
+USES=		go
+USE_GITHUB=	yes
+USE_RC_SUBR=	snmp_exporter
+
+GH_ACCOUNT=	prometheus
+
+GO_PKGNAME=	github.com/${GH_ACCOUNT}/${PORTNAME}
+GO_TARGET=	github.com/${GH_ACCOUNT}/${PORTNAME}
+
+do-build:
+	(cd ${GO_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GO_ENV} ${GO_CMD} install -v ${GO_TARGET})
+	(cd ${GO_WRKSRC}/generator; ${SETENV} ${MAKE_ENV} ${GO_ENV} ${GO_CMD} install -v ${GO_TARGET}/generator)
+
+post-patch:
+	@${REINPLACE_CMD} -e 's|/usr/local|${PREFIX}|g' ${GO_WRKSRC}/generator/main.go
+
+do-install:
+	${MKDIR} ${STAGEDIR}${PREFIX}/etc/snmp_exporter/
+	${INSTALL_DATA} ${FILESDIR}/generator.yml ${STAGEDIR}${PREFIX}/etc/snmp_exporter/generator.yml
+	${INSTALL_PROGRAM} ${WRKDIR}/bin/snmp_exporter ${STAGEDIR}${PREFIX}/bin
+	${INSTALL_PROGRAM} ${WRKDIR}/bin/generator ${STAGEDIR}${PREFIX}/bin/snmp_exporter_generator
+
+.include <bsd.port.mk>

Added: head/sysutils/snmp_exporter/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/distinfo	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1519669975
+SHA256 (prometheus-snmp_exporter-v0.9.0_GH0.tar.gz) = ac508e8cda680cc46638c68fe71a91df012e3274fb99460fd2866637b51591fd
+SIZE (prometheus-snmp_exporter-v0.9.0_GH0.tar.gz) = 3257207

Added: head/sysutils/snmp_exporter/files/generator.yml
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/files/generator.yml	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,23 @@
+modules:
+  # Default IF-MIB interfaces table with ifIndex.
+  if_mib:
+    walk: [sysUpTime, interfaces, ifXTable]
+  # Interfaces if ifAlias is unique.
+  if_mib_ifalias:
+    walk: [sysUpTime, interfaces, ifXTable]
+    lookups:
+      - old_index: ifIndex
+        new_index: ifAlias
+  # Interfaces if ifDescr is unique.
+  if_mib_ifdescr:
+    walk: [sysUpTime, interfaces, ifXTable]
+    lookups:
+      - old_index: ifIndex
+        new_index: ifDescr
+  # Interfaces if ifName is unique.
+  if_mib_ifname:
+    walk: [sysUpTime, interfaces, ifXTable]
+    lookups:
+      - old_index: ifIndex
+        # Use OID to avoid conflict with Netscaler NS-ROOT-MIB.
+        new_index: 1.3.6.1.2.1.31.1.1.1.1 # ifName

Added: head/sysutils/snmp_exporter/files/patch-generator_main.go
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/files/patch-generator_main.go	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,20 @@
+--- generator/main.go.orig	2018-02-26 16:03:57 UTC
++++ generator/main.go
+@@ -21,7 +21,7 @@ func generateConfig(nodes *Node, nameToN
+ 		log.Fatal("Unable to determine absolute path for output")
+ 	}
+ 
+-	content, err := ioutil.ReadFile("generator.yml")
++	content, err := ioutil.ReadFile("/usr/local/etc/snmp_exporter/generator.yml")
+ 	if err != nil {
+ 		log.Fatalf("Error reading yml config: %s", err)
+ 	}
+@@ -65,7 +65,7 @@ func generateConfig(nodes *Node, nameToN
+ 
+ var (
+ 	generateCommand    = kingpin.Command("generate", "Generate snmp.yml from generator.yml")
+-	outputPath         = generateCommand.Flag("output-path", "Path to to write resulting config file").Default("snmp.yml").Short('o').String()
++	outputPath         = generateCommand.Flag("output-path", "Path to to write resulting config file").Default("/usr/local/etc/snmp_exporter/snmp.yml").Short('o').String()
+ 	parseErrorsCommand = kingpin.Command("parse_errors", "Debug: Print the parse errors output by NetSNMP")
+ 	dumpCommand        = kingpin.Command("dump", "Debug: Dump the parsed and prepared MIBs")
+ )

Added: head/sysutils/snmp_exporter/files/pkg-message.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/files/pkg-message.in	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,7 @@
+To generate the snmp.yml configuration file for snmp_exporter,
+edit %%ETCDIR%%/generator.yml and add relevant MIBs, then run
+
+    snmp_exporter_generator generate
+
+To run snmp_exporter, set the snmp_exporter_enable="YES" rcvar
+and point your prometheus instance at port 9116.

Added: head/sysutils/snmp_exporter/files/snmp_exporter.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/files/snmp_exporter.in	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# $FreeBSD$
+
+# PROVIDE: snmp_exporter
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# snmp_exporter_enable (bool):          Set to NO by default.
+#               Set it to YES to enable snmp_exporter.
+# snmp_exporter_user (string):          Set user that snmp_exporter will run under
+#               Default is "nobody".
+# snmp_exporter_group (string):         Set group that snmp_exporter will run under
+#               Default is "nobody".
+# snmp_exporter_args (string):          Set extra arguments to pass to snmp_exporter
+#               Default is "".
+# snmp_exporter_listen_address (string):Set ip:port that snmp_exporter will listen on
+#               Default is ":9116".
+# snmp_exporter_config_file (string)    Set the location of the snmp_exporter config
+#                                       configuration file.
+#               Default is "%%PREFIX%%/etc/snmp_exporter/snmp.yml"
+
+. /etc/rc.subr
+
+name=snmp_exporter
+rcvar=snmp_exporter_enable
+
+load_rc_config $name
+
+: ${snmp_exporter_enable:="NO"}
+: ${snmp_exporter_user:="nobody"}
+: ${snmp_exporter_group:="nobody"}
+: ${snmp_exporter_args:=""}
+: ${snmp_exporter_listen_address:=":9116"}
+: ${snmp_exporter_config_file:="%%PREFIX%%/etc/snmp_exporter/snmp.yml"}
+
+pidfile=/var/run/snmp_exporter.pid
+command="/usr/sbin/daemon"
+procname="%%PREFIX%%/bin/snmp_exporter"
+command_args="-p ${pidfile} /usr/bin/env ${procname} \
+    --web.listen-address=${snmp_exporter_listen_address} \
+    --config.file=${snmp_exporter_config_file} \
+    ${snmp_exporter_args}"
+
+start_precmd=snmp_exporter_startprecmd
+
+snmp_exporter_startprecmd()
+{
+    if [ ! -e ${pidfile} ]; then
+        install -o ${snmp_exporter_user} -g ${snmp_exporter_group} /dev/null ${pidfile};
+    fi
+    if [ ! -d ${snmp_exporter_textfile_dir} ]; then
+        install -d -o ${snmp_exporter_user} -g ${snmp_exporter_group} -m 1755 ${snmp_exporter_textfile_dir}
+    fi
+}
+
+load_rc_config $name
+run_rc_command "$1"

Added: head/sysutils/snmp_exporter/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/pkg-descr	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,5 @@
+snmp_exporter is a prometheus exporter for information
+gathered from SNMP for use by the Prometheus monitoring
+system.
+
+WWW: https://github.com/prometheus/snmp_exporter

Added: head/sysutils/snmp_exporter/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/sysutils/snmp_exporter/pkg-plist	Tue Feb 27 19:57:56 2018	(r463157)
@@ -0,0 +1,3 @@
+bin/snmp_exporter
+bin/snmp_exporter_generator
+%%ETCDIR%%/generator.yml



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