m central-logging: init

This commit is contained in:
makefu 2017-02-05 22:34:16 +01:00
parent d242cd5149
commit bd90a14732
No known key found for this signature in database
GPG Key ID: 36F7711F3FC0F225
6 changed files with 68 additions and 5 deletions

View File

@ -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-----

View File

@ -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

View 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: ["*"]
'';
};
}

View 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
'';
}

View File

@ -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')

View File

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