func main() { var ( warn int crit int ) c := check.New("CheckMemory") c.Option.IntVarP(&warn, "warn", "w", 80, "WARN") c.Option.IntVarP(&crit, "crit", "c", 90, "CRIT") c.Init() usage, err := memoryUsage() if err != nil { c.Error(err) } switch { case usage >= float64(crit): c.Critical(fmt.Sprintf("%.0f%%", usage)) case usage >= float64(warn): c.Warning(fmt.Sprintf("%.0f%%", usage)) default: c.Ok(fmt.Sprintf("%.0f%%", usage)) } }
func main() { var ( host string port int timeout int ) c := check.New("CheckElasticsearch") c.Option.StringVarP(&host, "host", "h", "localhost", "HOST") c.Option.IntVarP(&port, "port", "P", 9200, "PORT") c.Option.IntVarP(&timeout, "timeout", "t", 30, "TIMEOUT") c.Init() status, err := healthStatus(host, port, timeout) if err != nil { c.Error(err) } switch status { case "green": c.Ok("Cluster is green") case "yellow": c.Warning("Cluster is yellow") case "red": c.Critical("Cluster is red") } }
func main() { var ( host string port int vhost string user string password string timeout int ) c := check.New("CheckRabbitMQ") c.Option.StringVarP(&host, "host", "h", "localhost", "HOST") c.Option.IntVarP(&port, "port", "P", 15672, "PORT") c.Option.StringVarP(&vhost, "vhost", "v", "%2F", "VHOST") c.Option.StringVarP(&user, "user", "u", "guest", "USER") c.Option.StringVarP(&password, "password", "p", "guest", "PASSWORD") c.Option.IntVarP(&timeout, "timeout", "t", 10, "TIMEOUT") c.Init() status, err := alivenessTest(host, port, vhost, user, password, timeout) if err != nil { c.Error(err) } switch status { case "ok": c.Ok("RabbitMQ server is alive") default: c.Warning("Object Not Found") } }
func main() { var ( url string redirect bool timeout int ) c := check.New("CheckHTTP") c.Option.StringVarP(&url, "url", "u", "http://localhost/", "URL") c.Option.BoolVarP(&redirect, "redirect", "r", false, "REDIRECT") c.Option.IntVarP(&timeout, "timeout", "t", 15, "TIMEOUT") c.Init() status, err := statusCode(url, timeout) if err != nil { c.Error(err) } switch { case status >= 400: c.Critical(strconv.Itoa(status)) case status >= 300 && redirect: c.Ok(strconv.Itoa(status)) case status >= 300: c.Warning(strconv.Itoa(status)) default: c.Ok(strconv.Itoa(status)) } }
func main() { var ( path string warn int crit int ) c := check.New("CheckPostfix") c.Option.StringVarP(&path, "path", "p", "/usr/bin/mailq", "PATH") c.Option.IntVarP(&warn, "warn", "w", 5, "WARN") c.Option.IntVarP(&crit, "crit", "c", 10, "CRIT") c.Init() queue, err := mailQueue(path) if err != nil { c.Error(err) } switch { case queue > crit: c.Critical(fmt.Sprintf("%d messages in the postfix mail queue\n", queue)) case queue > warn: c.Warning(fmt.Sprintf("%d messages in the postfix mail queue\n", queue)) default: c.Ok(fmt.Sprintf("%d messages in the postfix mail queue\n", queue)) } }
func main() { var ( warn int crit int warnMnt []string critMnt []string ) c := check.New("CheckDisk") c.Option.IntVarP(&warn, "warn", "w", 80, "WARN") c.Option.IntVarP(&crit, "crit", "c", 100, "CRIT") c.Init() usage, err := diskUsage() if err != nil { c.Error(err) } for _, u := range usage { cap, err := strconv.ParseInt(strings.TrimRight(u[1], "%"), 10, 64) if err != nil { c.Error(err) } switch { case cap >= int64(crit): critMnt = append(critMnt, u[0]+" "+u[1]) case cap >= int64(warn): warnMnt = append(warnMnt, u[0]+" "+u[1]) } } switch { case len(critMnt) > 0: c.Critical(strings.Join(critMnt, ", ")) case len(warnMnt) > 0: c.Warning(strings.Join(warnMnt, ", ")) default: c.Ok("OK") } }
func main() { var ( host string port int timeout int64 ) c := check.New("CheckPing") c.Option.StringVarP(&host, "host", "h", "localhost", "HOST") c.Option.IntVarP(&port, "port", "P", 22, "PORT") c.Option.Int64VarP(&timeout, "timeout", "t", 5, "TIMEOUT") c.Init() address := host + ":" + strconv.Itoa(port) conn, err := net.DialTimeout("tcp", address, time.Duration(timeout)*time.Second) if err != nil { c.Error(err) } defer conn.Close() c.Ok(address) }
func main() { var ( host string port int database string user string password string ) c := check.New("CheckPostgres") c.Option.StringVarP(&host, "host", "h", "localhost", "HOST") c.Option.IntVarP(&port, "port", "P", 5432, "PORT") c.Option.StringVarP(&user, "user", "u", "", "USER") c.Option.StringVarP(&password, "password", "p", "", "PASSWORD") c.Option.StringVarP(&database, "database", "d", "test", "DATABASE") c.Init() version, err := selectVersion(host, port, user, password, database) if err != nil { c.Error(err) } c.Ok(fmt.Sprint("Server version ", version)) }