88 lines
2.3 KiB
Nix
88 lines
2.3 KiB
Nix
{ config, ... }:
|
|
|
|
let
|
|
nodeExporterPort = 40000;
|
|
nginxExporterPort = 40001;
|
|
postfixExporterPort = 40002;
|
|
|
|
basic_auth = {
|
|
username = "jan";
|
|
password_file = config.age.secrets.prometheus-basicauth-password.path;
|
|
};
|
|
in
|
|
{
|
|
age.secrets.prometheus-basicauth-password.file = ./prometheus-basicauth-password.age;
|
|
|
|
services.prometheus.exporters.node = {
|
|
enable = true;
|
|
port = nodeExporterPort;
|
|
# https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/prometheus/exporters.nix
|
|
enabledCollectors = [ "systemd" ];
|
|
# /nix/store/zgsw0yx18v10xa58psanfabmg95nl2bb-node_exporter-1.8.1/bin/node_exporter --help
|
|
extraFlags = [
|
|
"--collector.ethtool"
|
|
"--collector.softirqs"
|
|
"--collector.tcpstat"
|
|
"--collector.wifi"
|
|
];
|
|
};
|
|
|
|
# https://wiki.nixos.org/wiki/Prometheus
|
|
# https://nixos.org/manual/nixos/stable/#module-services-prometheus-exporters-configuration
|
|
# https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modules/services/monitoring/prometheus/default.nix
|
|
services.prometheus = {
|
|
enable = true;
|
|
listenAddress = "127.0.0.1";
|
|
port = 33010;
|
|
globalConfig.scrape_interval = "15s"; # "1m"
|
|
scrapeConfigs = [
|
|
{
|
|
job_name = "node_dev";
|
|
static_configs = [
|
|
{
|
|
targets = [
|
|
"tatos:${toString nodeExporterPort}"
|
|
"istal:${toString nodeExporterPort}"
|
|
];
|
|
}
|
|
];
|
|
}
|
|
{
|
|
job_name = "node_production";
|
|
inherit basic_auth;
|
|
static_configs = [
|
|
{
|
|
targets = [
|
|
"canigou:${toString nodeExporterPort}"
|
|
"magenta:${toString nodeExporterPort}"
|
|
"sm-sd1:${toString nodeExporterPort}"
|
|
];
|
|
}
|
|
];
|
|
}
|
|
{
|
|
job_name = "nginx_production";
|
|
inherit basic_auth;
|
|
static_configs = [
|
|
{
|
|
targets = [
|
|
"canigou:${toString nginxExporterPort}"
|
|
"magenta:${toString nginxExporterPort}"
|
|
];
|
|
}
|
|
];
|
|
}
|
|
{
|
|
job_name = "sm_smtp";
|
|
# inherit basic_auth;
|
|
static_configs = [
|
|
{
|
|
targets = [
|
|
"sm-sd1:${toString postfixExporterPort}"
|
|
];
|
|
}
|
|
];
|
|
}
|
|
];
|
|
};
|
|
}
|