47 lines
1.1 KiB
Nix
47 lines
1.1 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
{
|
|
# Prometheus Node Exporter for hardware metrics
|
|
services.prometheus.exporters = {
|
|
node = {
|
|
enable = true;
|
|
enabledCollectors = [ "systemd" ];
|
|
port = 9100;
|
|
};
|
|
};
|
|
|
|
# Promtail to ship logs to Loki
|
|
services.promtail = {
|
|
enable = true;
|
|
configuration = {
|
|
server = {
|
|
http_listen_port = 28183;
|
|
grpc_listen_port = 0;
|
|
};
|
|
positions = {
|
|
filename = "/tmp/positions.yaml";
|
|
};
|
|
clients = [{
|
|
# Use the internal DNS name for the Loki ingress
|
|
url = "http://loki.lab.depeuter.dev/loki/api/v1/push";
|
|
}];
|
|
scrape_configs = [{
|
|
job_name = "journal";
|
|
journal = {
|
|
max_age = "12h";
|
|
labels = {
|
|
job = "systemd-journal";
|
|
host = config.networking.hostName;
|
|
};
|
|
};
|
|
relabel_configs = [{
|
|
source_labels = [ "__journal__systemd_unit" ];
|
|
target_label = "unit";
|
|
}];
|
|
}];
|
|
};
|
|
};
|
|
|
|
# Open firewall ports for node-exporter so Prometheus can scrape it
|
|
networking.firewall.allowedTCPPorts = [ 9100 ];
|
|
}
|