Add metrics host with Grafana and Prometheus

This commit is contained in:
fi 2024-11-20 05:46:40 +01:00
parent a63d5661b6
commit 001a710903
6 changed files with 36 additions and 10 deletions

View file

@ -1,11 +1,11 @@
{ ... }:
{ config, ... }:
{
services.grafana = {
enable = true;
settings = {
server = {
domain = "grafana2.grzb.de";
root_url = "https://grafana2.grzb.de";
domain = "grafana.grzb.de";
root_url = "https://${config.services.grafana.settings.server.domain}";
};
security = {
cookie_secure = true;
@ -24,5 +24,13 @@
startTLS_policy = "NoStartTLS";
};
};
provision.datasources.settings.datasources = [
{
name = "Prometheus";
type = "prometheus";
url = "http://localhost:${builtins.toString config.services.prometheus.port}";
isDefault = true;
}
];
};
}

View file

@ -3,7 +3,7 @@
services.nginx = {
enable = true;
virtualHosts = {
"grafana2.grzb.de" = {
${config.services.grafana.settings.server.domain} = {
forceSSL = true;
enableACME = true;
listen = [
@ -19,6 +19,7 @@
];
locations."/" = {
proxyPass = "http://${config.services.grafana.settings.server.http_addr}:${builtins.toString config.services.grafana.settings.server.http_port}";
proxyWebsockets = true;
};
};
};

View file

@ -1,6 +1,19 @@
{ ... }:
{ hosts, ... }:
{
services.prometheus = {
enable = true;
scrapeConfigs = [
{
job_name = "node";
static_configs = builtins.map (name: {
targets = [
"${name}.${hosts.${name}.site}.grzb.de:9100"
];
labels = {
host = "${name}.${hosts.${name}.site}.grzb.de";
};
}) (builtins.attrNames hosts);
}
];
};
}

View file

@ -18,7 +18,7 @@
proxyPass = "http://netbox.vs.grzb.de:80";
};
};
services.nginx.virtualHosts."grafana2.grzb.de" = {
services.nginx.virtualHosts."grafana.grzb.de" = {
listen = [{
addr = "0.0.0.0";
port = 80;