add grafana+influxdb

auto-flake-update
Yorick van Pelt 2017-01-26 14:45:11 +01:00
parent a4bd9ee92f
commit ff31c8c604
6 changed files with 126 additions and 23 deletions

View File

@ -17,6 +17,7 @@ in
../modules/tor-hidden-service.nix
../roles/quassel.nix
../roles/pub.nix
../roles/collectd.nix
];

View File

@ -15,6 +15,8 @@ in
imports = [
./hardware-configuration.nix
../roles/common.nix
../roles/collectd.nix
../roles/graphs.nix
../modules/mailz.nix
../modules/nginx.nix
../modules/tor-hidden-service.nix

63
roles/collectd.nix Normal file
View File

@ -0,0 +1,63 @@
{ config, pkgs, lib, ...}:
let
secrets = import <secrets>;
in
{
services.collectd = {
enable = true;
extraConfig = ''
LoadPlugin network
LoadPlugin conntrack
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin interface
LoadPlugin fhcount
LoadPlugin load
LoadPlugin memory
LoadPlugin processes
LoadPlugin swap
LoadPlugin tcpconns
LoadPlugin uptime
LoadPlugin users
<Plugin tcpconns>
LocalPort "443"
</Plugin>
<Plugin "network">
<Server "graphs.yori.cc">
Username "${config.networking.hostName}"
Password "${secrets.influx_pass.${config.networking.hostName}}"
</Server>
</Plugin>
'';
};
boot.kernel.sysctl."net.core.rmem_max" = 26214400;
boot.kernel.sysctl."net.core.rmem_default" = 26214400;
nixpkgs.config.packageOverrides = pkgs: {
collectd = pkgs.collectd.override {
jdk = null;
libcredis = null;
libdbi = null;
libmemcached = null; cyrus_sasl = null;
libmodbus = null;
libnotify = null; gdk_pixbuf = null;
libsigrok = null;
libvirt = null;
libxml2 = null;
libtool = null;
lvm2 = null;
libmysql = null;
protobufc = null;
python = null;
rabbitmq-c = null;
riemann = null;
rrdtool = null;
varnish = null;
yajl = null;
net_snmp = null;
};
};
}

38
roles/graphs.nix Normal file
View File

@ -0,0 +1,38 @@
# use together with ./collectd.nix
{ config, pkgs, lib, ...}:
let
secrets = import <secrets>;
grafana_port = 3000;
domain = "graphs.yori.cc";
in
{
networking.firewall.allowedUDPPorts = [25826];
services.influxdb = {
enable = true;
extraConfig = {
collectd = [{
enabled = true;
typesdb = "${pkgs.collectd}/share/collectd/types.db";
database = "collectd_db";
"security-level" = "sign";
"auth-file" = pkgs.writeText "collectd_auth"
(builtins.concatStringsSep "\n" (lib.mapAttrsToList (n: p: "${n}: ${p}") secrets.influx_pass) + "\n");
port = 25826;
}];
};
};
services.grafana = {
enable = true;
inherit domain;
rootUrl = "https://${domain}/";
port = grafana_port;
};
services.nginx.virtualHosts.${domain} = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:${toString grafana_port}";
};
};
}

View File

