nix/nixos/common/services/promtail.nix

51 lines
1.2 KiB
Nix
Raw Normal View History

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-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 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-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";
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
};
};
}