modules/monitoring: Extract metrics from nginx logs
This commit is contained in:
@@ -102,6 +102,33 @@ in
|
||||
listen = "[::]:9152";
|
||||
};
|
||||
|
||||
services.prometheus.exporters.nginxlog = mkIf config.services.nginx.enable {
|
||||
enable = true;
|
||||
settings = {
|
||||
namespaces = [
|
||||
{
|
||||
name = "nginxlog";
|
||||
format = ''$host: $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$server_name" rt="$request_time" uct="$upstream_connect_time" uht="$upstream_header_time" urt="$upstream_response_time"'';
|
||||
source = {
|
||||
files = [
|
||||
"/var/log/nginx/access.log"
|
||||
];
|
||||
};
|
||||
relabel_configs = [
|
||||
{
|
||||
target_label = "server_name";
|
||||
from = "server_name";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services."prometheus-nginxlog-exporter".serviceConfig = {
|
||||
SupplementaryGroups = "nginx";
|
||||
};
|
||||
|
||||
networking.firewall.interfaces."wg-monitoring".allowedTCPPorts = [
|
||||
9100 # node-exporter
|
||||
9152 # nixos-exporter
|
||||
@@ -109,6 +136,8 @@ in
|
||||
9324 # bird-exporter
|
||||
] else []) ++ (if cfg.blackbox then [
|
||||
9115 # blackbox-exporter
|
||||
] else []) ++ (if config.services.prometheus.exporters.nginxlog.enable then [
|
||||
config.services.prometheus.exporters.nginxlog.port
|
||||
] else []);
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user