svn commit: r451330 - in head/net-mgmt: . pdagent-integrations pdagent-integrations/files

Mark Felder feld at FreeBSD.org
Thu Oct 5 18:35:54 UTC 2017


Author: feld
Date: Thu Oct  5 18:35:51 2017
New Revision: 451330
URL: https://svnweb.freebsd.org/changeset/ports/451330

Log:
  This project contains integrations for various monitoring tools with
  the PagerDuty Agent.
  
  It currently includes support for:
  
      Nagios
      Sensu
      Zabbix
  
  WWW: https://github.com/PagerDuty/pdagent-integrations

Added:
  head/net-mgmt/pdagent-integrations/
  head/net-mgmt/pdagent-integrations/Makefile   (contents, props changed)
  head/net-mgmt/pdagent-integrations/distinfo   (contents, props changed)
  head/net-mgmt/pdagent-integrations/files/
  head/net-mgmt/pdagent-integrations/files/pagerduty-icinga2.conf.in   (contents, props changed)
  head/net-mgmt/pdagent-integrations/files/patch-bin_pd-nagios   (contents, props changed)
  head/net-mgmt/pdagent-integrations/files/pkg-message.in   (contents, props changed)
  head/net-mgmt/pdagent-integrations/pkg-descr   (contents, props changed)
  head/net-mgmt/pdagent-integrations/pkg-plist   (contents, props changed)
Modified:
  head/net-mgmt/Makefile

Modified: head/net-mgmt/Makefile
==============================================================================
--- head/net-mgmt/Makefile	Thu Oct  5 18:19:09 2017	(r451329)
+++ head/net-mgmt/Makefile	Thu Oct  5 18:35:51 2017	(r451330)
@@ -277,6 +277,7 @@
     SUBDIR += pandorafms_agent
     SUBDIR += pandorafms_console
     SUBDIR += pandorafms_server
+    SUBDIR += pdagent-integrations
     SUBDIR += percona-monitoring-plugins
     SUBDIR += pftabled
     SUBDIR += php56-snmp

