From df292e75acbe88af044bf27eb1d0f73682f62156 Mon Sep 17 00:00:00 2001 From: Boris Samorodov Date: Mon, 17 Jul 2017 21:12:41 +0000 Subject: [PATCH] The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct receiver integrations such as email, PagerDuty, or OpsGenie. It also takes care of silencing and inhibition of alerts. WWW: https://prometheus.io/docs/alerting/alertmanager/ PR: 216119 Submitted by: Michal Hanula --- net-mgmt/Makefile | 1 + net-mgmt/alertmanager/Makefile | 38 ++++++++++++ net-mgmt/alertmanager/distinfo | 3 + net-mgmt/alertmanager/files/alertmanager.in | 67 +++++++++++++++++++++ net-mgmt/alertmanager/pkg-descr | 7 +++ 5 files changed, 116 insertions(+) create mode 100644 net-mgmt/alertmanager/Makefile create mode 100644 net-mgmt/alertmanager/distinfo create mode 100644 net-mgmt/alertmanager/files/alertmanager.in create mode 100644 net-mgmt/alertmanager/pkg-descr diff --git a/net-mgmt/Makefile b/net-mgmt/Makefile index 076c58d24133..0017d54cd56c 100644 --- a/net-mgmt/Makefile +++ b/net-mgmt/Makefile @@ -8,6 +8,7 @@ SUBDIR += adcli SUBDIR += aggregate SUBDIR += aircrack-ng + SUBDIR += alertmanager SUBDIR += ap-utils SUBDIR += argus3 SUBDIR += argus3-clients diff --git a/net-mgmt/alertmanager/Makefile b/net-mgmt/alertmanager/Makefile new file mode 100644 index 000000000000..359bd9dadb6c --- /dev/null +++ b/net-mgmt/alertmanager/Makefile @@ -0,0 +1,38 @@ +# Created by: Michal Hanula +# $FreeBSD$ + +PORTNAME= alertmanager +PORTVERSION= 0.5.1 +DISTVERSIONPREFIX= v +CATEGORIES= net-mgmt + +MAINTAINER= michal@hanu.la +COMMENT= Alert routing for prometheus + +LICENSE= APACHE20 + +USES= go gmake +USE_GITHUB= yes +GH_ACCOUNT= prometheus + +GO_PKGNAME= github.com/prometheus/${PORTNAME} + +USE_RC_SUBR= alertmanager + +USERS= alertmanager +GROUPS= alertmanager + +PLIST_FILES= bin/alertmanager \ + etc/alertmanager/alertmanager.yml.sample + +STRIP= # stripping can break go binaries + +do-build: + (cd ${GO_WRKSRC}/cmd/alertmanager ; ${SETENV} ${GO_ENV} go install) + +do-install: + ${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/alertmanager ${STAGEDIR}${PREFIX}/bin + ${MKDIR} ${STAGEDIR}${PREFIX}/etc/alertmanager + ${INSTALL_DATA} ${WRKSRC}/doc/examples/simple.yml ${STAGEDIR}${PREFIX}/etc/alertmanager/alertmanager.yml.sample + +.include diff --git a/net-mgmt/alertmanager/distinfo b/net-mgmt/alertmanager/distinfo new file mode 100644 index 000000000000..ea11621cf984 --- /dev/null +++ b/net-mgmt/alertmanager/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1484488566 +SHA256 (prometheus-alertmanager-v0.5.1_GH0.tar.gz) = 98a5f698896001313f2f9ad691fa75f0ae3b7220a97bbe560032b543e532d4a7 +SIZE (prometheus-alertmanager-v0.5.1_GH0.tar.gz) = 1191666 diff --git a/net-mgmt/alertmanager/files/alertmanager.in b/net-mgmt/alertmanager/files/alertmanager.in new file mode 100644 index 000000000000..0d766945153a --- /dev/null +++ b/net-mgmt/alertmanager/files/alertmanager.in @@ -0,0 +1,67 @@ +#!/bin/sh + +# PROVIDE: alertmanager +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following lines to /etc/rc.conf.local or /etc/rc.conf +# to enable this service: +# +# alertmanager_enable (bool): Set to NO by default +# Set it to YES to enable alertmanager +# alertmanager_user (string): Set user to run alertmanager +# Default is "alertmanager" +# alertmanager_group (string): Set group to run alertmanager +# Default is "alertmanager" +# alertmanager_config (string): The configuration file +# Default is "%%PREFIX%%/etc/alertmanager/alertmanager.yml" +# alertmanager_data_dir (string): The configuration file +# Default is "/var/db/alertmanager" +# alertmanager_log_file (string): Set file that alertmanager will log to +# Default is "/var/log/alertmanager.log" +# alertmanager_args (string): Set additional command line arguments +# Default is "" + +. /etc/rc.subr + +name=alertmanager +rcvar=alertmanager_enable + +load_rc_config $name + +: ${alertmanager_enable:="NO"} +: ${alertmanager_user:="alertmanager"} +: ${alertmanager_group:="alertmanager"} +: ${alertmanager_config:="%%PREFIX%%/etc/alertmanager/alertmanager.yml"} +: ${alertmanager_data_dir:="/var/db/alertmanager"} +: ${alertmanager_log_file:="/var/log/alertmanager.log"} +: ${alertmanager_args:=""} + +pidfile=/var/run/alertmanager.pid +required_files="${alertmanager_config}" +command="/usr/sbin/daemon" +procname="%%PREFIX%%/bin/alertmanager" +sig_reload=HUP +extra_commands="reload" +command_args="-p ${pidfile} /usr/bin/env ${procname} \ + -config.file=${alertmanager_config} \ + -storage.path=${alertmanager_data_dir} \ + ${alertmanager_args} > ${alertmanager_log_file} 2>&1" + +start_precmd=alertmanager_startprecmd + +alertmanager_startprecmd() +{ + if [ ! -e ${pidfile} ]; then + install -o ${alertmanager_user} -g ${alertmanager_group} /dev/null ${pidfile}; + fi + if [ ! -f "${alertmanager_log_file}" ]; then + install -o ${alertmanager_user} -g ${alertmanager_group} -m 640 /dev/null ${alertmanager_log_file}; + fi + if [ ! -d ${alertmanager_data_dir} ]; then + install -d -o ${alertmanager_user} -g ${alertmanager_group} -m 750 ${alertmanager_data_dir} + fi +} + +load_rc_config $name +run_rc_command "$1" diff --git a/net-mgmt/alertmanager/pkg-descr b/net-mgmt/alertmanager/pkg-descr new file mode 100644 index 000000000000..c7b3744639d3 --- /dev/null +++ b/net-mgmt/alertmanager/pkg-descr @@ -0,0 +1,7 @@ +The Alertmanager handles alerts sent by client applications such +as the Prometheus server. It takes care of deduplicating, grouping, +and routing them to the correct receiver integrations such as email, +PagerDuty, or OpsGenie. It also takes care of silencing and inhibition +of alerts. + +WWW: https://prometheus.io/docs/alerting/alertmanager/