diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index ce935915abf6..c1f55da67a08 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -221,6 +221,7 @@ skydns = 197; ripple-rest = 198; nix-serve = 199; + riemanntools = 200; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! @@ -420,6 +421,7 @@ #skydns = 197; #unused #ripple-rest = 198; #unused #nix-serve = 199; #unused + riemanntools = 200; # When adding a gid, make sure it doesn't match an existing # uid. Users and groups with the same name should have equal diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index d33d3ca91d41..bc67b6bdfa6a 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -233,6 +233,7 @@ ./services/monitoring/nagios.nix ./services/monitoring/riemann.nix ./services/monitoring/riemann-dash.nix + ./services/monitoring/riemann-tools.nix ./services/monitoring/scollector.nix ./services/monitoring/smartd.nix ./services/monitoring/statsd.nix diff --git a/nixos/modules/services/monitoring/riemann-tools.nix b/nixos/modules/services/monitoring/riemann-tools.nix new file mode 100644 index 000000000000..ce277f09464a --- /dev/null +++ b/nixos/modules/services/monitoring/riemann-tools.nix @@ -0,0 +1,62 @@ +{ config, pkgs, lib, ... }: + +with pkgs; +with lib; + +let + + cfg = config.services.riemann-tools; + + riemannHost = "${cfg.riemannHost}"; + + healthLauncher = writeScriptBin "riemann-health" '' + #!/bin/sh + exec ${pkgs.riemann-tools}/bin/riemann-health --host ${riemannHost} + ''; + + +in { + + options = { + + services.riemann-tools = { + enableHealth = mkOption { + type = types.bool; + default = false; + description = '' + Enable the riemann-health daemon. + ''; + }; + riemannHost = mkOption { + type = types.str; + default = "127.0.0.1"; + description = '' + Address of the host riemann node. Defaults to localhost. + ''; + }; + }; + + }; + + config = mkIf cfg.enableHealth { + + users.extraGroups.riemanntools.gid = config.ids.gids.riemanntools; + + users.extraUsers.riemanntools = { + description = "riemann-tools daemon user"; + uid = config.ids.uids.riemanntools; + group = "riemanntools"; + }; + + systemd.services.riemann-health = { + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = "riemanntools"; + ExecStart = "${healthLauncher}/bin/riemann-health"; + PermissionsStartOnly = true; + }; + }; + + }; + +} diff --git a/pkgs/tools/misc/riemann-tools/Gemfile b/pkgs/tools/misc/riemann-tools/Gemfile new file mode 100644 index 000000000000..3d56cd85c617 --- /dev/null +++ b/pkgs/tools/misc/riemann-tools/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' + +gem "riemann-tools", "0.2.6" diff --git a/pkgs/tools/misc/riemann-tools/Gemfile.lock b/pkgs/tools/misc/riemann-tools/Gemfile.lock new file mode 100644 index 000000000000..58c12fd51516 --- /dev/null +++ b/pkgs/tools/misc/riemann-tools/Gemfile.lock @@ -0,0 +1,142 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (2.3.1) + beefcake (1.1.0) + builder (3.2.2) + excon (0.45.3) + faraday (0.9.1) + multipart-post (>= 1.2, < 3) + fission (0.5.0) + CFPropertyList (~> 2.2) + fog (1.31.0) + fog-atmos + fog-aws (~> 0.0) + fog-brightbox (~> 0.4) + fog-core (~> 1.30) + fog-ecloud + fog-google (>= 0.0.2) + fog-json + fog-local + fog-powerdns (>= 0.1.1) + fog-profitbricks + fog-radosgw (>= 0.0.2) + fog-riakcs + fog-sakuracloud (>= 0.0.4) + fog-serverlove + fog-softlayer + fog-storm_on_demand + fog-terremark + fog-vmfusion + fog-voxel + fog-xml (~> 0.1.1) + ipaddress (~> 0.5) + nokogiri (~> 1.5, >= 1.5.11) + fog-atmos (0.1.0) + fog-core + fog-xml + fog-aws (0.6.0) + fog-core (~> 1.27) + fog-json (~> 1.0) + fog-xml (~> 0.1) + ipaddress (~> 0.8) + fog-brightbox (0.7.2) + fog-core (~> 1.22) + fog-json + inflecto (~> 0.0.2) + fog-core (1.31.1) + builder + excon (~> 0.45) + formatador (~> 0.2) + mime-types + net-scp (~> 1.1) + net-ssh (>= 2.1.3) + fog-ecloud (0.3.0) + fog-core + fog-xml + fog-google (0.0.6) + fog-core + fog-json + fog-xml + fog-json (1.0.2) + fog-core (~> 1.0) + multi_json (~> 1.10) + fog-local (0.2.1) + fog-core (~> 1.27) + fog-powerdns (0.1.1) + fog-core (~> 1.27) + fog-json (~> 1.0) + fog-xml (~> 0.1) + fog-profitbricks (0.0.3) + fog-core + fog-xml + nokogiri + fog-radosgw (0.0.4) + fog-core (>= 1.21.0) + fog-json + fog-xml (>= 0.0.1) + fog-riakcs (0.1.0) + fog-core + fog-json + fog-xml + fog-sakuracloud (1.0.1) + fog-core + fog-json + fog-serverlove (0.1.2) + fog-core + fog-json + fog-softlayer (0.4.7) + fog-core + fog-json + fog-storm_on_demand (0.1.1) + fog-core + fog-json + fog-terremark (0.1.0) + fog-core + fog-xml + fog-vmfusion (0.1.0) + fission + fog-core + fog-voxel (0.1.0) + fog-core + fog-xml + fog-xml (0.1.2) + fog-core + nokogiri (~> 1.5, >= 1.5.11) + formatador (0.2.5) + inflecto (0.0.2) + ipaddress (0.8.0) + mime-types (2.6.1) + mini_portile (0.6.2) + mtrc (0.0.4) + multi_json (1.11.1) + multipart-post (2.0.0) + munin-ruby (0.2.5) + net-scp (1.2.1) + net-ssh (>= 2.6.5) + net-ssh (2.9.2) + nokogiri (1.6.6.2) + mini_portile (~> 0.6.0) + riemann-client (0.2.5) + beefcake (>= 0.3.5) + mtrc (>= 0.0.4) + trollop (>= 1.16.2) + riemann-tools (0.2.6) + faraday (>= 0.8.5) + fog (>= 1.4.0) + munin-ruby (>= 0.2.1) + nokogiri (>= 1.5.6) + riemann-client (>= 0.2.2) + trollop (>= 1.16.2) + yajl-ruby (>= 1.1.0) + trollop (2.1.2) + yajl-ruby (1.2.1) + +PLATFORMS + ruby + +DEPENDENCIES + riemann-tools (= 0.2.6) + +BUNDLED WITH + 1.10.2 diff --git a/pkgs/tools/misc/riemann-tools/default.nix b/pkgs/tools/misc/riemann-tools/default.nix new file mode 100644 index 000000000000..c518bc66984d --- /dev/null +++ b/pkgs/tools/misc/riemann-tools/default.nix @@ -0,0 +1,8 @@ +{ bundlerEnv }: + +bundlerEnv { + name = "riemann-tools-0.2.6"; + gemfile = ./Gemfile; + lockfile = ./Gemfile.lock; + gemset = ./gemset.nix; +} diff --git a/pkgs/tools/misc/riemann-tools/gemset.nix b/pkgs/tools/misc/riemann-tools/gemset.nix new file mode 100644 index 000000000000..07818fc76bcd --- /dev/null +++ b/pkgs/tools/misc/riemann-tools/gemset.nix @@ -0,0 +1,444 @@ +{ + "CFPropertyList" = { + version = "2.3.1"; + source = { + type = "gem"; + sha256 = "1wnk3gxnhfafbhgp0ic7qhzlx3lhv04v8nws2s31ii5s8135hs6k"; + }; + }; + "beefcake" = { + version = "1.1.0"; + source = { + type = "gem"; + sha256 = "009gzy9jp81lsnxnwisinhc58cd0qljdiipj2701lzzrha5d826z"; + }; + }; + "builder" = { + version = "3.2.2"; + source = { + type = "gem"; + sha256 = "14fii7ab8qszrvsvhz6z2z3i4dw0h41a62fjr2h1j8m41vbrmyv2"; + }; + }; + "excon" = { + version = "0.45.3"; + source = { + type = "gem"; + sha256 = "183kfxfjjlc97w4rxkrxjw3kis4lxm65vppmvl4bkblvlw4nq94j"; + }; + }; + "faraday" = { + version = "0.9.1"; + source = { + type = "gem"; + sha256 = "1h33znnfzxpscgpq28i9fcqijd61h61zgs3gabpdgqfa1043axsn"; + }; + dependencies = [ + "multipart-post" + ]; + }; + "fission" = { + version = "0.5.0"; + source = { + type = "gem"; + sha256 = "09pmp1j1rr8r3pcmbn2na2ls7s1j9ijbxj99xi3a8r6v5xhjdjzh"; + }; + dependencies = [ + "CFPropertyList" + ]; + }; + "fog" = { + version = "1.31.0"; + source = { + type = "gem"; + sha256 = "0xr8xyrrkljm2hxi420x4qr5v6wqcj8d63v0qy1g6rkb3b1yhl9i"; + }; + dependencies = [ + "fog-atmos" + "fog-aws" + "fog-brightbox" + "fog-core" + "fog-ecloud" + "fog-google" + "fog-json" + "fog-local" + "fog-powerdns" + "fog-profitbricks" + "fog-radosgw" + "fog-riakcs" + "fog-sakuracloud" + "fog-serverlove" + "fog-softlayer" + "fog-storm_on_demand" + "fog-terremark" + "fog-vmfusion" + "fog-voxel" + "fog-xml" + "ipaddress" + "nokogiri" + ]; + }; + "fog-atmos" = { + version = "0.1.0"; + source = { + type = "gem"; + sha256 = "1aaxgnw9zy96gsh4h73kszypc32sx497s6bslvhfqh32q9d1y8c9"; + }; + dependencies = [ + "fog-core" + "fog-xml" + ]; + }; + "fog-aws" = { + version = "0.6.0"; + source = { + type = "gem"; + sha256 = "1m79s5ha6qq60pxqqxr9qs9fg8fwaz79sfxckidyhxdydcsjwx6z"; + }; + dependencies = [ + "fog-core" + "fog-json" + "fog-xml" + "ipaddress" + ]; + }; + "fog-brightbox" = { + version = "0.7.2"; + source = { + type = "gem"; + sha256 = "0636sqaf2w1rh4i2hxfgs24374l4ai8dgch8a7nycqhvjk2dm0aq"; + }; + dependencies = [ + "fog-core" + "fog-json" + "inflecto" + ]; + }; + "fog-core" = { + version = "1.31.1"; + source = { + type = "gem"; + sha256 = "1bcsy4cq7vyjmdf3h2v7q6hfj64v6phn0rfvwgj5wfza7yaxnhk7"; + }; + dependencies = [ + "builder" + "excon" + "formatador" + "mime-types" + "net-scp" + "net-ssh" + ]; + }; + "fog-ecloud" = { + version = "0.3.0"; + source = { + type = "gem"; + sha256 = "18rb4qjad9xwwqvvpj8r2h0hi9svy71pm4d3fc28cdcnfarmdi06"; + }; + dependencies = [ + "fog-core" + "fog-xml" + ]; + }; + "fog-google" = { + version = "0.0.6"; + source = { + type = "gem"; + sha256 = "1g3ykk239nxpdsr5anhprkp8vzk106gi4q6aqjh4z8q4bii0dflm"; + }; + dependencies = [ + "fog-core" + "fog-json" + "fog-xml" + ]; + }; + "fog-json" = { + version = "1.0.2"; + source = { + type = "gem"; + sha256 = "0advkkdjajkym77r3c0bg2rlahl2akj0vl4p5r273k2qmi16n00r"; + }; + dependencies = [ + "fog-core" + "multi_json" + ]; + }; + "fog-local" = { + version = "0.2.1"; + source = { + type = "gem"; + sha256 = "0i5hxwzmc2ag3z9nlligsaf679kp2pz39cd8n2s9cmxaamnlh2s3"; + }; + dependencies = [ + "fog-core" + ]; + }; + "fog-powerdns" = { + version = "0.1.1"; + source = { + type = "gem"; + sha256 = "08zavzwfkk344gz83phz4sy9nsjznsdjsmn1ifp6ja17bvydlhh7"; + }; + dependencies = [ + "fog-core" + "fog-json" + "fog-xml" + ]; + }; + "fog-profitbricks" = { + version = "0.0.3"; + source = { + type = "gem"; + sha256 = "01a3ylfkjkyagf4b4xg9x2v20pzapr3ivn9ydd92v402bjsm1nmr"; + }; + dependencies = [ + "fog-core" + "fog-xml" + "nokogiri" + ]; + }; + "fog-radosgw" = { + version = "0.0.4"; + source = { + type = "gem"; + sha256 = "1pxbvmr4dsqx4x2klwnciyhki4r5ryr9y0hi6xmm3n6fdv4ii7k3"; + }; + dependencies = [ + "fog-core" + "fog-json" + "fog-xml" + ]; + }; + "fog-riakcs" = { + version = "0.1.0"; + source = { + type = "gem"; + sha256 = "1nbxc4dky3agfwrmgm1aqmi59p6vnvfnfbhhg7xpg4c2cf41whxm"; + }; + dependencies = [ + "fog-core" + "fog-json" + "fog-xml" + ]; + }; + "fog-sakuracloud" = { + version = "1.0.1"; + source = { + type = "gem"; + sha256 = "1s16b48kh7y03hjv74ccmlfwhqqq7j7m4k6cywrgbyip8n3258n8"; + }; + dependencies = [ + "fog-core" + "fog-json" + ]; + }; + "fog-serverlove" = { + version = "0.1.2"; + source = { + type = "gem"; + sha256 = "0hxgmwzygrw25rbsy05i6nzsyr0xl7xj5j2sjpkb9n9wli5sagci"; + }; + dependencies = [ + "fog-core" + "fog-json" + ]; + }; + "fog-softlayer" = { + version = "0.4.7"; + source = { + type = "gem"; + sha256 = "0fgfbhqnyp8ywymvflflhvbns54d1432x57pgpnfy8k1cxvhv9b8"; + }; + dependencies = [ + "fog-core" + "fog-json" + ]; + }; + "fog-storm_on_demand" = { + version = "0.1.1"; + source = { + type = "gem"; + sha256 = "0fif1x8ci095b2yyilf65n7x6iyvn448azrsnmwsdkriy8vxxv3y"; + }; + dependencies = [ + "fog-core" + "fog-json" + ]; + }; + "fog-terremark" = { + version = "0.1.0"; + source = { + type = "gem"; + sha256 = "01lfkh9jppj0iknlklmwyb7ym3bfhkq58m3absb6rf5a5mcwi3lf"; + }; + dependencies = [ + "fog-core" + "fog-xml" + ]; + }; + "fog-vmfusion" = { + version = "0.1.0"; + source = { + type = "gem"; + sha256 = "0g0l0k9ylxk1h9pzqr6h2ba98fl47lpp3j19lqv4jxw0iw1rqxn4"; + }; + dependencies = [ + "fission" + "fog-core" + ]; + }; + "fog-voxel" = { + version = "0.1.0"; + source = { + type = "gem"; + sha256 = "10skdnj59yf4jpvq769njjrvh2l0wzaa7liva8n78qq003mvmfgx"; + }; + dependencies = [ + "fog-core" + "fog-xml" + ]; + }; + "fog-xml" = { + version = "0.1.2"; + source = { + type = "gem"; + sha256 = "1576sbzza47z48p0k9h1wg3rhgcvcvdd1dfz3xx1cgahwr564fqa"; + }; + dependencies = [ + "fog-core" + "nokogiri" + ]; + }; + "formatador" = { + version = "0.2.5"; + source = { + type = "gem"; + sha256 = "1gc26phrwlmlqrmz4bagq1wd5b7g64avpx0ghxr9xdxcvmlii0l0"; + }; + }; + "inflecto" = { + version = "0.0.2"; + source = { + type = "gem"; + sha256 = "085l5axmvqw59mw5jg454a3m3gr67ckq9405a075isdsn7bm3sp4"; + }; + }; + "ipaddress" = { + version = "0.8.0"; + source = { + type = "gem"; + sha256 = "0cwy4pyd9nl2y2apazp3hvi12gccj5a3ify8mi8k3knvxi5wk2ir"; + }; + }; + "mime-types" = { + version = "2.6.1"; + source = { + type = "gem"; + sha256 = "1vnrvf245ijfyxzjbj9dr6i1hkjbyrh4yj88865wv9bs75axc5jv"; + }; + }; + "mini_portile" = { + version = "0.6.2"; + source = { + type = "gem"; + sha256 = "0h3xinmacscrnkczq44s6pnhrp4nqma7k056x5wv5xixvf2wsq2w"; + }; + }; + "mtrc" = { + version = "0.0.4"; + source = { + type = "gem"; + sha256 = "0xj2pv4cpn0ad1xw38sinsxfzwhgqs6ff18hw0cwz5xmsf3zqmiz"; + }; + }; + "multi_json" = { + version = "1.11.1"; + source = { + type = "gem"; + sha256 = "0lrmadw2scqwz7nw3j5pfdnmzqimlbaxlxi37xsydrpbbr78qf6g"; + }; + }; + "multipart-post" = { + version = "2.0.0"; + source = { + type = "gem"; + sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; + }; + }; + "munin-ruby" = { + version = "0.2.5"; + source = { + type = "gem"; + sha256 = "0378jyf0hdbfs2vvk7v8k7hqilzi1rfkpn271dyrqqal7g2lnjl2"; + }; + }; + "net-scp" = { + version = "1.2.1"; + source = { + type = "gem"; + sha256 = "0b0jqrcsp4bbi4n4mzyf70cp2ysyp6x07j8k8cqgxnvb4i3a134j"; + }; + dependencies = [ + "net-ssh" + ]; + }; + "net-ssh" = { + version = "2.9.2"; + source = { + type = "gem"; + sha256 = "1p0bj41zrmw5lhnxlm1pqb55zfz9y4p9fkrr9a79nrdmzrk1ph8r"; + }; + }; + "nokogiri" = { + version = "1.6.6.2"; + source = { + type = "gem"; + sha256 = "1j4qv32qjh67dcrc1yy1h8sqjnny8siyy4s44awla8d6jk361h30"; + }; + dependencies = [ + "mini_portile" + ]; + }; + "riemann-client" = { + version = "0.2.5"; + source = { + type = "gem"; + sha256 = "1myhyh31f290jm1wlhhjvf331n5l8qdm7axkxyacdgjsfg4szsjc"; + }; + dependencies = [ + "beefcake" + "mtrc" + "trollop" + ]; + }; + "riemann-tools" = { + version = "0.2.6"; + source = { + type = "gem"; + sha256 = "0qjm7p55h70l5bs876hhvz3isr204663f97py9g0ajxz2z8jkzpi"; + }; + dependencies = [ + "faraday" + "fog" + "munin-ruby" + "nokogiri" + "riemann-client" + "trollop" + "yajl-ruby" + ]; + }; + "trollop" = { + version = "2.1.2"; + source = { + type = "gem"; + sha256 = "0415y63df86sqj43c0l82and65ia5h64if7n0znkbrmi6y0jwhl8"; + }; + }; + "yajl-ruby" = { + version = "1.2.1"; + source = { + type = "gem"; + sha256 = "0zvvb7i1bl98k3zkdrnx9vasq0rp2cyy5n7p9804dqs4fz9xh9vf"; + }; + }; +} \ No newline at end of file diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9e34b1e6e05e..c7ca6e24072f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2737,6 +2737,7 @@ let rhash = callPackage ../tools/security/rhash { }; riemann_c_client = callPackage ../tools/misc/riemann-c-client { }; + riemann-tools = callPackage ../tools/misc/riemann-tools { }; ripmime = callPackage ../tools/networking/ripmime {};