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/