diff options
Diffstat (limited to 'hosts/surtr')
| -rw-r--r-- | hosts/surtr/dns/zones/li.yggdrasil.soa | 4 | ||||
| -rw-r--r-- | hosts/surtr/prometheus/default.nix | 73 | ||||
| -rw-r--r-- | hosts/surtr/prometheus/tls.crt | 10 | ||||
| -rw-r--r-- | hosts/surtr/prometheus/tls.key | 26 |
4 files changed, 112 insertions, 1 deletions
diff --git a/hosts/surtr/dns/zones/li.yggdrasil.soa b/hosts/surtr/dns/zones/li.yggdrasil.soa index ff623211..74b7170e 100644 --- a/hosts/surtr/dns/zones/li.yggdrasil.soa +++ b/hosts/surtr/dns/zones/li.yggdrasil.soa | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | $ORIGIN yggdrasil.li. | 1 | $ORIGIN yggdrasil.li. |
| 2 | $TTL 3600 | 2 | $TTL 3600 |
| 3 | @ IN SOA ns.yggdrasil.li. root.yggdrasil.li. ( | 3 | @ IN SOA ns.yggdrasil.li. root.yggdrasil.li. ( |
| 4 | 2022022201 ; serial | 4 | 2022040800 ; serial |
| 5 | 10800 ; refresh | 5 | 10800 ; refresh |
| 6 | 3600 ; retry | 6 | 3600 ; retry |
| 7 | 604800 ; expire | 7 | 604800 ; expire |
| @@ -40,6 +40,8 @@ surtr IN AAAA 2a03:4000:52:ada:: | |||
| 40 | surtr IN MX 0 ymir.yggdrasil.li | 40 | surtr IN MX 0 ymir.yggdrasil.li |
| 41 | surtr IN TXT "v=spf1 redirect=yggdrasil.li" | 41 | surtr IN TXT "v=spf1 redirect=yggdrasil.li" |
| 42 | 42 | ||
| 43 | prometheus.surtr IN CNAME surtr.yggdrasil.li. | ||
| 44 | |||
| 43 | vidhar IN AAAA 2a03:4000:52:ada:4:1:: | 45 | vidhar IN AAAA 2a03:4000:52:ada:4:1:: |
| 44 | vidhar IN MX 0 ymir.yggdrasil.li | 46 | vidhar IN MX 0 ymir.yggdrasil.li |
| 45 | vidhar IN TXT "v=spf1 redirect=yggdrasil.li" | 47 | vidhar IN TXT "v=spf1 redirect=yggdrasil.li" |
diff --git a/hosts/surtr/prometheus/default.nix b/hosts/surtr/prometheus/default.nix new file mode 100644 index 00000000..3fdfc2aa --- /dev/null +++ b/hosts/surtr/prometheus/default.nix | |||
| @@ -0,0 +1,73 @@ | |||
| 1 | { config, lib, pkgs, ... }: | ||
| 2 | |||
| 3 | with lib; | ||
| 4 | |||
| 5 | let | ||
| 6 | relabelHosts = [ | ||
| 7 | { source_labels = ["__address__"]; | ||
| 8 | target_label = "instance"; | ||
| 9 | regex = "(localhost|127\.[0-9]+\.[0-9]+\.[0-9]+)(:[0-9]+)?"; | ||
| 10 | replacement = "surtr"; | ||
| 11 | } | ||
| 12 | ]; | ||
| 13 | in { | ||
| 14 | config = { | ||
| 15 | services.prometheus = { | ||
| 16 | enable = true; | ||
| 17 | |||
| 18 | exporters = { | ||
| 19 | node = { | ||
| 20 | enable = true; | ||
| 21 | enabledCollectors = []; | ||
| 22 | }; | ||
| 23 | }; | ||
| 24 | |||
| 25 | globalConfig = { | ||
| 26 | evaluation_interval = "1s"; | ||
| 27 | |||
| 28 | remote_write = { | ||
| 29 | url = "https://prometheus.vidhar.yggdrasil/api/v1/write"; | ||
| 30 | name = "vidhar"; | ||
| 31 | tls_config = { | ||
| 32 | ca_file = ../../vidhar/prometheus/ca/ca.crt; | ||
| 33 | cert_file = ./tls.crt; | ||
| 34 | key_file = "/run/credentials/prometheus.service/tls.key"; | ||
| 35 | }; | ||
| 36 | }; | ||
| 37 | }; | ||
| 38 | |||
| 39 | scrapeConfigs = [ | ||
| 40 | { job_name = "prometheus"; | ||
| 41 | static_configs = [ | ||
| 42 | { targets = ["localhost:${toString config.services.prometheus.port}"]; } | ||
| 43 | ]; | ||
| 44 | relabel_configs = relabelHosts; | ||
| 45 | scrape_interval = "1s"; | ||
| 46 | } | ||
| 47 | { job_name = "node"; | ||
| 48 | static_configs = [ | ||
| 49 | { targets = ["localhost:${toString config.services.prometheus.exporters.node.port}"]; } | ||
| 50 | ]; | ||
| 51 | relabel_configs = relabelHosts; | ||
| 52 | scrape_interval = "1s"; | ||
| 53 | } | ||
| 54 | ]; | ||
| 55 | |||
| 56 | rules = [ | ||
| 57 | (generators.toYAML {} { | ||
| 58 | groups = [ | ||
| 59 | ]; | ||
| 60 | }) | ||
| 61 | ]; | ||
| 62 | }; | ||
| 63 | |||
| 64 | sops.secrets."prometheus.key" = { | ||
| 65 | format = "binary"; | ||
| 66 | sopsFile = ./tls.key; | ||
| 67 | }; | ||
| 68 | |||
| 69 | systemd.services.prometheus.serviceConfig.LoadCredential = [ | ||
| 70 | "tls.key:${config.sops.secrets."prometheus.key".path}" | ||
| 71 | ]; | ||
| 72 | }; | ||
| 73 | } | ||
diff --git a/hosts/surtr/prometheus/tls.crt b/hosts/surtr/prometheus/tls.crt new file mode 100644 index 00000000..ba958f40 --- /dev/null +++ b/hosts/surtr/prometheus/tls.crt | |||
| @@ -0,0 +1,10 @@ | |||
| 1 | -----BEGIN CERTIFICATE----- | ||
| 2 | MIIBXzCCARGgAwIBAgIBATAFBgMrZXAwHzEdMBsGA1UEAwwUcHJvbWV0aGV1cy55 | ||
| 3 | Z2dkcmFzaWwwIBcNMjIwNDA4MjAwMzU1WhgPMjA5MDA0MjYyMDAzNTVaMBoxGDAW | ||
| 4 | BgNVBAMMD3N1cnRyLnlnZ2RyYXNpbDAqMAUGAytlcAMhAAJd8I32X/z9J0cO2Oz+ | ||
| 5 | 4KAoIJq0igdMdbLBA+8WO+vgo3UwczAMBgNVHRMBAf8EAjAAMEQGA1UdEQQ9MDuC | ||
| 6 | GnByb21ldGhldXMuc3VydHIueWdnZHJhc2lsgh1wcm9tZXRoZXVzLnN1cnRyLnln | ||
| 7 | Z2RyYXNpbC5saTAdBgNVHQ4EFgQUN52tPcv5FFppzeJx2AiXk6UgPDgwBQYDK2Vw | ||
| 8 | A0EAPN9zhaeBB2C1TursdARH0jVBz9g0dRhP7sO5ZG0K+xp24paLXiTF1rYub24p | ||
| 9 | /yZw71p7M0BAE+hJqYBzYo5YBQ== | ||
| 10 | -----END CERTIFICATE----- | ||
diff --git a/hosts/surtr/prometheus/tls.key b/hosts/surtr/prometheus/tls.key new file mode 100644 index 00000000..95e28db2 --- /dev/null +++ b/hosts/surtr/prometheus/tls.key | |||
| @@ -0,0 +1,26 @@ | |||
| 1 | { | ||
| 2 | "data": "ENC[AES256_GCM,data:YBbLT5kFi1KKQ4xOvyiJGkwQG/xoxz55/giVg2iY6+0nV+jEp3mF4oFjc14gFg3mIN9x6bLdFVY3DUHT1PrQdjrqIZtX8AVCA8BUIQj6JDY6YMi3/kK6mR9up9o/pxJfu8mQVjWjSx78Ko9aNat8/FltJnq69cA=,iv:PfslzrP5AbTNHpXfh4bz3q6CD9anQyCpmqtZ8ZTEG3k=,tag:eJLb0LIoNwDD1JQ6kUmACA==,type:str]", | ||
| 3 | "sops": { | ||
| 4 | "kms": null, | ||
| 5 | "gcp_kms": null, | ||
| 6 | "azure_kv": null, | ||
| 7 | "hc_vault": null, | ||
| 8 | "age": null, | ||
| 9 | "lastmodified": "2022-04-08T20:09:16Z", | ||
| 10 | "mac": "ENC[AES256_GCM,data:UW3ngxCjYl2kmOinRNmwNliBg2Xm/5rCrLp39bo7PXksZcuijV800IKuY91PWjkgaIbjD2jlU0ycJNDw3MzxfVim6gz91kUXQgQV+me8AEXAiO6Sf2j08jEtTh1SCr4qqdw0FE5aULDvGRtTgR+hhNk0xbbeG9fPhU95eeLW8vg=,iv:wG54336E4PouNgXhZbW4/onqbecsRrdYzTXSXDft/VI=,tag:BASCu9YNPMPfbScepLDiRQ==,type:str]", | ||
| 11 | "pgp": [ | ||
| 12 | { | ||
| 13 | "created_at": "2022-04-08T20:09:16Z", | ||
| 14 | "enc": "-----BEGIN PGP MESSAGE-----\n\nhF4DyFKFNkTVG5oSAQdAfzL8SSjlYxe8e5yOipQClJffUgxFnlew+N6VK4UhRGYw\naHaDmOmusuTRoBOX4V4PpRg3gLFRoPPy+q9L4Z+gtX97JK+9UgN1mxYPkB9X5M8K\n0l4BQ9caVjtlmMuKp3EROUYrSjau6Ulkzd43P+BwwQ6jv8T52EtKO8WLVnQEheIV\njOMH4DWaxKYbad7lXphix1oFhVvQQVGEzawceWolKDt/T+QS4spJBFoL7V1ml105\n=Cdh0\n-----END PGP MESSAGE-----\n", | ||
| 15 | "fp": "7ED22F4AA7BB55728B643DC5471B7D88E4EF66F8" | ||
| 16 | }, | ||
| 17 | { | ||
| 18 | "created_at": "2022-04-08T20:09:16Z", | ||
| 19 | "enc": "-----BEGIN PGP MESSAGE-----\n\nhF4DXxoViZlp6dISAQdACGP5pn9MiRCa7CJYqosY9Aw4TJx+/9tOsdO5YZn1ZSIw\n/xOMfKjHvT5PlMT9gnk9187MhjR9G/2YcW5ggfyEypo8ei65RkJYzTG2m5Pdneg3\n0l4BzMEQtYAbmZBp9XSkqjacCTpc2y6YV55qcuFudtRfsFFi28JSb5NxZ61AKy0g\nSk/e+IHQvTGahD2akrHBNIPncUOo4GHHzEjADvdDuJNpMkYUgnhEUod2JPYBjFmL\n=JN/O\n-----END PGP MESSAGE-----\n", | ||
| 20 | "fp": "30D3453B8CD02FE2A3E7C78C0FB536FB87AE8F51" | ||
| 21 | } | ||
| 22 | ], | ||
| 23 | "unencrypted_suffix": "_unencrypted", | ||
| 24 | "version": "3.7.2" | ||
| 25 | } | ||
| 26 | } \ No newline at end of file | ||
