From 2d058d7be6cebdbc14cb74981000930cdcb3af74 Mon Sep 17 00:00:00 2001 From: makefu Date: Wed, 22 Jul 2020 16:25:00 +0200 Subject: puyak: enable blackbox prometheus exporter, use it to ping internal and external hosts --- krebs/2configs/shack/glados/default.nix | 15 +++----- krebs/2configs/shack/prometheus/blackbox.nix | 19 ++++++++++ krebs/2configs/shack/prometheus/server.nix | 54 +++++++++++++++++++++------- 3 files changed, 65 insertions(+), 23 deletions(-) create mode 100644 krebs/2configs/shack/prometheus/blackbox.nix (limited to 'krebs/2configs') diff --git a/krebs/2configs/shack/glados/default.nix b/krebs/2configs/shack/glados/default.nix index b6bcc8673..43d1ae3f3 100644 --- a/krebs/2configs/shack/glados/default.nix +++ b/krebs/2configs/shack/glados/default.nix @@ -29,8 +29,7 @@ in { }; in { enable = true; - package = (pkgs.home-assistant.overrideAttrs (old: { - # TODO: find correct python package + package = (pkgs.home-assistant.overrideAttrs (old: { # TODO: find correct python package installCheckPhase = '' echo LOLLLLLLLLLLLLLL ''; @@ -70,6 +69,8 @@ in { # source = "hass"; # }; #}; + esphome = {}; + api = {}; mqtt = { broker = "localhost"; port = 1883; @@ -130,11 +131,9 @@ in { trusted_proxies = "127.0.0.1"; }; #conversation = {}; - history = {}; + # history = {}; #logbook = {}; - logger = { - default = "info"; - }; + logger.default = "info"; #recorder = {}; tts = [ { platform = "google_translate"; @@ -143,10 +142,6 @@ in { cache = true; time_memory = 57600; } - { platform = "picotts"; - language = "de-DE"; - service_name = "pico"; - } ]; sun = {}; diff --git a/krebs/2configs/shack/prometheus/blackbox.nix b/krebs/2configs/shack/prometheus/blackbox.nix new file mode 100644 index 000000000..82ce003e8 --- /dev/null +++ b/krebs/2configs/shack/prometheus/blackbox.nix @@ -0,0 +1,19 @@ +{pkgs, ... }: +{ + systemd.services.prometheus-blackbox-exporter.serviceConfig = { + CapabilityBoundingSet = ["CAP_NET_RAW"]; # icmp allow + AmbientCapabilities = ["CAP_NET_RAW"]; + }; + services.prometheus.exporters.blackbox = { + enable = true; + # openFirewall = true; # not requred if running on the same host as prometheus + port = 9115; + configFile = pkgs.writeText "icmp" '' + modules: + icmp: + prober: icmp + icmp: + preferred_ip_protocol: ip4 + ''; + }; +} diff --git a/krebs/2configs/shack/prometheus/server.nix b/krebs/2configs/shack/prometheus/server.nix index f5d2e7640..c088a3b08 100644 --- a/krebs/2configs/shack/prometheus/server.nix +++ b/krebs/2configs/shack/prometheus/server.nix @@ -18,16 +18,6 @@ }; prometheus = { enable = true; - extraFlags = [ - "-storage.local.retention 720h" - "-storage.local.series-file-shrink-ratio 0.3" - "-storage.local.memory-chunks 2097152" - "-storage.local.max-chunks-to-persist 1048576" - "-storage.local.index-cache-size.fingerprint-to-metric 2097152" - "-storage.local.index-cache-size.fingerprint-to-timerange 1048576" - "-storage.local.index-cache-size.label-name-to-label-values 2097152" - "-storage.local.index-cache-size.label-pair-to-fingerprints 41943040" - ]; ruleFiles = lib.singleton (pkgs.writeText "prometheus-rules.yml" (builtins.toJSON { groups = lib.singleton { name = "mf-alerting-rules"; @@ -41,7 +31,7 @@ static_configs = [ { targets = [ - "localhost:9100" + "wolf.shack:9100" ]; labels = { alias = "wolf.shack"; @@ -49,7 +39,15 @@ } { targets = [ - "localhost:9130" + "infra01.shack:9100" + ]; + labels = { + alias = "infra01.shack"; + }; + } + { + targets = [ + "unifi.shack:9130" ]; labels = { alias = "unifi.shack"; @@ -57,7 +55,7 @@ } { targets = [ - "10.42.22.184:9100" # puyak.shack + "puyak.shack:9100" # puyak.shack ]; labels = { alias = "puyak.shack"; @@ -81,6 +79,36 @@ } ]; } + { + job_name = "blackbox"; + metrics_path = "/probe"; + params.module = [ "icmp" ]; + static_configs = [ + { + targets = [ + "google.com" + "wolf.shack" + "web.de" + "10.0.0.1" + "licht.shack" + ]; + } + ]; + relabel_configs = [ + { + source_labels = ["__address__"]; + target_label = "__param_target"; + } + { + source_labels = ["__param_target"]; + target_label = "instance"; + } + { + target_label = "__address__"; + replacement = "127.0.0.1:9115"; + } + ]; + } ]; alertmanagers = [ { scheme = "http"; -- cgit v1.2.3 From b353c6ac1ca94e39f2edb4f6b2bfdd60479443b0 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 28 Jul 2020 22:19:17 +0200 Subject: shack/glados: schlechte_luft uses new sensors --- .../2configs/shack/glados/multi/schlechte_luft.nix | 37 ++++++++++------------ 1 file changed, 17 insertions(+), 20 deletions(-) (limited to 'krebs/2configs') diff --git a/krebs/2configs/shack/glados/multi/schlechte_luft.nix b/krebs/2configs/shack/glados/multi/schlechte_luft.nix index 529454a41..31373d7b9 100644 --- a/krebs/2configs/shack/glados/multi/schlechte_luft.nix +++ b/krebs/2configs/shack/glados/multi/schlechte_luft.nix @@ -1,5 +1,7 @@ let glados = import ../lib; + feinstaub_sensor = "sensor.fablab_particulate_matter_2_5um_concentration"; + ledring = "light.fablab_led_ring"; in { automation = @@ -8,15 +10,15 @@ in trigger = [ { platform = "numeric_state"; - below = 25; - entity_id = "sensor.fablab_feinstaub_2_5um"; + entity_id = feinstaub_sensor; + below = 3; } ]; action = [ { service = "light.turn_on"; data = { - entity_id = "light.fablab_led"; + entity_id = ledring; effect = "Twinkle"; color_name = "green"; }; @@ -25,23 +27,18 @@ in } { alias = "mäßige Luft Fablab"; trigger = [ - #{ - # platform = "numeric_state"; - # above = 25; - # entity_id = "sensor.fablab_feinstaub_25m"; - #} { platform = "numeric_state"; - above = 25; - below = 50; - entity_id = "sensor.fablab_feinstaub_2_5um"; + above = 3; + below = 10; + entity_id = feinstaub_sensor; } ]; action = [ { service = "light.turn_on"; data = { - entity_id = "light.fablab_led"; + entity_id = ledring; effect = "Twinkle"; color_name = "yellow"; }; @@ -52,16 +49,16 @@ in trigger = [ { platform = "numeric_state"; - above = 50; - entity_id = "sensor.fablab_feinstaub_2_5um"; + above = 10; + entity_id = feinstaub_sensor; } ]; action = [ { service = "light.turn_on"; data = { - entity_id = "light.fablab_led"; - effect = "Twinkle"; + entity_id = ledring; + effect = "Fireworks"; color_name = "red"; }; } @@ -72,14 +69,14 @@ in { platform = "state"; to = "unavailable"; - entity_id = "sensor.fablab_feinstaub_2_5um"; + entity_id = feinstaub_sensor; } ]; action = [ { service = "light.turn_on"; data = { - entity_id = "light.fablab_led"; + entity_id = ledring; effect = "Rainbow"; color_name = "blue"; }; @@ -91,14 +88,14 @@ in { platform = "state"; from = "unavailable"; - entity_id = "light.fablab_led"; + entity_id = ledring; } ]; action = [ { service = "light.turn_on"; data = { - entity_id = "light.fablab_led"; + entity_id = ledring; effect = "Rainbow"; color_name = "orange"; }; -- cgit v1.2.3 From 26668a97f5c916d3d6f7c7062202c21783140935 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 28 Jul 2020 23:59:13 +0200 Subject: shack/glados: add party-time --- .../shack/glados/automation/party-time.nix | 29 ++++++++++++++++++++++ krebs/2configs/shack/glados/default.nix | 1 + 2 files changed, 30 insertions(+) create mode 100644 krebs/2configs/shack/glados/automation/party-time.nix (limited to 'krebs/2configs') diff --git a/krebs/2configs/shack/glados/automation/party-time.nix b/krebs/2configs/shack/glados/automation/party-time.nix new file mode 100644 index 000000000..dfa42d05c --- /dev/null +++ b/krebs/2configs/shack/glados/automation/party-time.nix @@ -0,0 +1,29 @@ +# Needs: +# sun.sunset +# switch.lounge_diskoschalter_relay +let + glados = import ../lib; + disko_schalter = "switch.lounge_diskoschalter_relay"; + player = "media_player.lounge"; +in +[ + { alias = "Party um 21 Uhr"; + trigger = { + platform = "sun"; + event = "sunset"; + }; + action = + ( glados.say.kiosk "Die Sonne geht unter. Und jetzt geht die Party im shack erst richtig los. Partybeleuchtung, aktiviert!" ) + ++ + [ + { + service = "homeassistant.turn_on"; + entity_id = disko_schalter; + } + { + service = "media_player.turn_on"; + data.entity_id = player; + } # TODO: also start playlist if nothing is running? + ]; + } +] diff --git a/krebs/2configs/shack/glados/default.nix b/krebs/2configs/shack/glados/default.nix index 43d1ae3f3..9bf90bca4 100644 --- a/krebs/2configs/shack/glados/default.nix +++ b/krebs/2configs/shack/glados/default.nix @@ -148,6 +148,7 @@ in { automation = wasser.automation ++ badair.automation ++ (import ./automation/shack-startup.nix) + ++ (import ./automation/party-time.nix) ++ (import ./automation/hass-restart.nix); device_tracker = []; -- cgit v1.2.3 From 3d8f07d4be7c2dc50f9de50ce2b1d55b9bdc7b90 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 28 Jul 2020 23:59:32 +0200 Subject: shack/glados: fix giesskanne --- krebs/2configs/shack/glados/multi/wasser.nix | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'krebs/2configs') diff --git a/krebs/2configs/shack/glados/multi/wasser.nix b/krebs/2configs/shack/glados/multi/wasser.nix index cdfe01405..0a7ffc41c 100644 --- a/krebs/2configs/shack/glados/multi/wasser.nix +++ b/krebs/2configs/shack/glados/multi/wasser.nix @@ -1,6 +1,9 @@ +# uses: +# switch.crafting_giesskanne_relay let glados = import ../lib; - seconds = 20; + seconds = 5; + wasser = "switch.crafting_giesskanne_relay"; in { switch = [ @@ -22,14 +25,14 @@ in { service = "homeassistant.turn_on"; entity_id = [ - "switch.wasser" + wasser ]; } { delay.seconds = seconds; } { service = "homeassistant.turn_off"; entity_id = [ - "switch.wasser" + wasser ]; } ]; @@ -38,7 +41,7 @@ in trigger = [ { platform = "state"; - entity_id = "switch.wasser"; + entity_id = wasser; to = "on"; for.seconds = seconds*2; } @@ -47,7 +50,7 @@ in [ { service = "homeassistant.turn_off"; - entity_id = [ "switch.wasser" ]; + entity_id = [ wasser ]; } ]; } -- cgit v1.2.3