summaryrefslogtreecommitdiff
path: root/sysutils/beats
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/beats')
-rw-r--r--sysutils/beats/DESCR5
-rw-r--r--sysutils/beats/Makefile71
-rw-r--r--sysutils/beats/PLIST21
-rw-r--r--sysutils/beats/distinfo7
-rw-r--r--sysutils/beats/files/smf/manifest.xml83
-rw-r--r--sysutils/beats/patches/patch-vendor_github.com_tsg_gopacket_pcap_pcap.go22
6 files changed, 209 insertions, 0 deletions
diff --git a/sysutils/beats/DESCR b/sysutils/beats/DESCR
new file mode 100644
index 00000000000..3add6f12559
--- /dev/null
+++ b/sysutils/beats/DESCR
@@ -0,0 +1,5 @@
+The Beats are lightweight processes, written in Go, that you install
+on your servers to capture all sorts of operational data like logs,
+operating system metrics or network packet data, and to send it to
+Elasticsearch, either directly or via Logstash, so it can be
+visualized with Kibana.
diff --git a/sysutils/beats/Makefile b/sysutils/beats/Makefile
new file mode 100644
index 00000000000..3039b65b47c
--- /dev/null
+++ b/sysutils/beats/Makefile
@@ -0,0 +1,71 @@
+# $NetBSD: Makefile,v 1.1 2017/01/05 16:43:09 fhajny Exp $
+#
+
+DISTNAME= beats-5.1.1
+CATEGORIES= sysutils
+MASTER_SITES= ${MASTER_SITE_GITHUB:=elastic/}
+GITHUB_PROJECT= beats
+GITHUB_TAG= v${PKGVERSION_NOREV}
+
+MAINTAINER= filip@joyent.com
+HOMEPAGE= https://www.elastic.co/products/beats
+COMMENT= Data Shippers for Elasticsearch
+LICENSE= apache-2.0
+
+.include "../../lang/go/version.mk"
+BUILD_DEPENDS+= go-${GO_VERSION}*:../../lang/go
+
+EXTRACT_USING= bsdtar
+USE_TOOLS+= gmake
+
+WRKSRC= ${WRKDIR}/src/github.com/elastic/beats
+
+# Components to build/install
+BEATS= filebeat heartbeat metricbeat packetbeat
+
+.for beat in ${BEATS}
+CONF_FILES+= share/examples/beats/${beat}.yml \
+ ${PKG_SYSCONFDIR}/${beat}.yml
+CONF_FILES+= share/examples/beats/${beat}.template.json \
+ ${PKG_SYSCONFDIR}/${beat}.template.json
+CONF_FILES+= share/examples/beats/${beat}.template-es2x.json \
+ ${PKG_SYSCONFDIR}/${beat}.template-es2x.json
+.endfor
+
+BEATS_DIR?= ${VARBASE}/db/beats
+BEATS_LOGDIR?= ${VARBASE}/log/beats
+
+FILES_SUBST+= BEATS_DIR=${BEATS_DIR}
+FILES_SUBST+= BEATS_LOGDIR=${BEATS_LOGDIR}
+
+PKG_SYSCONFSUBDIR= beats
+
+SMF_INSTANCES+= ${BEATS}
+
+OWN_DIRS+= ${BEATS_DIR} ${BEATS_LOGDIR}
+
+MAKE_ENV+= GOPATH=${WRKDIR}:${PREFIX}/gopkg
+BUILD_DIRS= ${BEATS}
+BUILD_TARGET= #
+
+INSTALLATION_DIRS+= bin share/examples/beats
+
+post-extract:
+ ${MKDIR} ${WRKSRC}
+ ${MV} ${WRKDIR}/${DISTNAME}/* ${WRKSRC}
+
+do-install:
+.for beat in ${BEATS}
+ ${INSTALL_PROGRAM} ${WRKSRC}/${beat}/${beat} ${DESTDIR}${PREFIX}/bin
+ ${INSTALL_DATA} ${WRKSRC}/${beat}/${beat}.full.yml \
+ ${DESTDIR}${PREFIX}/share/examples/beats
+ ${INSTALL_DATA} ${WRKSRC}/${beat}/${beat}.template-es2x.json \
+ ${DESTDIR}${PREFIX}/share/examples/beats
+ ${INSTALL_DATA} ${WRKSRC}/${beat}/${beat}.template.json \
+ ${DESTDIR}${PREFIX}/share/examples/beats
+ ${INSTALL_DATA} ${WRKSRC}/${beat}/${beat}.yml \
+ ${DESTDIR}${PREFIX}/share/examples/beats
+.endfor
+
+.include "../../net/libpcap/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/sysutils/beats/PLIST b/sysutils/beats/PLIST
new file mode 100644
index 00000000000..31bd2b58c17
--- /dev/null
+++ b/sysutils/beats/PLIST
@@ -0,0 +1,21 @@
+@comment $NetBSD: PLIST,v 1.1 2017/01/05 16:43:09 fhajny Exp $
+bin/filebeat
+bin/heartbeat
+bin/metricbeat
+bin/packetbeat
+share/examples/beats/filebeat.full.yml
+share/examples/beats/filebeat.template-es2x.json
+share/examples/beats/filebeat.template.json
+share/examples/beats/filebeat.yml
+share/examples/beats/heartbeat.full.yml
+share/examples/beats/heartbeat.template-es2x.json
+share/examples/beats/heartbeat.template.json
+share/examples/beats/heartbeat.yml
+share/examples/beats/metricbeat.full.yml
+share/examples/beats/metricbeat.template-es2x.json
+share/examples/beats/metricbeat.template.json
+share/examples/beats/metricbeat.yml
+share/examples/beats/packetbeat.full.yml
+share/examples/beats/packetbeat.template-es2x.json
+share/examples/beats/packetbeat.template.json
+share/examples/beats/packetbeat.yml
diff --git a/sysutils/beats/distinfo b/sysutils/beats/distinfo
new file mode 100644
index 00000000000..5a7273da5b8
--- /dev/null
+++ b/sysutils/beats/distinfo
@@ -0,0 +1,7 @@
+$NetBSD: distinfo,v 1.1 2017/01/05 16:43:09 fhajny Exp $
+
+SHA1 (beats-5.1.1.tar.gz) = 6847fc4b96adcf38b3b46a2c31a6109797bfd07b
+RMD160 (beats-5.1.1.tar.gz) = 9cc18d886df86e4cead9c9ab546a127a8f643893
+SHA512 (beats-5.1.1.tar.gz) = 0eb646faa7ff8fb310f97507c105b1dac5ee1ed114c858f92905ae8a1e7a3a2a2a095e52a5155194df9b699e93dd93f00e9da9b1d71b22fbcc539feaa705b984
+Size (beats-5.1.1.tar.gz) = 16500866 bytes
+SHA1 (patch-vendor_github.com_tsg_gopacket_pcap_pcap.go) = 2ef13f84cbf2e1da428e7b08625ffa6111ebcdf5
diff --git a/sysutils/beats/files/smf/manifest.xml b/sysutils/beats/files/smf/manifest.xml
new file mode 100644
index 00000000000..f811747a7ff
--- /dev/null
+++ b/sysutils/beats/files/smf/manifest.xml
@@ -0,0 +1,83 @@
+<?xml version='1.0'?>
+<!DOCTYPE service_bundle SYSTEM '/usr/share/lib/xml/dtd/service_bundle.dtd.1'>
+<service_bundle type='manifest' name='export'>
+ <service name='@SMF_PREFIX@/@SMF_NAME@' type='service' version='1'>
+ <dependency name='fs-local' grouping='require_all' restart_on='none' type='service'>
+ <service_fmri value='svc:/system/filesystem/local'/>
+ </dependency>
+ <dependency name='network-service' grouping='require_all' restart_on='none' type='service'>
+ <service_fmri value='svc:/network/service'/>
+ </dependency>
+ <dependency name='name-services' grouping='require_all' restart_on='refresh' type='service'>
+ <service_fmri value='svc:/milestone/name-services'/>
+ </dependency>
+ <dependency name='system-log' grouping='optional_all' restart_on='none' type='service'>
+ <service_fmri value='svc:/system/system-log'/>
+ </dependency>
+ <method_context working_directory='@BEATS_DIR@' />
+ <property_group name='startd' type='framework'>
+ <propval name='ignore_error' type='astring' value='core,signal'/>
+ <propval name='duration' type='astring' value='child' />
+ </property_group>
+ <instance name='filebeat' enabled='false'>
+ <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
+ <service_fmri value='file://localhost@PKG_SYSCONFDIR@/filebeat.yml'/>
+ </dependency>
+ <exec_method name='start' type='method' exec='@PREFIX@/bin/filebeat -path.config @PKG_SYSCONFDIR@ -path.data @BEATS_DIR@ -path.logs @BEATS_LOGDIR@' timeout_seconds='60'/>
+ <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'/>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>Beats: filebeat data shipper</loctext>
+ </common_name>
+ <documentation>
+ <doc_link name='elastic.co' uri='https://www.elastic.co/guide/en/beats/filebeat/current/index.html' />
+ </documentation>
+ </template>
+ </instance>
+ <instance name='heartbeat' enabled='false'>
+ <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
+ <service_fmri value='file://localhost@PKG_SYSCONFDIR@/heartbeat.yml'/>
+ </dependency>
+ <exec_method name='start' type='method' exec='@PREFIX@/bin/heartbeat -path.config @PKG_SYSCONFDIR@ -path.data @BEATS_DIR@ -path.logs @BEATS_LOGDIR@' timeout_seconds='60'/>
+ <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'/>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>Beats: heartbeat data shipper</loctext>
+ </common_name>
+ <documentation>
+ <doc_link name='elastic.co' uri='https://www.elastic.co/guide/en/beats/heartbeat/current/index.html' />
+ </documentation>
+ </template>
+ </instance>
+ <instance name='metricbeat' enabled='false'>
+ <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
+ <service_fmri value='file://localhost@PKG_SYSCONFDIR@/metricbeat.yml'/>
+ </dependency>
+ <exec_method name='start' type='method' exec='@PREFIX@/bin/metricbeat -path.config @PKG_SYSCONFDIR@ -path.data @BEATS_DIR@ -path.logs @BEATS_LOGDIR@' timeout_seconds='60'/>
+ <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'/>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>Beats: metricbeat data shipper</loctext>
+ </common_name>
+ <documentation>
+ <doc_link name='elastic.co' uri='https://www.elastic.co/guide/en/beats/metricbeat/current/index.html' />
+ </documentation>
+ </template>
+ </instance>
+ <instance name='packetbeat' enabled='false'>
+ <dependency name='config-file' grouping='require_all' restart_on='refresh' type='path'>
+ <service_fmri value='file://localhost@PKG_SYSCONFDIR@/packetbeat.yml'/>
+ </dependency>
+ <exec_method name='start' type='method' exec='@PREFIX@/bin/packetbeat -path.config @PKG_SYSCONFDIR@ -path.data @BEATS_DIR@ -path.logs @BEATS_LOGDIR@' timeout_seconds='60'/>
+ <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60'/>
+ <template>
+ <common_name>
+ <loctext xml:lang='C'>Beats: packetbeat data shipper</loctext>
+ </common_name>
+ <documentation>
+ <doc_link name='elastic.co' uri='https://www.elastic.co/guide/en/beats/packetbeat/current/index.html' />
+ </documentation>
+ </template>
+ </instance>
+ </service>
+</service_bundle>
diff --git a/sysutils/beats/patches/patch-vendor_github.com_tsg_gopacket_pcap_pcap.go b/sysutils/beats/patches/patch-vendor_github.com_tsg_gopacket_pcap_pcap.go
new file mode 100644
index 00000000000..7c82807dea5
--- /dev/null
+++ b/sysutils/beats/patches/patch-vendor_github.com_tsg_gopacket_pcap_pcap.go
@@ -0,0 +1,22 @@
+$NetBSD: patch-vendor_github.com_tsg_gopacket_pcap_pcap.go,v 1.1 2017/01/05 16:43:09 fhajny Exp $
+
+Just require pcap, fixes NetBSD.
+
+--- vendor/github.com/tsg/gopacket/pcap/pcap.go.orig 2016-12-06 07:41:08.000000000 +0000
++++ vendor/github.com/tsg/gopacket/pcap/pcap.go
+@@ -8,14 +8,7 @@
+ package pcap
+
+ /*
+-#cgo linux LDFLAGS: -lpcap
+-#cgo freebsd LDFLAGS: -lpcap
+-#cgo openbsd LDFLAGS: -lpcap
+-#cgo darwin LDFLAGS: -lpcap
+-#cgo solaris LDFLAGS: -lpcap
+-#cgo windows CFLAGS: -I C:/WpdPack/Include
+-#cgo windows,386 LDFLAGS: -L C:/WpdPack/Lib -lwpcap
+-#cgo windows,amd64 LDFLAGS: -L C:/WpdPack/Lib/x64 -lwpcap
++#cgo LDFLAGS: -lpcap
+ #include <stdlib.h>
+ #include <pcap.h>
+