grafana init
This commit is contained in:
30
flake.lock
generated
30
flake.lock
generated
@@ -237,11 +237,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737478403,
|
"lastModified": 1737299337,
|
||||||
"narHash": "sha256-e6PJI4Bd+QdpukHyd5F/fQY8fRUiNfCwvCRU8WXMSk8=",
|
"narHash": "sha256-0NBrY2A7buujKmeCbieopOMSbLxTu8TFcTLqAbTnQDw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "96dee79b178d295b716052feca3ee46abc085abe",
|
"rev": "f8ef4541bb8a54a8b52f19b52912119e689529b3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -363,11 +363,11 @@
|
|||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737423230,
|
"lastModified": 1737162735,
|
||||||
"narHash": "sha256-WEOiNmkcmlaeXy2HGW1PYxYmCPiHdsI7a7SpjhBYxRg=",
|
"narHash": "sha256-5T+HkouTMGaRm0rh3kgD4Z1O7ONKfgjyoPQH5rSyreU=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "46d0fa4ded0a7532f19870f9bbedaf62269fe3f7",
|
"rev": "87131f51f8256952d1a306b5521cedc2dc61aa08",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -420,11 +420,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737359802,
|
"lastModified": 1736978406,
|
||||||
"narHash": "sha256-utplyRM6pqnN940gfaLFBb9oUCSzkan86IvmkhsVlN8=",
|
"narHash": "sha256-oMr3PVIQ8XPDI8/x6BHxsWEPBRU98Pam6KGVwUh8MPk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "61c79181e77ef774ab0468b28a24bc2647d498d6",
|
"rev": "b678606690027913f3434dea3864e712b862dde5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -480,11 +480,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737299813,
|
"lastModified": 1737165118,
|
||||||
"narHash": "sha256-Qw2PwmkXDK8sPQ5YQ/y/icbQ+TYgbxfjhgnkNJyT1X8=",
|
"narHash": "sha256-s40Kk/OulP3J/1JvC3VT16U4r/Xw6Qdi7SRw3LYkPWs=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "107d5ef05c0b1119749e381451389eded30fb0d5",
|
"rev": "6a3ae7a5a12fb8cac2d59d7df7cbd95f9b2f0566",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -664,11 +664,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1737411508,
|
"lastModified": 1737107480,
|
||||||
"narHash": "sha256-j9IdflJwRtqo9WpM0OfAZml47eBblUHGNQTe62OUqTw=",
|
"narHash": "sha256-GXUE9+FgxoZU8v0p6ilBJ8NH7k8nKmZjp/7dmMrCv3o=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "015d461c16678fc02a2f405eb453abb509d4e1d4",
|
"rev": "4c4fb93f18b9072c6fa1986221f9a3d7bf1fe4b6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
# Authentik
|
# Authentik
|
||||||
authentik-nix = {
|
authentik-nix = {
|
||||||
url = "github:nix-community/authentik-nix";
|
url = "github:nix-community/authentik-nix";
|
||||||
|
# url = "github:fpletz/authentik-nix/24.11"; # for some reason this is broken in stable and unstable
|
||||||
inputs.nixpkgs.follows = "nixpkgs-stable";
|
inputs.nixpkgs.follows = "nixpkgs-stable";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -48,12 +48,25 @@ in
|
|||||||
asDefault = true;
|
asDefault = true;
|
||||||
http.tls.certResolver = "letsencrypt";
|
http.tls.certResolver = "letsencrypt";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
metrics = {
|
||||||
|
address = ":8082"; # Port for metrics
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
log = {
|
log = {
|
||||||
level = "INFO";
|
level = "INFO";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
metrics = {
|
||||||
|
prometheus = {
|
||||||
|
entryPoint = "metrics";
|
||||||
|
addEntryPointsLabels = true;
|
||||||
|
addServicesLabels = true;
|
||||||
|
buckets = [0.1 0.3 1.2 5.0]; # Response time buckets
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
certificatesResolvers.letsencrypt.acme = {
|
certificatesResolvers.letsencrypt.acme = {
|
||||||
email = "jalle008@proton.me";
|
email = "jalle008@proton.me";
|
||||||
storage = "${config.services.traefik.dataDir}/acme.json";
|
storage = "${config.services.traefik.dataDir}/acme.json";
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ in
|
|||||||
./filesystems.nix
|
./filesystems.nix
|
||||||
./boot.nix
|
./boot.nix
|
||||||
./apps.nix
|
./apps.nix
|
||||||
|
./grafana.nix
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./ups.nix
|
./ups.nix
|
||||||
./samba.nix
|
./samba.nix
|
||||||
@@ -34,7 +35,7 @@ in
|
|||||||
|
|
||||||
# Cockpit
|
# Cockpit
|
||||||
services.cockpit = {
|
services.cockpit = {
|
||||||
enable = true;
|
enable = false;
|
||||||
port = 9090;
|
port = 9090;
|
||||||
settings = {
|
settings = {
|
||||||
WebService = {
|
WebService = {
|
||||||
|
|||||||
62
hosts/nas/grafana.nix
Normal file
62
hosts/nas/grafana.nix
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services = {
|
||||||
|
prometheus = {
|
||||||
|
enable = true;
|
||||||
|
exporters = {
|
||||||
|
node = {
|
||||||
|
enable = true;
|
||||||
|
enabledCollectors = [
|
||||||
|
"filesystem"
|
||||||
|
"diskstats"
|
||||||
|
"meminfo"
|
||||||
|
"cpu"
|
||||||
|
"systemd" # Ensures systemd collector is enabled
|
||||||
|
"processes"
|
||||||
|
];
|
||||||
|
extraFlags = [
|
||||||
|
"--collector.filesystem.mount-points-exclude=^/(dev|proc|sys|run)($|/)"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
scrapeConfigs = [
|
||||||
|
{
|
||||||
|
job_name = "node";
|
||||||
|
static_configs = [{
|
||||||
|
targets = [ "localhost:${toString config.services.prometheus.exporters.node.port}" ];
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
job_name = "traefik";
|
||||||
|
static_configs = [{
|
||||||
|
targets = [ "localhost:8082" ];
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
grafana = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
http_port = 9999;
|
||||||
|
http_addr = "0.0.0.0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
dataDir = "/media/nas/ssd/nix-app-data/grafana";
|
||||||
|
|
||||||
|
provision = {
|
||||||
|
enable = true;
|
||||||
|
datasources.settings.datasources = [{
|
||||||
|
name = "Prometheus";
|
||||||
|
type = "prometheus";
|
||||||
|
access = "proxy";
|
||||||
|
url = "http://localhost:${toString config.services.prometheus.port}";
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# Open firewall ports for Grafana
|
||||||
|
networking.firewall.allowedTCPPorts = [ 9999 ];
|
||||||
|
}
|
||||||
@@ -200,63 +200,10 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
grafana = {
|
|
||||||
enable = false;
|
|
||||||
settings.server = {
|
|
||||||
http_port = 2342;
|
|
||||||
domain = "10.0.1.18";
|
|
||||||
serve_from_sub_path = true;
|
|
||||||
http_addr = "";
|
|
||||||
};
|
|
||||||
dataDir = "/media/nas/ssd/nix-app-data/grafana";
|
|
||||||
};
|
|
||||||
|
|
||||||
nix-serve = {
|
nix-serve = {
|
||||||
enable = false;
|
enable = false;
|
||||||
secretKeyFile = "/var/cache-priv-key.pem";
|
secretKeyFile = "/var/cache-priv-key.pem";
|
||||||
};
|
};
|
||||||
|
|
||||||
prometheus = {
|
|
||||||
enable = false;
|
|
||||||
port = 8000;
|
|
||||||
exporters = {
|
|
||||||
node = {
|
|
||||||
enable = true;
|
|
||||||
enabledCollectors = [
|
|
||||||
"diskstats"
|
|
||||||
"systemd"
|
|
||||||
];
|
|
||||||
port = 8001;
|
|
||||||
};
|
|
||||||
smartctl = {
|
|
||||||
enable = true;
|
|
||||||
group = "disk";
|
|
||||||
devices = [
|
|
||||||
"/dev/mapper/ssd1"
|
|
||||||
"/dev/mapper/ssd2"
|
|
||||||
"/dev/mapper/hdd1"
|
|
||||||
"/dev/mapper/hdd2"
|
|
||||||
"/dev/mapper/hdd3"
|
|
||||||
"/dev/mapper/hdd4"
|
|
||||||
"/dev/mapper/hdd5"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
scrapeConfigs = [
|
|
||||||
{
|
|
||||||
job_name = "jallen-nas";
|
|
||||||
static_configs = [
|
|
||||||
{
|
|
||||||
targets = [
|
|
||||||
"127.0.0.1:${toString config.services.prometheus.exporters.node.port}"
|
|
||||||
"127.0.0.1:${toString config.services.prometheus.exporters.smartctl.port}"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services = {
|
systemd.user.services = {
|
||||||
|
|||||||
Reference in New Issue
Block a user