| 1 | { |
| 2 | config, |
| 3 | pkgs, |
| 4 | ... |
| 5 | }: |
| 6 | |
| 7 | let |
| 8 | prometheus-nixos-exporter = pkgs.callPackage ./nixos-exporter { }; |
| 9 | in |
| 10 | { |
| 11 | services.prometheus.exporters.node = { |
| 12 | enable = true; |
| 13 | enabledCollectors = [ "systemd" ]; |
| 14 | extraFlags = [ "--collector.textfile.directory=/var/lib/prometheus-node-exporter-text-files" ]; |
| 15 | openFirewall = true; |
| 16 | firewallRules = '' |
| 17 | ip6 saddr $prometheus_inet6 tcp dport ${toString config.services.prometheus.exporters.node.port} accept |
| 18 | ip saddr $prometheus_inet4 tcp dport ${toString config.services.prometheus.exporters.node.port} accept |
| 19 | ''; |
| 20 | }; |
| 21 | |
| 22 | system.activationScripts.node-exporter-system-version = '' |
| 23 | mkdir -pm 0775 /var/lib/prometheus-node-exporter-text-files |
| 24 | |
| 25 | cd /var/lib/prometheus-node-exporter-text-files |
| 26 | ${./system-version-exporter.sh} | ${pkgs.moreutils}/bin/sponge system-version.prom |
| 27 | ''; |
| 28 | |
| 29 | systemd.services.prometheus-nixos-exporter = { |
| 30 | wantedBy = [ "multi-user.target" ]; |
| 31 | after = [ "network.target" ]; |
| 32 | path = [ |
| 33 | pkgs.nix |
| 34 | pkgs.bash |
| 35 | ]; |
| 36 | serviceConfig = { |
| 37 | Restart = "always"; |
| 38 | RestartSec = "60s"; |
| 39 | ExecStart = "${prometheus-nixos-exporter}/bin/prometheus-nixos-exporter"; |
| 40 | }; |
| 41 | }; |
| 42 | |
| 43 | networking.firewall.extraInputRules = '' |
| 44 | # prometheus-nixos-exporter |
| 45 | ip6 saddr $prometheus_inet6 tcp dport 9300 accept |
| 46 | ip saddr $prometheus_inet4 tcp dport 9300 accept |
| 47 | ''; |
| 48 | |
| 49 | services.prometheus.exporters.zfs = { |
| 50 | enable = true; |
| 51 | listenAddress = "[::]"; |
| 52 | openFirewall = true; |
| 53 | firewallRules = '' |
| 54 | ip6 saddr $prometheus_inet6 tcp dport ${toString config.services.prometheus.exporters.zfs.port} accept |
| 55 | ip saddr $prometheus_inet4 tcp dport ${toString config.services.prometheus.exporters.zfs.port} accept |
| 56 | ''; |
| 57 | }; |
| 58 | } |