infrastructure/machines/public-cof/monitoring.nix

84 lines
1.9 KiB
Nix
Raw Normal View History

{ config, lib, pkgs, ... }:
{
services.nginx.statusPage = true;
services.netdata = {
enable = true;
config = {
global."memory mode" = "none";
web = {
mode = "none";
"accept a streaming request every seconds" = 0;
};
};
python.extraPackages = ps: [
ps.psycopg2
];
};
systemd.services.netdata.serviceConfig.SupplementaryGroups = [ "nginx" ];
systemd.services.netdata.restartTriggers = map (v: config.environment.etc."netdata/${v}.conf".source) [
"stream"
"go.d/phpfpm"
"go.d/nginx"
"python.d/postgres"
];
services.postgresql.initialScript = pkgs.writeText "grant-pgmonitor-to-netdata" ''
GRANT pg_monitor TO netdata;
'';
services.postgresql.ensureUsers = [
{ name = "netdata"; }
];
environment.etc."netdata/python.d/postgres.conf" = {
user = "netdata";
group = "netdata";
mode = "0600";
text = builtins.toJSON (
if config.services.postgresql.enable then
{
name = "socket";
user = "netdata";
database = "postgres";
}
else {}
);
};
environment.etc."netdata/go.d/phpfpm.conf" = {
user = "netdata";
group = "netdata";
mode = "0600";
text = builtins.toJSON {
jobs =
map (pool: { name = "local_socket"; inherit (pool) socket; })
(builtins.attrValues config.services.phpfpm.pools);
};
};
environment.etc."netdata/go.d/nginx.conf" = {
user = "netdata";
group = "netdata";
mode = "0600";
text = builtins.toJSON {
jobs =
if config.services.nginx.statusPage then [ { name = "local"; url = "http://localhost/nginx_status"; } ]
else [];
};
};
environment.etc."netdata/stream.conf" = {
user = "netdata";
group = "netdata";
mode = "0600";
text = ''
[stream]
enabled = yes
destination = 10.1.1.20:19999
api key = c48e6ef1-5cdf-408d-ae2f-86aadb14e3fe
'';
};
}