Added: head/net-mgmt/pdagent-integrations/Makefile
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/pdagent-integrations/Makefile	Thu Oct  5 18:35:51 2017	(r451330)
@@ -0,0 +1,40 @@
+# Created by: Mark Felder <feld at FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME=	pdagent-integrations
+PORTVERSION=	1.4
+DISTVERSIONPREFIX=v
+CATEGORIES=	net-mgmt python
+
+MAINTAINER=	feld at FreeBSD.org
+COMMENT=	PagerDuty integrations for monitoring monitoring tools
+
+LICENSE=	BSD3CLAUSE
+
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pdagent>0:net-mgmt/py-pdagent
+
+USES=	python shebangfix
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	PagerDuty
+
+SHEBANG_FILES=	bin/*
+
+SUB_FILES=	pagerduty-icinga2.conf pkg-message
+
+NO_ARCH=	yes
+NO_BUILD=	yes
+
+post-patch:
+	${REINPLACE_CMD} 's|/usr/share/pdagent-integrations/bin|${PREFIX}/bin|g' ${WRKSRC}/pagerduty_nagios.cfg ${WRKSRC}/conf.d/sensu_pagerduty_handler.json
+
+do-install:
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	${INSTALL_SCRIPT} ${WRKSRC}/bin/pd-nagios ${STAGEDIR}${LOCALBASE}/bin
+	${INSTALL_SCRIPT} ${WRKSRC}/bin/pd-sensu ${STAGEDIR}${LOCALBASE}/bin
+	${INSTALL_SCRIPT} ${WRKSRC}/bin/pd-zabbix ${STAGEDIR}${LOCALBASE}/bin
+	${INSTALL_DATA} ${WRKSRC}/conf.d/sensu_pagerduty_handler.json ${STAGEDIR}${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKSRC}/pagerduty_nagios.cfg ${STAGEDIR}${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKDIR}/pagerduty-icinga2.conf ${STAGEDIR}${EXAMPLESDIR}
+
+.include <bsd.port.mk>

Added: head/net-mgmt/pdagent-integrations/distinfo
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/pdagent-integrations/distinfo	Thu Oct  5 18:35:51 2017	(r451330)
@@ -0,0 +1,3 @@
+TIMESTAMP = 1507219750
+SHA256 (PagerDuty-pdagent-integrations-v1.4_GH0.tar.gz) = f4d18b1759ee0dfdcff4dd10f73c2bd3dd5d1ef0e2629141edd5f07f32c6e4f1
+SIZE (PagerDuty-pdagent-integrations-v1.4_GH0.tar.gz) = 17643

Added: head/net-mgmt/pdagent-integrations/files/pagerduty-icinga2.conf.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/pdagent-integrations/files/pagerduty-icinga2.conf.in	Thu Oct  5 18:35:51 2017	(r451330)
@@ -0,0 +1,91 @@
+object User "pagerduty" {
+  pager = "YOUR-INTEGRATION-KEY-HERE"
+  groups = [ "icingaadmins" ]
+  display_name = "PagerDuty Notification User"
+  states = [ OK, Warning, Critical, Unknown, Up, Down ]
+  types = [ Problem, Acknowledgement, Recovery ]
+}
+
+object NotificationCommand "notify-service-by-pagerduty" {
+  import "plugin-notification-command"
+  command = [ "%%PREFIX%%/bin/pd-nagios" ]
+  arguments = {
+    "-n" = {
+      order = 0
+      value = "service"
+    }
+    "-k" = {
+      order = 1
+      value = "$user.pager$"
+    }
+    "-t" = {
+      order = 2
+      value = "$notification.type$"
+    }
+    "-f" = {
+      order = 3
+      repeat_key = true
+      value = "$f_args$"
+    }
+  }
+  
+  vars.f_args = [
+    "SERVICEDESC=$service.name$",
+    "SERVICEDISPLAYNAME=$service.display_name$",
+    "HOSTNAME=$host.name$",
+    "HOSTSTATE=$host.state$",
+    "HOSTDISPLAYNAME=$host.display_name$",
+    "SERVICESTATE=$service.state$",
+    "SERVICEPROBLEMID=$service.state_id$",
+    "SERVICEOUTPUT=$service.output$" 
+  ]
+}
+
+object NotificationCommand "notify-host-by-pagerduty" {
+  import "plugin-notification-command"
+  command = [ "%%PREFIX%%/bin/pd-nagios" ]
+  arguments = {
+    "-n" = {
+      order = 0
+      value = "host"
+    }
+    "-k" = {
+      order = 1
+      value = "$user.pager$"
+    }
+    "-t" = {
+      order = 2
+      value = "$notification.type$"
+    }
+    "-f" = {
+      order = 3
+      repeat_key = true
+      value = "$f_args$"
+    }
+  }
+
+  vars.f_args = [
+    "HOSTNAME=$host.name$",
+    "HOSTSTATE=$host.state$",
+    "HOSTPROBLEMID=$host.state_id$",
+    "HOSTOUTPUT=$host.output$"
+  ]
+}
+
+apply Notification "pagerduty-service" to Service {
+  command = "notify-service-by-pagerduty"
+  states = [ OK, Warning, Critical, Unknown ]
+  types = [ Problem, Acknowledgement, Recovery ]
+  period = "24x7"
+  users = [ "pagerduty" ]
+  assign where service.vars.enable_pagerduty == true
+}
+
+apply Notification "pagerduty-host" to Host {
+  command = "notify-host-by-pagerduty"
+  states = [ Up, Down ]
+  types = [ Problem, Acknowledgement, Recovery ]
+  period = "24x7" 
+  users = [ "pagerduty" ]
+  assign where host.vars.enable_pagerduty == true
+}

Added: head/net-mgmt/pdagent-integrations/files/patch-bin_pd-nagios
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/pdagent-integrations/files/patch-bin_pd-nagios	Thu Oct  5 18:35:51 2017	(r451330)
@@ -0,0 +1,11 @@
+--- bin/pd-nagios.orig	2017-10-05 18:21:38 UTC
++++ bin/pd-nagios
+@@ -101,7 +101,7 @@ class NagiosEvent:
+         if not NagiosEvent.REQUIRED_FIELDS[self._notification_type].issubset(self._details.keys()):
+             msg = "Missing fields for type '{0}'.  {1} required".format(
+                 self._notification_type,
+-                ", ".join(self._required_fields())
++                ", ".join(NagiosEvent.REQUIRED_FIELDS[self._notification_type])
+                 )
+             raise ValueError(msg)
+ 

Added: head/net-mgmt/pdagent-integrations/files/pkg-message.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/pdagent-integrations/files/pkg-message.in	Thu Oct  5 18:35:51 2017	(r451330)
@@ -0,0 +1,2 @@
+Sample configuration files for Nagios, Icinga and Sensu can be found in the
+%%EXAMPLESDIR%% directory.

Added: head/net-mgmt/pdagent-integrations/pkg-descr
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/pdagent-integrations/pkg-descr	Thu Oct  5 18:35:51 2017	(r451330)
@@ -0,0 +1,10 @@
+This project contains integrations for various monitoring tools with
+the PagerDuty Agent.
+
+It currently includes support for:
+
+    Nagios
+    Sensu
+    Zabbix
+
+WWW: https://github.com/PagerDuty/pdagent-integrations

Added: head/net-mgmt/pdagent-integrations/pkg-plist
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-mgmt/pdagent-integrations/pkg-plist	Thu Oct  5 18:35:51 2017	(r451330)
@@ -0,0 +1,6 @@
+bin/pd-nagios
+bin/pd-sensu
+bin/pd-zabbix
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pagerduty_nagios.cfg
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/pagerduty-icinga2.conf
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sensu_pagerduty_handler.json


More information about the svn-ports-all mailing list