2023-07-05 06:39:53 +02:00
|
|
|
{ config, pkgs, hostname, ... }: {
|
2023-06-30 04:39:01 +02:00
|
|
|
# Promtail Logging
|
2023-07-05 03:05:02 +02:00
|
|
|
|
2023-07-12 16:41:12 +02:00
|
|
|
# Set up the secret for the password:
|
2023-09-19 06:49:23 +02:00
|
|
|
sops.secrets."services/promtail" = {
|
2023-07-05 03:05:02 +02:00
|
|
|
owner = "promtail";
|
2023-08-23 10:21:11 +02:00
|
|
|
sopsFile = ../../../secrets/secrets.yaml;
|
2023-07-05 06:20:49 +02:00
|
|
|
restartUnits = [ "promtail.service" ];
|
|
|
|
};
|
|
|
|
|
2023-06-30 04:39:01 +02:00
|
|
|
# Install the package
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
promtail
|
|
|
|
];
|
|
|
|
|
|
|
|
# Configure the package:
|
|
|
|
# https://mynixos.com/nixpkgs/option/services.promtail.configuration
|
|
|
|
services.promtail = {
|
|
|
|
enable = true;
|
|
|
|
configuration = {
|
2023-06-30 10:59:07 +02:00
|
|
|
server = {
|
|
|
|
http_listen_port = 3031;
|
|
|
|
grpc_listen_port = 0;
|
|
|
|
};
|
|
|
|
positions = {
|
|
|
|
filename = "/tmp/positions.yaml";
|
|
|
|
};
|
|
|
|
clients = [{
|
2023-07-05 03:29:56 +02:00
|
|
|
url = "https://loki.sysctl.io/loki/api/v1/push";
|
2023-06-30 10:59:07 +02:00
|
|
|
basic_auth = {
|
2023-07-05 03:05:02 +02:00
|
|
|
username = "loki-sa";
|
2023-09-19 06:49:23 +02:00
|
|
|
password_file = config.sops.secrets."services/promtail".path;
|
2023-06-30 11:00:20 +02:00
|
|
|
};
|
|
|
|
}];
|
2023-06-30 10:59:07 +02:00
|
|
|
scrape_configs = [{
|
|
|
|
job_name = "journal";
|
|
|
|
journal = {
|
|
|
|
max_age = "12h";
|
|
|
|
labels = {
|
|
|
|
job = "systemd-journal";
|
2023-07-05 06:39:53 +02:00
|
|
|
host = "${hostname}";
|
2023-06-30 10:59:07 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
relabel_configs = [{
|
|
|
|
source_labels = [ "__journal__systemd_unit" ];
|
|
|
|
target_label = "unit";
|
2023-06-30 11:00:20 +02:00
|
|
|
}];
|
|
|
|
}];
|
2023-06-30 04:39:01 +02:00
|
|
|
};
|
|
|
|
};
|
2024-08-24 14:21:33 +02:00
|
|
|
}
|