Update monitoring configs
This commit is contained in:
parent
0dbb8ddf63
commit
fba000685a
|
@ -0,0 +1 @@
|
|||
features-available
|
|
@ -0,0 +1,19 @@
|
|||
object CheckCommand "check_net_int" {
|
||||
import "by_ssh"
|
||||
vars.by_ssh_timeout = "420"
|
||||
timeout = "420"
|
||||
# vars.by_ssh_command = "sudo /usr/lib64/nagios/plugins/check_net_int.sh -w $int_warn$ -c $int_crit$"
|
||||
vars.by_ssh_command = "sudo /usr/lib/nagios/plugins/check_interface_load.sh -w 10000 -c 20000"
|
||||
vars.int_warn=""
|
||||
vars.int_crit=""
|
||||
}
|
||||
|
||||
object CheckCommand "check_open_ports" {
|
||||
import "by_ssh"
|
||||
vars.by_ssh_timeout = "420"
|
||||
timeout = "420"
|
||||
vars.by_ssh_command = "sudo /usr/lib/nagios/plugins/check_network_ports.sh -p \"$ports$\" -H $host$"
|
||||
vars.ports=""
|
||||
vars.host=""
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
object Host "vin-external.openfest.org" {
|
||||
import "generic-host"
|
||||
|
||||
address = "185.117.82.237"
|
||||
# check_command = "xxx_health"
|
||||
# vars.extra_port_check = ""
|
||||
vars.by_ssh_port = "22"
|
||||
# vars.specification = "router"
|
||||
|
||||
vars.net_interfaces = [ "bond0", "bond0.20", "bond0.21", "bond0.22", "bond0.23", "bond0.24", "bond0.25", "bond0.26", "bond0.4001", "eno1", "enp1s0f4", "enp1s0f4d1" ]
|
||||
|
||||
vars.open_ports = "80 179 2004 53 22 7002 8443 443"
|
||||
|
||||
vars.notification["slack"] = {
|
||||
groups = [ "icingaadmins"]
|
||||
}
|
||||
}
|
||||
|
|
@ -8,26 +8,34 @@
|
|||
* Check `hosts.conf` for an example.
|
||||
*/
|
||||
|
||||
apply Notification "mail-icingaadmin" to Host {
|
||||
import "mail-host-notification"
|
||||
user_groups = host.vars.notification.mail.groups
|
||||
users = host.vars.notification.mail.users
|
||||
#apply Notification "mail-icingaadmin" to Host {
|
||||
# import "mail-host-notification"
|
||||
# user_groups = host.vars.notification.mail.groups
|
||||
# users = host.vars.notification.mail.users
|
||||
|
||||
//interval = 2h
|
||||
|
||||
//vars.notification_logtosyslog = true
|
||||
|
||||
assign where host.vars.notification.mail
|
||||
}
|
||||
# assign where host.vars.notification.mail
|
||||
#}
|
||||
|
||||
apply Notification "mail-icingaadmin" to Service {
|
||||
import "mail-service-notification"
|
||||
user_groups = host.vars.notification.mail.groups
|
||||
users = host.vars.notification.mail.users
|
||||
//apply Notification "mail-icingaadmin" to Service {
|
||||
// import "mail-service-notification"
|
||||
// user_groups = host.vars.notification.mail.groups
|
||||
// users = host.vars.notification.mail.users
|
||||
|
||||
//interval = 2h
|
||||
|
||||
//vars.notification_logtosyslog = true
|
||||
|
||||
assign where host.vars.notification.mail
|
||||
// assign where host.vars.notification.mail
|
||||
//}
|
||||
|
||||
apply Notification "slack" to Service {
|
||||
import "slack-service-notification"
|
||||
user_groups = host.vars.notification.slack.groups
|
||||
interval = 1m
|
||||
vars.notification_logtosyslog = true
|
||||
assign where host.vars.notification.slack
|
||||
}
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
apply Service "network_interfaces_traffic" {
|
||||
import "generic-service"
|
||||
check_interval = 5m
|
||||
retry_interval = 5m
|
||||
check_command = "check_net_int"
|
||||
vars.int_warn="925"
|
||||
vars.int_crit="950"
|
||||
|
||||
assign where host.vars.net_interfaces
|
||||
|
||||
vars.notif_prio = "high"
|
||||
}
|
||||
|
||||
apply Service "network_open_ports" {
|
||||
import "generic-service"
|
||||
check_interval = 5m
|
||||
retry_interval = 5m
|
||||
check_command = "check_open_ports"
|
||||
vars.ports=host.vars.open_ports
|
||||
vars.host=host.address
|
||||
assign where host.vars.open_ports
|
||||
|
||||
vars.notif_prio = "high"
|
||||
}
|
|
@ -102,7 +102,7 @@ apply Service "swap" {
|
|||
|
||||
check_command = "swap"
|
||||
|
||||
assign where host.name == NodeName
|
||||
assign where host.vars.swap_size
|
||||
}
|
||||
|
||||
apply Service "users" {
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
object NotificationCommand "slack-service-notification" {
|
||||
import "plugin-notification-command"
|
||||
|
||||
command = [ SysconfDir + "/icinga2/scripts/slack-service-notification.sh" ]
|
||||
|
||||
env = {
|
||||
"NOTIFICATIONTYPE" = "$notification.type$"
|
||||
"SERVICEDESC" = "$service.name$"
|
||||
"HOSTALIAS" = "$host.display_name$",
|
||||
"HOSTNAME" = "$host.name$",
|
||||
"HOSTADDRESS" = "$address$",
|
||||
"SERVICESTATE" = "$service.state$",
|
||||
"LONGDATETIME" = "$icinga.long_date_time$",
|
||||
"SERVICEOUTPUT" = "$service.output$",
|
||||
"NOTIFICATIONAUTHORNAME" = "$notification.author$",
|
||||
"NOTIFICATIONCOMMENT" = "$notification.comment$",
|
||||
"HOSTDISPLAYNAME" = "$host.display_name$",
|
||||
"SERVICEDISPLAYNAME" = "$service.display_name$",
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
template Notification "slack-service-notification" {
|
||||
command = "slack-service-notification"
|
||||
|
||||
states = [ OK, Warning, Critical, Unknown ]
|
||||
types = [ Problem, Acknowledgement, Recovery, Custom,
|
||||
FlappingStart, FlappingEnd,
|
||||
DowntimeStart, DowntimeEnd, DowntimeRemoved ]
|
||||
|
||||
period = "24x7"
|
||||
}
|
|
@ -3,6 +3,9 @@
|
|||
* the other configuration files.
|
||||
*/
|
||||
|
||||
/* XXX: Nice comment */
|
||||
const SysconfDir = "etc"
|
||||
|
||||
/* The directory which contains the plugins from the Monitoring Plugins project. */
|
||||
const PluginDir = "/usr/lib/nagios/plugins"
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
/**
|
||||
* The GraphiteWriter type writes check result metrics and
|
||||
* performance data to a graphite tcp socket.
|
||||
*/
|
||||
|
||||
library "perfdata"
|
||||
|
||||
object GraphiteWriter "graphite" {
|
||||
// host = "127.0.0.1"
|
||||
// port = 2003
|
||||
// enable_send_thresholds = true
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
/**
|
||||
* The PerfdataWriter type writes performance data files and rotates
|
||||
* them in a regular interval.
|
||||
*/
|
||||
|
||||
object PerfdataWriter "perfdata" { }
|
|
@ -0,0 +1,107 @@
|
|||
#!/bin/bash
|
||||
|
||||
ICINGA_HOSTNAME="vin.openfest.org/icingaweb2"
|
||||
SLACK_WEBHOOK_URL="https://hooks.slack.com/services/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"
|
||||
SLACK_CHANNEL="#video"
|
||||
SLACK_BOTNAME="icinga2"
|
||||
|
||||
|
||||
if [ "$NOTIFICATIONTYPE" = "ACKNOWLEDGEMENT" ] || [ "$NOTIFICATIONTYPE" = "DOWNTIMESTART" ] || [ "$NOTIFICATIONTYPE" = "DOWNTIMEEND" ]
|
||||
then
|
||||
COLOR="#FFB6C1"
|
||||
read -d '' PAYLOAD << EOF
|
||||
{
|
||||
"channel": "${SLACK_CHANNEL}",
|
||||
"username": "${SLACK_BOTNAME}",
|
||||
"attachments": [
|
||||
{
|
||||
"fallback": "${NOTIFICATIONTYPE}: ${SERVICESTATE}: ${HOSTDISPLAYNAME} - ${SERVICEDISPLAYNAME}",
|
||||
"color": "${COLOR}",
|
||||
"fields": [
|
||||
{
|
||||
"title": "${NOTIFICATIONTYPE}",
|
||||
"value": "${NOTIFICATIONCOMMENT} - ${NOTIFICATIONAUTHORNAME}"
|
||||
},
|
||||
{
|
||||
"title": "Service output",
|
||||
"value": "${SERVICEOUTPUT}",
|
||||
"short": false
|
||||
},
|
||||
{
|
||||
"title": "Host",
|
||||
"value": "<${ICINGA_HOSTNAME}/monitoring/host/services?host=${HOSTNAME}|${HOSTDISPLAYNAME}>",
|
||||
"short": true
|
||||
},
|
||||
{
|
||||
"title": "Service",
|
||||
"value": "<${ICINGA_HOSTNAME}/monitoring/service/show?host=${HOSTNAME}&service=${SERVICEDESC}|${SERVICEDISPLAYNAME}>",
|
||||
"short": true
|
||||
},
|
||||
{
|
||||
"title": "State",
|
||||
"value": "${SERVICESTATE}",
|
||||
"short": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
else
|
||||
|
||||
#Set the message icon based on ICINGA service state
|
||||
if [ "$SERVICESTATE" = "CRITICAL" ]
|
||||
then
|
||||
COLOR="danger"
|
||||
elif [ "$SERVICESTATE" = "WARNING" ]
|
||||
then
|
||||
COLOR="warning"
|
||||
elif [ "$SERVICESTATE" = "OK" ]
|
||||
then
|
||||
COLOR="good"
|
||||
elif [ "$SERVICESTATE" = "UNKNOWN" ]
|
||||
then
|
||||
COLOR="#800080"
|
||||
else
|
||||
COLOR=""
|
||||
fi
|
||||
|
||||
#Send message to Slack
|
||||
read -d '' PAYLOAD << EOF
|
||||
{
|
||||
"channel": "${SLACK_CHANNEL}",
|
||||
"username": "${SLACK_BOTNAME}",
|
||||
"attachments": [
|
||||
{
|
||||
"fallback": "${SERVICESTATE}: ${HOSTDISPLAYNAME} - ${SERVICEDISPLAYNAME}",
|
||||
"color": "${COLOR}",
|
||||
"fields": [
|
||||
{
|
||||
"title": "Service output",
|
||||
"value": "${SERVICEOUTPUT}",
|
||||
"short": false
|
||||
},
|
||||
{
|
||||
"title": "Host",
|
||||
"value": "<${ICINGA_HOSTNAME}/monitoring/host/services?host=${HOSTNAME}|${HOSTDISPLAYNAME}>",
|
||||
"short": true
|
||||
},
|
||||
{
|
||||
"title": "Service",
|
||||
"value": "<${ICINGA_HOSTNAME}/monitoring/service/show?host=${HOSTNAME}&service=${SERVICEDESC}|${SERVICEDISPLAYNAME}>",
|
||||
"short": true
|
||||
},
|
||||
{
|
||||
"title": "State",
|
||||
"value": "${SERVICESTATE}",
|
||||
"short": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
fi
|
||||
|
||||
curl --connect-timeout 30 --max-time 60 -s -S -X POST -H 'Content-type: application/json' --data "${PAYLOAD}" "${SLACK_WEBHOOK_URL}"
|
|
@ -0,0 +1 @@
|
|||
*
|
|
@ -0,0 +1,4 @@
|
|||
[graphite]
|
||||
metric_prefix = icinga
|
||||
url = https://vin.openfest.org:8443/render?
|
||||
args_template = "&target=$target$&source=0&width=300&height=120&hideAxes=true&lineWidth=1&hideLegend=true&hideAxes=false&colorList=049BAF&bgcolor=white&fgcolor=blue&minorLine=green"
|
Loading…
Reference in New Issue