ready for runners
This commit is contained in:
parent
fc9971ddc9
commit
7dd5043b5d
49 changed files with 2569 additions and 1085 deletions
|
|
@ -1,18 +1,46 @@
|
|||
{ config, pkgs, modulesPath, lib, ... }:
|
||||
|
||||
let
|
||||
monitor_ip = "monitor.local";
|
||||
traefik_ip = "traefik.local";
|
||||
sandbox_ip = "sandbox.local";
|
||||
forgejo_ip = "forgejo.local";
|
||||
monitor_ip = "monitor.lab";
|
||||
traefik_ip = "traefik.lab";
|
||||
sandbox_ip = "sandbox.lab";
|
||||
forgejo_ip = "forgejo.lab";
|
||||
dnsmasq_ip = "dns.lab";
|
||||
|
||||
prometheus_exporter_port = 9100;
|
||||
postgres_exporter_port = 9187;
|
||||
prometheus_port = 9090;
|
||||
alertmanager_port = 9093;
|
||||
grafana_port = 3000;
|
||||
promtail_port = 9080;
|
||||
traefik_monitor_port = 8082;
|
||||
forgejo_monitor_port = 3000;
|
||||
dnsmasq_exporter_port = 9153;
|
||||
|
||||
exporters = {
|
||||
node = [
|
||||
"${monitor_ip}:${toString prometheus_exporter_port}"
|
||||
"${traefik_ip}:${toString prometheus_exporter_port}"
|
||||
"${sandbox_ip}:${toString prometheus_exporter_port}"
|
||||
"${forgejo_ip}:${toString prometheus_exporter_port}"
|
||||
];
|
||||
promtail = [
|
||||
"${monitor_ip}:${toString promtail_port}"
|
||||
"${traefik_ip}:${toString promtail_port}"
|
||||
"${sandbox_ip}:${toString promtail_port}"
|
||||
"${forgejo_ip}:${toString promtail_port}"
|
||||
];
|
||||
grafana = [ "${monitor_ip}:${toString grafana_port}" ];
|
||||
prometheus = [ "${monitor_ip}:${toString prometheus_port}" ];
|
||||
alertmanager = [ "${monitor_ip}:${toString alertmanager_port}" ];
|
||||
traefik = [ "${traefik_ip}:${toString traefik_monitor_port}" ];
|
||||
gitea = [ "${forgejo_ip}:${toString forgejo_monitor_port}" ];
|
||||
postgres = [ "${forgejo_ip}:${toString postgres_exporter_port}" ];
|
||||
|
||||
dnsmasq = [ "${dnsmasq_ip}:${toString dnsmasq_exporter_port}" ];
|
||||
};
|
||||
|
||||
|
||||
in {
|
||||
networking.firewall.allowedTCPPorts = [ 9090 ];
|
||||
|
||||
|
|
@ -22,64 +50,27 @@ in {
|
|||
globalConfig = {
|
||||
scrape_timeout = "10s";
|
||||
scrape_interval = "30s";
|
||||
# A short evaluation_interval will check alerting rules very often.
|
||||
# It can be costly if you run Prometheus with 100+ alerts.
|
||||
evaluation_interval = "20s";
|
||||
};
|
||||
scrapeConfigs = [
|
||||
{
|
||||
job_name = "node";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [
|
||||
"${monitor_ip}:${toString prometheus_exporter_port}"
|
||||
"${traefik_ip}:${toString prometheus_exporter_port}"
|
||||
"${sandbox_ip}:${toString prometheus_exporter_port}"
|
||||
"${forgejo_ip}:${toString prometheus_exporter_port}"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "grafana";
|
||||
static_configs = [
|
||||
{ targets = [ "${monitor_ip}:${toString grafana_port}" ]; }
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "prometheus";
|
||||
static_configs = [
|
||||
{ targets = [ "${monitor_ip}:${toString prometheus_port}" ]; }
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "traefik";
|
||||
static_configs = [
|
||||
{ targets = [ "${traefik_ip}:${toString traefik_monitor_port}" ]; }
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "gitea";
|
||||
static_configs = [
|
||||
{ targets = [ "${forgejo_ip}:${toString forgejo_monitor_port}" ]; }
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "postgres";
|
||||
static_configs = [
|
||||
{ targets = [ "${forgejo_ip}:${toString postgres_exporter_port}" ]; }
|
||||
];
|
||||
}
|
||||
{
|
||||
job_name = "promtail";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [
|
||||
"${monitor_ip}:${toString promtail_port}"
|
||||
"${traefik_ip}:${toString promtail_port}"
|
||||
"${sandbox_ip}:${toString promtail_port}"
|
||||
"${forgejo_ip}:${toString promtail_port}"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
extraFlags = [
|
||||
"--web.enable-admin-api"
|
||||
];
|
||||
|
||||
scrapeConfigs = lib.mapAttrsToList (job_name: targets: {
|
||||
inherit job_name;
|
||||
static_configs = [ { inherit targets; } ];
|
||||
}) exporters;
|
||||
|
||||
# 🔔 Alerts provisioning
|
||||
ruleFiles = [
|
||||
(pkgs.writeText "prometheus-alerts.yml" (builtins.readFile ./provisioning/alerts/prometheus-alerts.yml))
|
||||
(pkgs.writeText "loki-alerts.yml" (builtins.readFile ./provisioning/alerts/loki-alerts.yml))
|
||||
(pkgs.writeText "promtail-alerts.yml" (builtins.readFile ./provisioning/alerts/promtail-alerts.yml))
|
||||
(pkgs.writeText "postgres-alerts.yml" (builtins.readFile ./provisioning/alerts/postgres-alerts.yml))
|
||||
(pkgs.writeText "traefik-alerts.yml" (builtins.readFile ./provisioning/alerts/traefik-alerts.yml))
|
||||
(pkgs.writeText "node-exporter-alerts.yml" (builtins.readFile ./provisioning/alerts/node-exporter-alerts.yml))
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue