Skip to content

andi0b/AspNetCore.Diagnostics.HealthChecks.Icinga

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

Icinga Module for ASP.NET Core Health Checks

This module allows to query health checks from ASP.NET Core services, which use the libraries from Xabaril/AspNetCore.Diagnostics.HealthChecks and their Response writers:

Requirements

Please install:

Examples

Given you configured your health checks like that in your ASP.NET Core Web Application:

config.MapHealthChecks("/health", new HealthCheckOptions
  {
     Predicate = _ => true,
     ResponseWriter = UIResponseWriter.WriteHealthCheckUIRespons
  });

Query the overall status:

check_aspnetcore_healthcheck --url http://servicename/health

Query the status of the health check named PostgreSQL

check_aspnetcore_healthcheck --url http://servicename/health --health-check-name "PostgreSQL"

Minimal Example

Copy the check_aspnetcore_healthcheck to /usr/lib/nagios/plugins

Example in Icinga config:

object CheckCommand "aspnetcore_healthcheck" {
  command = [ PluginDir + "/check_aspnetcore_healthcheck" ]
  arguments = {
    "--url" = {
      value = "$url$",
      description = "The URL of the health check"
    },
    "--health-check-name" = {
      value = "$health-check-name$",
      description = "The name of the health check module, skip it to query overall status"
    }
  }
}

object Host "Host1" {
  address = "host1"
  check_command="hostalive"
}  

object Service "Service1" {
  host_name = "Host1"
  check_command = "aspnetcore_healthcheck"
  vars.url = "http://host1/health"
}