mirror of
https://github.com/RGBCube/ncc
synced 2025-07-30 11:37:44 +00:00
Add Loki
This commit is contained in:
parent
e96561b036
commit
3aa5a5cb10
5 changed files with 109 additions and 5 deletions
101
hosts/cube/loki.nix
Normal file
101
hosts/cube/loki.nix
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
{ config, ulib, ... }: with ulib;
|
||||||
|
|
||||||
|
serverSystemConfiguration {
|
||||||
|
services.grafana.provision.datasources.settings.datasources = [{
|
||||||
|
name = "Loki";
|
||||||
|
type = "loki";
|
||||||
|
url = "http://[::]:${toString config.services.promtail.configuration.server.http_listen_port}";
|
||||||
|
}];
|
||||||
|
|
||||||
|
services.promtail = enabled {
|
||||||
|
configuration = {
|
||||||
|
server.http_listen_port = 9002;
|
||||||
|
server.grpc_listen_port = 0;
|
||||||
|
|
||||||
|
positions.filename = "/tmp/promtail-positions.yml";
|
||||||
|
|
||||||
|
clients = [{
|
||||||
|
url = "http://[::]:${toString config.services.loki.configuration.server.http_listen_port}/loki/api/v1/push";
|
||||||
|
}];
|
||||||
|
|
||||||
|
scrape_configs = [{
|
||||||
|
job_name = "journal";
|
||||||
|
|
||||||
|
journal.max_age = "1w";
|
||||||
|
journal.labels = {
|
||||||
|
job = "journal";
|
||||||
|
host = config.networking.hostName;
|
||||||
|
};
|
||||||
|
|
||||||
|
relabel_configs = [{
|
||||||
|
source_labels = [ "__journal__systemd_unit" ];
|
||||||
|
target_label = "journal";
|
||||||
|
}];
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.loki = enabled {
|
||||||
|
configuration = {
|
||||||
|
auth_enabled = false;
|
||||||
|
|
||||||
|
server.http_listen_port = 9001;
|
||||||
|
|
||||||
|
ingester = {
|
||||||
|
lifecycler.address = "::";
|
||||||
|
|
||||||
|
lifecycler.ring = {
|
||||||
|
kvstore.store = "inmemory";
|
||||||
|
replication_factor = 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
chunk_idle_period = "1h";
|
||||||
|
chunk_retain_period = "1h";
|
||||||
|
chunk_target_size = 999999;
|
||||||
|
max_chunk_age = "1h";
|
||||||
|
max_transfer_retries = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
schema_config.configs = [{
|
||||||
|
from = "2022-06-06";
|
||||||
|
schema = "v12";
|
||||||
|
|
||||||
|
store = "boltdb-shipper";
|
||||||
|
object_store = "filesystem";
|
||||||
|
|
||||||
|
index.period = "24h";
|
||||||
|
index.prefix = "index_";
|
||||||
|
}];
|
||||||
|
|
||||||
|
storage_config = {
|
||||||
|
filesystem.directory = "/var/lib/loki/chunks";
|
||||||
|
|
||||||
|
boltdb_shipper = {
|
||||||
|
active_index_directory = "/var/lib/loki/boltdb-shipper-active";
|
||||||
|
cache_location = "/var/lib/loki/boltdb-shipper-cache";
|
||||||
|
cache_ttl = "1d";
|
||||||
|
shared_store = "filesystem";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
limits_config = {
|
||||||
|
reject_old_samples = true;
|
||||||
|
reject_old_samples_max_age = "2w";
|
||||||
|
};
|
||||||
|
|
||||||
|
chunk_store_config.max_look_back_period = "0s";
|
||||||
|
|
||||||
|
table_manager = {
|
||||||
|
retention_deletes_enabled = false;
|
||||||
|
retention_period = "0s";
|
||||||
|
};
|
||||||
|
|
||||||
|
compactor = {
|
||||||
|
compactor_ring.kvstore.store = "inmemory";
|
||||||
|
shared_store = "filesystem";
|
||||||
|
|
||||||
|
working_directory = "/var/lib/loki";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,7 +6,7 @@ let
|
||||||
fqdn = "mail.${domain}";
|
fqdn = "mail.${domain}";
|
||||||
in serverSystemConfiguration {
|
in serverSystemConfiguration {
|
||||||
services.prometheus.exporters.postfix = enabled {
|
services.prometheus.exporters.postfix = enabled {
|
||||||
port = 9020;
|
port = 9030;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.prometheus.scrapeConfigs = [{
|
services.prometheus.scrapeConfigs = [{
|
||||||
|
|
|
@ -4,7 +4,7 @@ serverSystemConfiguration {
|
||||||
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
networking.firewall.allowedTCPPorts = [ 80 443 ];
|
||||||
|
|
||||||
services.prometheus.exporters.nginx = enabled {
|
services.prometheus.exporters.nginx = enabled {
|
||||||
port = 9010;
|
port = 9020;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.prometheus.scrapeConfigs = [{
|
services.prometheus.scrapeConfigs = [{
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
(serverSystemConfiguration {
|
(serverSystemConfiguration {
|
||||||
services.prometheus.exporters.postgres = enabled {
|
services.prometheus.exporters.postgres = enabled {
|
||||||
port = 9030;
|
port = 9040;
|
||||||
runAsLocalSuperUser = true;
|
runAsLocalSuperUser = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -33,6 +33,8 @@
|
||||||
ensureDatabases = [ "grafana" "nextcloud" ];
|
ensureDatabases = [ "grafana" "nextcloud" ];
|
||||||
|
|
||||||
initialScript = pkgs.writeText "postgresql-initial-script" ''
|
initialScript = pkgs.writeText "postgresql-initial-script" ''
|
||||||
|
CREATE ROLE root WITH LOGIN PASSWORD NULL CREATEDB;
|
||||||
|
|
||||||
CREATE ROLE grafana WITH LOGIN PASSWORD NULL CREATEDB;
|
CREATE ROLE grafana WITH LOGIN PASSWORD NULL CREATEDB;
|
||||||
GRANT ALL PRIVILEGES ON DATABASE grafana TO grafana;
|
GRANT ALL PRIVILEGES ON DATABASE grafana TO grafana;
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,12 @@ serverSystemConfiguration {
|
||||||
}];
|
}];
|
||||||
|
|
||||||
services.prometheus = enabled {
|
services.prometheus = enabled {
|
||||||
port = 9000;
|
port = 9000;
|
||||||
|
retentionTime = "1w";
|
||||||
|
|
||||||
exporters.node = enabled {
|
exporters.node = enabled {
|
||||||
enabledCollectors = [ "processes" "systemd" ];
|
enabledCollectors = [ "processes" "systemd" ];
|
||||||
port = 9001;
|
port = 9010;
|
||||||
};
|
};
|
||||||
|
|
||||||
scrapeConfigs = [{
|
scrapeConfigs = [{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue