ken
(Ken)
2
object Host "abcd-router" {
import "corp-vpn-endpoint"
address = "10.8.148.1"
vars..facility_code = "abcd"
vars.hostgroups = [ "abcd" ]
}
apply Dependency "router-internal" to Host {
parent_host_name = "abcd-router"
disable_notifications = true
assign where host.vars..facility_code == "abcd"
ignore where host.name == "abcd-router"
}
object Host "abcd-ras2.site.getwellnetwork.com" {
import "corp-linux-host"
address = "10.8.148.15"
vars.inpatient.facility_code = "abcd"
vars.hostgroups = [ "abcd", ]
display_name = "abcd-ras2"
vars..facility_code = "abcd"
}
object Host "abcd-ras1.site.getwellnetwork.com" {
import "corp-linux-host"
address = "10.8.148.14"
vars.inpatient.facility_code = "abcd"
vars.hostgroups = [ "abcd", ]
display_name = "abcd-ras1"
vars..facility_code = "abcd"
}
/*
* All NRPE checks require tcp-nrpe to be up, so define a dependency here
*/
apply Dependency "nrpe" to Service {
parent_service_name = "tcp-nrpe"
disable_checks = true // <-- then the states remain unchanged and the service is "late"
disable_notifications = true
assign where service.vars.nrpe_dependency == true
}
/* TCP NRPE CHECK
* This check should be applied to any NRPE-enabled host. It is the parent check
* for all other NRPE checks, so of the port becomes unreachable, the other
* NRPE checks don't send notifications on their own because of the dead port
*/
apply Service "tcp-nrpe" {
import "corp-generic-nrpe"
display_name = "Nagios NRPE"
check_command = "tcp"
vars.tcp_port = 5666
vars.tcp_ctime = 15
check_interval = 3m
retry_interval = 30s
assign where supports_nrpe(host)
}
/*
* DISK ROOT PARTITION
*/
apply Service "nrpe-disk-root" {
import "corp-generic-nrpe"
display_name = "DiskRootPartition"
check_command = "corp-nrpe"
vars.nrpe_command = "check_disk"
vars.nrpe_arguments = [ "7%", "5%", "/" ]
vars.nrpe_dependency = true
assign where supports_nrpe(host)
}
template Service "corp-generic-nrpe" {
import "corp-generic-service"
vars.nrpe_timeout = 35s
}
/**
* Provides default settings for services. By convention
* all services should import this template.
*/
template Service "corp-generic-service" {
max_check_attempts = 5
check_interval = 10m
retry_interval = 30s
vars.notification.use_slack = true
}
template Host "corp-vpn-endpoint" {
import "corp-generic-host"
check_interval = 2m
retry_interval = 15s
vars.vpn.delay = 6m
}
apply Notification "corp-chat-vpn-notification-devops" to Host {
import "corp-chat-host-notification-devops-tmpl"
users = [ "slack" ]
// Delay notification
times.begin = host.vars.vpn.delay
assign where host.vars.notification.use_slack == true && host.vars.vpn.delay
}
apply Notification "corp-chat-service-notification-devops" to Service {
import "corp-chat-service-notification-devops-tmpl"
users = [ "slack" ]
states = [ Critical, OK ]
assign where host.vars.notification.use_slack == true && service.vars.notification.use_slack == true
ignore where host.vars.vpn.delay
}
template Notification "corp-chat-host-notification-devops-tmpl" {
import "corp-generic-notification"
command = "corp-cmd-chat-host-notification-devops"
}
template Notification "corp-chat-service-notification-devops-tmpl" {
import "corp-generic-notification"
command = "corp-cmd-chat-service-notification-devops"
}
/**
* The notification template all other notification definitions should inherit from
*/
template Notification "corp-generic-notification" {
interval = 4h
}