Add metrics host with Grafana and Prometheus
This commit is contained in:
		
					parent
					
						
							
								acdff7a0cc
							
						
					
				
			
			
				commit
				
					
						fc2c69dbb7
					
				
			
		
					 6 changed files with 36 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -1,11 +1,11 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{ config, ... }:
 | 
			
		||||
{
 | 
			
		||||
  services.grafana = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      server = {
 | 
			
		||||
        domain = "grafana2.grzb.de";
 | 
			
		||||
        root_url = "https://grafana2.grzb.de";
 | 
			
		||||
        domain = "grafana.grzb.de";
 | 
			
		||||
        root_url = "https://${config.services.grafana.settings.server.domain}";
 | 
			
		||||
      };
 | 
			
		||||
      security = {
 | 
			
		||||
        cookie_secure = true;
 | 
			
		||||
| 
						 | 
				
			
			@ -24,5 +24,13 @@
 | 
			
		|||
        startTLS_policy = "NoStartTLS";
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
    provision.datasources.settings.datasources = [
 | 
			
		||||
      {
 | 
			
		||||
        name = "Prometheus";
 | 
			
		||||
        type = "prometheus";
 | 
			
		||||
        url = "http://localhost:${builtins.toString config.services.prometheus.port}";
 | 
			
		||||
        isDefault = true;
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@
 | 
			
		|||
  services.nginx = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    virtualHosts = {
 | 
			
		||||
      "grafana2.grzb.de" = {
 | 
			
		||||
      ${config.services.grafana.settings.server.domain} = {
 | 
			
		||||
        forceSSL = true;
 | 
			
		||||
        enableACME = true;
 | 
			
		||||
        listen = [
 | 
			
		||||
| 
						 | 
				
			
			@ -19,6 +19,7 @@
 | 
			
		|||
        ];
 | 
			
		||||
        locations."/" = {
 | 
			
		||||
          proxyPass = "http://${config.services.grafana.settings.server.http_addr}:${builtins.toString config.services.grafana.settings.server.http_port}";
 | 
			
		||||
          proxyWebsockets = true;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,19 @@
 | 
			
		|||
{ ... }:
 | 
			
		||||
{ hosts, ... }:
 | 
			
		||||
{
 | 
			
		||||
  services.prometheus = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    scrapeConfigs = [
 | 
			
		||||
      {
 | 
			
		||||
        job_name = "node";
 | 
			
		||||
        static_configs = builtins.map (name: {
 | 
			
		||||
          targets = [
 | 
			
		||||
            "${name}.${hosts.${name}.site}.grzb.de:9100"
 | 
			
		||||
          ];
 | 
			
		||||
          labels = {
 | 
			
		||||
            host = "${name}.${hosts.${name}.site}.grzb.de";
 | 
			
		||||
          };
 | 
			
		||||
        }) (builtins.attrNames hosts);
 | 
			
		||||
      }
 | 
			
		||||
    ];
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@
 | 
			
		|||
      proxyPass = "http://netbox.vs.grzb.de:80";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  services.nginx.virtualHosts."grafana2.grzb.de" = {
 | 
			
		||||
  services.nginx.virtualHosts."grafana.grzb.de" = {
 | 
			
		||||
    listen = [{ 
 | 
			
		||||
      addr = "0.0.0.0";
 | 
			
		||||
      port = 80;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue