2023-07-05 03:36:38 +02:00
|
|
|
{ config, pkgs, ... }: {
|
2023-06-30 04:39:01 +02:00
|
|
|
# Promtail Logging
|
2023-07-05 03:05:02 +02:00
|
|
|
|
2023-07-05 03:37:48 +02:00
|
|
|
sops.secrets.promtail-pass = {
|
2023-07-05 03:05:02 +02:00
|
|
|
owner = "promtail";
|
2023-07-05 06:34:30 +02:00
|
|
|
sopsFile = ../secrets/secrets.yaml;
|
2023-07-05 03:05:02 +02:00
|
|
|
};
|
2023-07-04 12:51:41 +02:00
|
|
|
|
2023-07-05 06:20:49 +02:00
|
|
|
# Restart the unit if the secret changes
|
|
|
|
sops.secrets."secrets.yaml" = {
|
|
|
|
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-07-05 03:36:38 +02:00
|
|
|
password_file = config.sops.secrets.promtail-pass.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";
|
|
|
|
host = "nixos-p1";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
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
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|