summaryrefslogtreecommitdiffstats
path: root/pkgs/misc/logging/beats/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/misc/logging/beats/default.nix')
-rw-r--r--pkgs/misc/logging/beats/default.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/pkgs/misc/logging/beats/default.nix b/pkgs/misc/logging/beats/default.nix
new file mode 100644
index 000000000000..d4c78389e664
--- /dev/null
+++ b/pkgs/misc/logging/beats/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, elk5Version, buildGoPackage, libpcap }:
+
+let beat = package : extraArgs : buildGoPackage (rec {
+ name = "${package}-${version}";
+ version = elk5Version;
+
+ src = fetchFromGitHub {
+ owner = "elastic";
+ repo = "beats";
+ rev = "v${version}";
+ sha256 = "1if16sqbhgxc7ahn9pak8av9rq9l8ldk44hr4w4g7lhxnqhmhsji";
+ };
+
+ goPackagePath = "github.com/elastic/beats";
+
+ subPackages = [ package ];
+
+ meta = with stdenv.lib; {
+ homepage = https://www.elastic.co/products/beats;
+ license = licenses.asl20;
+ maintainers = with maintainers; [ fadenb basvandijk ];
+ platforms = platforms.linux;
+ };
+ } // extraArgs);
+in {
+ filebeat = beat "filebeat" {meta.description = "Lightweight shipper for logfiles";};
+ heartbeat = beat "heartbeat" {meta.description = "Lightweight shipper for uptime monitoring";};
+ metricbeat = beat "metricbeat" {meta.description = "Lightweight shipper for metrics";};
+ packetbeat = beat "packetbeat" {
+ buildInputs = [ libpcap ];
+ meta.description = "Network packet analyzer that ships data to Elasticsearch";
+ meta.longDescription = ''
+ Packetbeat is an open source network packet analyzer that ships the
+ data to Elasticsearch.
+
+ Think of it like a distributed real-time Wireshark with a lot more
+ analytics features. The Packetbeat shippers sniff the traffic between
+ your application processes, parse on the fly protocols like HTTP, MySQL,
+ PostgreSQL, Redis or Thrift and correlate the messages into transactions.
+ '';
+ };
+}