m central-logging: init
This commit is contained in:
parent
d242cd5149
commit
bd90a14732
@ -385,6 +385,8 @@ with import <stockholm/lib>;
|
|||||||
aliases = [
|
aliases = [
|
||||||
"omo.retiolum"
|
"omo.retiolum"
|
||||||
"omo.r"
|
"omo.r"
|
||||||
|
"logs.makefu.r"
|
||||||
|
"stats.makefu.r"
|
||||||
];
|
];
|
||||||
tinc.pubkey = ''
|
tinc.pubkey = ''
|
||||||
-----BEGIN RSA PUBLIC KEY-----
|
-----BEGIN RSA PUBLIC KEY-----
|
||||||
|
@ -54,9 +54,10 @@ in {
|
|||||||
../2configs/omo-share.nix
|
../2configs/omo-share.nix
|
||||||
../2configs/tinc/retiolum.nix
|
../2configs/tinc/retiolum.nix
|
||||||
../2configs/logging/central-stats-server.nix
|
../2configs/logging/central-stats-server.nix
|
||||||
|
../2configs/logging/central-logging-server.nix
|
||||||
../2configs/logging/central-stats-client.nix
|
../2configs/logging/central-stats-client.nix
|
||||||
|
../2configs/logging/central-logging-client.nix
|
||||||
|
|
||||||
../2configs/kapacitor.nix
|
|
||||||
# ../2configs/torrent.nix
|
# ../2configs/torrent.nix
|
||||||
|
|
||||||
# ../2configs/elchos/search.nix
|
# ../2configs/elchos/search.nix
|
||||||
|
32
makefu/2configs/logging/central-logging-client.nix
Normal file
32
makefu/2configs/logging/central-logging-client.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{pkgs, buil, config, ...}:
|
||||||
|
let
|
||||||
|
log-server = config.makefu.log-server;
|
||||||
|
log-port = 9200;
|
||||||
|
in {
|
||||||
|
services.journalbeat = {
|
||||||
|
enable = true;
|
||||||
|
# TODO: filter for certain journal fields, not all
|
||||||
|
extraConfig = ''
|
||||||
|
journalbeat:
|
||||||
|
name: logs-${config.krebs.build.host.name}
|
||||||
|
seek_position: cursor
|
||||||
|
cursor_seek_fallback: tail
|
||||||
|
write_cursor_state: true
|
||||||
|
cursor_flush_period: 5s
|
||||||
|
clean_field_names: true
|
||||||
|
convert_to_numbers: false
|
||||||
|
move_metadata_to_field: journal
|
||||||
|
default_type: journal
|
||||||
|
output.elasticsearch:
|
||||||
|
enabled: true
|
||||||
|
hosts: ["${log-server}:${builtins.toString log-port}"]
|
||||||
|
template.enabled: false
|
||||||
|
#output.console:
|
||||||
|
# enabled: true
|
||||||
|
logging.level: info
|
||||||
|
logging.to_syslog: true
|
||||||
|
logging.selectors: ["*"]
|
||||||
|
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
23
makefu/2configs/logging/central-logging-server.nix
Normal file
23
makefu/2configs/logging/central-logging-server.nix
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{pkgs, config, ...}:
|
||||||
|
|
||||||
|
with import <stockholm/lib>;
|
||||||
|
let
|
||||||
|
es-port = 9200;
|
||||||
|
kibana-port = 5601;
|
||||||
|
in {
|
||||||
|
services.elasticsearch = {
|
||||||
|
enable = true;
|
||||||
|
listenAddress = "0.0.0.0";
|
||||||
|
port = es-port;
|
||||||
|
};
|
||||||
|
services.kibana = {
|
||||||
|
enable = true;
|
||||||
|
listenAddress = "0.0.0.0";
|
||||||
|
port = kibana-port;
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.extraCommands = ''
|
||||||
|
iptables -A INPUT -i retiolum -p tcp --dport ${toString es-port} -j ACCEPT
|
||||||
|
iptables -A INPUT -i retiolum -p tcp --dport ${toString es-port} -j ACCEPT
|
||||||
|
'';
|
||||||
|
}
|
@ -7,7 +7,7 @@ let
|
|||||||
grafana-port = 3000; # TODO nginx forward
|
grafana-port = 3000; # TODO nginx forward
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../../lass/3modules/kapacitor.nix
|
../../../lass/3modules/kapacitor.nix
|
||||||
];
|
];
|
||||||
services.grafana.enable = true;
|
services.grafana.enable = true;
|
||||||
services.grafana.addr = "0.0.0.0";
|
services.grafana.addr = "0.0.0.0";
|
||||||
@ -45,11 +45,11 @@ in {
|
|||||||
alarms = {
|
alarms = {
|
||||||
cpu_deadman = ''
|
cpu_deadman = ''
|
||||||
var data = batch
|
var data = batch
|
||||||
|query('''
|
|query(${"'''"}
|
||||||
SELECT mean("value") AS mean
|
SELECT mean("value") AS mean
|
||||||
FROM "collectd_db"."default"."cpu_value"
|
FROM "collectd_db"."default"."cpu_value"
|
||||||
WHERE "type_instance" = 'idle' AND "type" = 'percent' fill(0)
|
WHERE "type_instance" = 'idle' AND "type" = 'percent' fill(0)
|
||||||
''')
|
${"'''"})
|
||||||
.period(10m)
|
.period(10m)
|
||||||
.every(1m)
|
.every(1m)
|
||||||
.groupBy('host')
|
.groupBy('host')
|
||||||
|
@ -4,8 +4,13 @@ with import <stockholm/lib>;
|
|||||||
{
|
{
|
||||||
options.makefu.stats-server = lib.mkOption {
|
options.makefu.stats-server = lib.mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "omo.retiolum";
|
default = "stats.makefu.r";
|
||||||
description = "Central stats server (collectd)";
|
description = "Central stats server (collectd)";
|
||||||
};
|
};
|
||||||
|
options.makefu.log-server = lib.mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "logs.makefu.r";
|
||||||
|
description = "Central logging server (logstash,elasticsearch)";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user