@ -1,26 +1,24 @@
-----BEGIN PGP MESSAGE-----
hQEMAwEAjpZflP7cAQgAuUQH4GHZsM4Qh+zUBK9nMQ+Cl+jetPLYv8QFzsTWFOge
gAPdZs5NRi+ncvaoA/jnZtNfo8awtZ7UPT2wh3j102cGB5rB3flsVD61wQuiu1rG
v3wh4875vjHpRZy6JaJuRTHvno0usoebg1dwiVaiFI10oXRzrEtiM+M6CiDeUFGM
aUl356YxRbLgkYHw/R6C5WdssOt4jOuQkXV1Jv+b3Td5HJYLL+Ae9Dwg7MVfGzas
aSboFHatQ2HqS/pTyNLz3zJzoxPWhQPaIFV5V3BpmQvC6qnBp824T2tHz4G9vqND
G3UI6sI1Um/KuPg9pgDdO30O8+1n1E9LxLjwm4vVKNLpASVp/SY8UrJmx5bGFr/0
qkCuVVPcJm0rr9VAHSGrDwXanE4HFG5W+LFb1EL/gEa2rlcYvv7YsOxMTXjYKBRC
cY9w8NNTsxgGTm1Mn76cCS5sUSLeoPYlYTbgsmGrMO7EEYdOQhFsK1IHv8ANoDA+
OnciOCLOKCb85cCO5w8zM63Fdz0sK8uDs0W/XUWBmk0vyeqv1dFFExzZ06Y2l4yh
pKwuIb4hEniv0i+T5ElN93PM2nMaxfPj8M4T8DEsIA5kRiO96ITXCJLLEsCxkF2s
fJZ4U4bF7jxj3rErLJthPsA2Xw62vq0I60g7+BcZt/g8Sj0TGmYRR+MvvOeXUuIT
JtqeIFx2c6NbOT5rKqu7HbI5AlRZ1pmjDgfYF0CF6U/0fq5PHbh7ntyRU79Ca8Hn
tr9SU/g3Uq/WMpPzFbZ21+kCXrwBkti4urUkOfUzUO04fUS7SUj/FzgyyBCh3nHG
cRSrcy49f9mvSvV1hxpu0ukWJID8UiDyoM0RqQ8Qab7BrKsCgodUnKFHWIKuYxgX
defCwQzuEq/A4kmB1pPF6F56cfa4wyKVjXgreQzgQxqG4LtjsZGzA84Q/R+2xVxj
LBJzuKzBmuDgwCKw6/9q872Vz8+r1MdeXdpkxEUS8knMbmhHMKw0Pb7vwI5t3JQy
5DziTWV0M6rAuBjXJ0h876XARDwVUue0mNf9FovMvnak4af/cXPWuBCZ+ZDJzL7Y
d5FXz5/Tb5Lqw+qoJtjullDR3Vtntmm4MOUTytVBFWz5NXw5NlVm3KmpLUHK4KbY
grHphnz87JZJ7jA2o1WXPsj8FwzmNpIYqTbB/mp/Gtr4vfarD2Org1uyc16n9e0e
AIePoJIR5Rsrkb51WSuJ4kV+5A1M+YH+k400qYmTcPKeenZvn8RJvjeD7R4ErpK7
vc3RsAFEdBvsUVidrKM0DmWmMSxeNYU72Bubr8TfHcDOe3ZSotokh1v3JE2gdICQ
LO0PkA3txVH+gjOa02Y9ZiDm0eqWQiwGx5g6TeiKD4jx9zpNfCt7
=u9KE
hF4DVNqm0KmYcYASAQdAzceaPLCjk6UKh4KT0GkBKnOLxv8fbysTLTXW/kxL2l4w
X+FzhmbeD6jlLoLmYHEKMDvYT6/OdbxdnI803Inlu6URwupUAzTyHmDhG99vw8AB
0ukBDbZs9VEwEV4dXxgyZbBZ2sCNUrEO/WGSHEKmFcSl6XrXAt767StQ10ohce3y
5mf7F/L36+bdqZ4Ndzr+N27p7RQNyAnF9RmyiG6COnlJBuflo5TOyOpF0Az71hid
Nff8xjhnp0DyMAI0xXo2pQvtKgerDuYRsXVNl2eUEHnDg0rd88jt0mt34SvBjI9e
B3Tg4acgSHCNbrGuODc3uW/ellmFEblaZ+ybXV8K1kWarXxgecrOv6sjLS/s9jWD
Pj+qNT/UOaCVXe1bxutc3cPD5m2kgPlZHF3UNcKzpR8HFR/dVcuilHmcaX5D9sm1
b77KD3a81blq9xb/bDb9H7JJ+V4z1yCzx2CngetqVQ4Ksgpz+ctUFGQHbDixX2Yn
VRpKNdcVzJZfQy4SPaG2fz0mQdRFJmdqkauaxT/PY/uhDA9QtkIHmE6xjJxOTfqu
guAeVZZtLzy26bSGPiRoO7UfBZQ9nBZrsaV7xtEbq1W6mt/951mZfKC8KpX1cDiO
0ld6+lHH47zCPpA5TSbyy0GY14QMqPmIQvfkL1ul7GfhAYb8Wba+Z1m2BfYis+bn
XQdXkdTJieS0I/Uc1pvXzTzjVHReRisKBreqAeZ97bYZqlV8e4O14GhUqdwEHMSE
Gp6HybrOVA1sVOtvCAcUx2xMVBET0xSNCD0B05e5cbgZQMCPn0aA+qAlNBPXGJzf
0ckP0eOj2iSAjYQNyoCmP8R6ULKc74Pwb4xaNlcPMvlCaDfR/7W1P+u9HDH1/ep+
SV1nkyW5RRlpWbEfwPI1j50O5FR44sxb7YmrxIPM97p62zCm6wqn7AoRlkztw8pB
XUwfx+mWRusRZrB4fDMTltLtu3Tj6wFanlmK5FYFDnujMZHWUKwuUPgp66Y+W7q0
4kJSvfi2VXGRKzhWuHTdhNKIm4pDooePQtzBJdqN0xg9j+M5QEjhVqpZf0E/Vtt3
UI8DpDr71HvNem6HgE74tcCHegjUc5DKEVQjLAFa5nTFPjeMHsQc2VPB2htCtp/f
n0E76Muu4YRHUeroo8LXMuuZ/fJdsyv7avlHYBmn5wPDj1HTbk6sOSKrAaHzDuDX
s2Mb4L+0HHecO3B6uPv1FRPUnV7i+URNcV9UtHt8MGyJyXQ=
=NQWD
-----END PGP MESSAGE-----

View File

@ -11,6 +11,7 @@ in
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../roles/common.nix
../roles/collectd.nix
../modules/tor-hidden-service.nix
../roles/graphical.nix
];