add promtail log shipping
This commit is contained in:
parent
4903ab6fd9
commit
e69fdc44d9
7 changed files with 101 additions and 16 deletions
|
@ -14,6 +14,7 @@ with types;
|
||||||
./netdata.nix
|
./netdata.nix
|
||||||
./opentelemetry.nix
|
./opentelemetry.nix
|
||||||
./prometheus.nix
|
./prometheus.nix
|
||||||
|
./promtail.nix
|
||||||
./telegraf.nix
|
./telegraf.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -62,9 +62,9 @@ in
|
||||||
pipelines.metrics = {
|
pipelines.metrics = {
|
||||||
exporters = [ "otlp" ];
|
exporters = [ "otlp" ];
|
||||||
};
|
};
|
||||||
#pipelines.logs = {
|
pipelines.logs = {
|
||||||
# exporters = [ "otlp" ];
|
exporters = [ "otlp" ];
|
||||||
#};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
@ -77,9 +77,9 @@ in
|
||||||
pipelines.metrics = {
|
pipelines.metrics = {
|
||||||
receivers = [ "otlp" ];
|
receivers = [ "otlp" ];
|
||||||
};
|
};
|
||||||
#pipelines.logs = {
|
pipelines.logs = {
|
||||||
# exporters = [ "otlp" ];
|
receivers = [ "otlp" ];
|
||||||
#};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
67
nixos/components/monitor/promtail.nix
Normal file
67
nixos/components/monitor/promtail.nix
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
{ config, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
with types;
|
||||||
|
let
|
||||||
|
cfg = config.components.monitor.promtail;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.components.monitor.promtail = {
|
||||||
|
enable = mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = config.components.monitor.enable;
|
||||||
|
};
|
||||||
|
port = mkOption {
|
||||||
|
type = int;
|
||||||
|
default = 3500;
|
||||||
|
description = "port to provide promtail export";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkMerge [
|
||||||
|
|
||||||
|
(mkIf config.components.monitor.promtail.enable {
|
||||||
|
|
||||||
|
services.opentelemetry-collector.settings = {
|
||||||
|
receivers.loki = {
|
||||||
|
protocols.http.endpoint = "127.0.0.1:${toString cfg.port}";
|
||||||
|
use_incoming_timestamp = true;
|
||||||
|
};
|
||||||
|
service.pipelines.logs.receivers = [ "loki" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.promtail = {
|
||||||
|
enable = true;
|
||||||
|
configuration = {
|
||||||
|
server = {
|
||||||
|
http_listen_port = 28183;
|
||||||
|
grpc_listen_port = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
positions.filename = "/tmp/positions.yaml";
|
||||||
|
clients = [
|
||||||
|
{ url = "http://127.0.0.1:${toString cfg.port}/loki/api/v1/push"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
scrape_configs = [
|
||||||
|
{
|
||||||
|
job_name = "journal";
|
||||||
|
journal = {
|
||||||
|
max_age = "12h";
|
||||||
|
};
|
||||||
|
relabel_configs = [
|
||||||
|
{
|
||||||
|
source_labels = [ "__journal__systemd_unit" ];
|
||||||
|
target_label = "unit";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
source_labels = [ "__journal__transport" ];
|
||||||
|
target_label = "transport";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,7 +1,8 @@
|
||||||
{ ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
|
# port 5000 already in use.
|
||||||
services.nix-serve = {
|
services.nix-serve = {
|
||||||
enable = true;
|
enable = false;
|
||||||
|
|
||||||
# needed if i want to trust my own build packages and dirivations
|
# needed if i want to trust my own build packages and dirivations
|
||||||
# nix-store --generate-binary-cache-key key-name secret-key-file public-key-file
|
# nix-store --generate-binary-cache-key key-name secret-key-file public-key-file
|
||||||
|
|
|
@ -35,14 +35,14 @@
|
||||||
./media-syncthing.nix
|
./media-syncthing.nix
|
||||||
|
|
||||||
# logging
|
# logging
|
||||||
./loki.nix
|
|
||||||
./loki-promtail.nix
|
|
||||||
./grafana.nix
|
./grafana.nix
|
||||||
|
|
||||||
./telemetry/telegraf-smart.nix
|
./telemetry/telegraf-smart.nix
|
||||||
./telemetry/telegraf.nix
|
./telemetry/telegraf.nix
|
||||||
#./telemetry/opentelemetry-hass.nix
|
#./telemetry/opentelemetry-hass.nix
|
||||||
./telemetry/prometheus.nix
|
./telemetry/prometheus.nix
|
||||||
|
./telemetry/loki.nix
|
||||||
|
#./telemetry/promtail.nix
|
||||||
|
|
||||||
#./home-display.nix
|
#./home-display.nix
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,14 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
|
services.opentelemetry-collector.settings = {
|
||||||
|
exporters.loki = {
|
||||||
|
endpoint = "http://127.0.0.1:3100/loki/api/v1/push";
|
||||||
|
};
|
||||||
|
service.pipelines.logs.exporters = [ "loki" ];
|
||||||
|
};
|
||||||
|
|
||||||
services.loki = {
|
services.loki = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configuration = {
|
configuration = {
|
|
@ -1,5 +1,14 @@
|
||||||
{ config, ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
|
services.opentelemetry-collector.settings = {
|
||||||
|
receivers.loki = {
|
||||||
|
protocols.http.endpoint = "127.0.0.1:3500";
|
||||||
|
use_incoming_timestamp = true;
|
||||||
|
};
|
||||||
|
service.pipelines.logs.receivers = [ "loki" ];
|
||||||
|
};
|
||||||
|
|
||||||
services.promtail = {
|
services.promtail = {
|
||||||
enable = true;
|
enable = true;
|
||||||
configuration = {
|
configuration = {
|
||||||
|
@ -7,9 +16,10 @@
|
||||||
http_listen_port = 28183;
|
http_listen_port = 28183;
|
||||||
grpc_listen_port = 0;
|
grpc_listen_port = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
positions.filename = "/tmp/positions.yaml";
|
positions.filename = "/tmp/positions.yaml";
|
||||||
clients = [
|
clients = [
|
||||||
{ url = "http://127.0.0.1:3100/loki/api/v1/push"; }
|
{ url = "http://127.0.0.1:3500/loki/api/v1/push"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
scrape_configs = [
|
scrape_configs = [
|
||||||
|
@ -17,10 +27,10 @@
|
||||||
job_name = "journal";
|
job_name = "journal";
|
||||||
journal = {
|
journal = {
|
||||||
max_age = "12h";
|
max_age = "12h";
|
||||||
labels = {
|
#labels = {
|
||||||
job = "systemd-journal";
|
# job = "systemd-journal";
|
||||||
host = config.networking.hostName;
|
# host = config.networking.hostName;
|
||||||
};
|
#};
|
||||||
};
|
};
|
||||||
relabel_configs = [
|
relabel_configs = [
|
||||||
{
|
{
|
||||||
|
@ -34,8 +44,6 @@
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
Loading…
Reference in a new issue