grafana init
This commit is contained in:
@@ -48,12 +48,25 @@ in
|
||||
asDefault = true;
|
||||
http.tls.certResolver = "letsencrypt";
|
||||
};
|
||||
|
||||
metrics = {
|
||||
address = ":8082"; # Port for metrics
|
||||
};
|
||||
};
|
||||
|
||||
log = {
|
||||
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 = {
|
||||
email = "jalle008@proton.me";
|
||||
storage = "${config.services.traefik.dataDir}/acme.json";
|
||||
|
||||
@@ -19,6 +19,7 @@ in
|
||||
./filesystems.nix
|
||||
./boot.nix
|
||||
./apps.nix
|
||||
./grafana.nix
|
||||
./networking.nix
|
||||
./ups.nix
|
||||
./samba.nix
|
||||
@@ -34,7 +35,7 @@ in
|
||||
|
||||
# Cockpit
|
||||
services.cockpit = {
|
||||
enable = true;
|
||||
enable = false;
|
||||
port = 9090;
|
||||
settings = {
|
||||
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,65 +200,12 @@ 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 = {
|
||||
enable = false;
|
||||
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 = {
|
||||
protonmail-bridge = {
|
||||
description = "Protonmail Bridge";
|
||||
|
||||
Reference in New Issue
Block a user