From 578b37cd70cb97097424b776b771c9044343aecc Mon Sep 17 00:00:00 2001 From: mhoellein Date: Fri, 26 May 2023 11:44:50 +0200 Subject: [PATCH] saving uncommitted changes in /etc prior to apt run --- .etckeeper | 127 ------------ icinga2/conf.d/app.conf | 1 - icinga2/conf.d/apt.conf | 7 - icinga2/conf.d/commands.conf | 187 ------------------ icinga2/conf.d/downtimes.conf | 20 -- icinga2/conf.d/groups.conf | 37 ---- icinga2/conf.d/hosts.conf | 52 ----- icinga2/conf.d/notifications.conf | 33 ---- icinga2/conf.d/services.conf | 117 ----------- icinga2/conf.d/templates.conf | 83 -------- icinga2/conf.d/timeperiods.conf | 35 ---- icinga2/conf.d/users.conf | 17 -- icinga2/constants.conf | 28 --- icinga2/constants.conf.orig | 28 --- icinga2/features-available/api.conf | 7 - icinga2/features-available/api.conf.orig | 10 - icinga2/features-available/checker.conf | 5 - icinga2/features-available/command.conf | 7 - icinga2/features-available/compatlog.conf | 7 - icinga2/features-available/debuglog.conf | 10 - icinga2/features-available/elasticsearch.conf | 8 - icinga2/features-available/gelf.conf | 10 - icinga2/features-available/graphite.conf | 9 - icinga2/features-available/icingadb.conf | 5 - icinga2/features-available/influxdb.conf | 25 --- icinga2/features-available/influxdb2.conf | 27 --- icinga2/features-available/livestatus.conf | 6 - icinga2/features-available/mainlog.conf | 8 - icinga2/features-available/notification.conf | 5 - icinga2/features-available/opentsdb.conf | 25 --- icinga2/features-available/perfdata.conf | 6 - icinga2/features-available/statusdata.conf | 8 - icinga2/features-available/syslog.conf | 8 - icinga2/features-enabled/api.conf | 1 - icinga2/features-enabled/checker.conf | 1 - icinga2/features-enabled/mainlog.conf | 1 - icinga2/icinga2.conf | 15 -- icinga2/icinga2.conf.orig | 57 ------ icinga2/scripts/mail-host-notification.sh | 169 ---------------- icinga2/scripts/mail-service-notification.sh | 174 ---------------- icinga2/zones.conf | 31 --- icinga2/zones.conf.orig | 63 ------ icinga2/zones.d/README | 2 - 43 files changed, 1482 deletions(-) delete mode 100644 icinga2/conf.d/app.conf delete mode 100644 icinga2/conf.d/apt.conf delete mode 100644 icinga2/conf.d/commands.conf delete mode 100644 icinga2/conf.d/downtimes.conf delete mode 100644 icinga2/conf.d/groups.conf delete mode 100644 icinga2/conf.d/hosts.conf delete mode 100644 icinga2/conf.d/notifications.conf delete mode 100644 icinga2/conf.d/services.conf delete mode 100644 icinga2/conf.d/templates.conf delete mode 100644 icinga2/conf.d/timeperiods.conf delete mode 100644 icinga2/conf.d/users.conf delete mode 100644 icinga2/constants.conf delete mode 100644 icinga2/constants.conf.orig delete mode 100644 icinga2/features-available/api.conf delete mode 100644 icinga2/features-available/api.conf.orig delete mode 100644 icinga2/features-available/checker.conf delete mode 100644 icinga2/features-available/command.conf delete mode 100644 icinga2/features-available/compatlog.conf delete mode 100644 icinga2/features-available/debuglog.conf delete mode 100644 icinga2/features-available/elasticsearch.conf delete mode 100644 icinga2/features-available/gelf.conf delete mode 100644 icinga2/features-available/graphite.conf delete mode 100644 icinga2/features-available/icingadb.conf delete mode 100644 icinga2/features-available/influxdb.conf delete mode 100644 icinga2/features-available/influxdb2.conf delete mode 100644 icinga2/features-available/livestatus.conf delete mode 100644 icinga2/features-available/mainlog.conf delete mode 100644 icinga2/features-available/notification.conf delete mode 100644 icinga2/features-available/opentsdb.conf delete mode 100644 icinga2/features-available/perfdata.conf delete mode 100644 icinga2/features-available/statusdata.conf delete mode 100644 icinga2/features-available/syslog.conf delete mode 120000 icinga2/features-enabled/api.conf delete mode 120000 icinga2/features-enabled/checker.conf delete mode 120000 icinga2/features-enabled/mainlog.conf delete mode 100644 icinga2/icinga2.conf delete mode 100644 icinga2/icinga2.conf.orig delete mode 100755 icinga2/scripts/mail-host-notification.sh delete mode 100755 icinga2/scripts/mail-service-notification.sh delete mode 100644 icinga2/zones.conf delete mode 100644 icinga2/zones.conf.orig delete mode 100644 icinga2/zones.d/README diff --git a/.etckeeper b/.etckeeper index 6889278..2a6ccce 100755 --- a/.etckeeper +++ b/.etckeeper @@ -13,7 +13,6 @@ mkdir -p './dbus-1/session.d' mkdir -p './dpkg/dpkg.cfg.d' mkdir -p './fail2ban/fail2ban.d' mkdir -p './gss/mech.d' -mkdir -p './icinga2/pki' mkdir -p './initramfs-tools/conf.d' mkdir -p './initramfs-tools/hooks' mkdir -p './initramfs-tools/scripts/init-bottom' @@ -955,132 +954,6 @@ maybe chmod 0644 'hostname' maybe chmod 0644 'hosts' maybe chmod 0644 'hosts.allow' maybe chmod 0644 'hosts.deny' -maybe chown 'nagios' 'icinga2' -maybe chgrp 'nagios' 'icinga2' -maybe chmod 0750 'icinga2' -maybe chown 'nagios' 'icinga2/conf.d' -maybe chgrp 'nagios' 'icinga2/conf.d' -maybe chmod 0750 'icinga2/conf.d' -maybe chown 'nagios' 'icinga2/conf.d/app.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/app.conf' -maybe chmod 0644 'icinga2/conf.d/app.conf' -maybe chown 'nagios' 'icinga2/conf.d/apt.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/apt.conf' -maybe chmod 0644 'icinga2/conf.d/apt.conf' -maybe chown 'nagios' 'icinga2/conf.d/commands.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/commands.conf' -maybe chmod 0644 'icinga2/conf.d/commands.conf' -maybe chown 'nagios' 'icinga2/conf.d/downtimes.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/downtimes.conf' -maybe chmod 0644 'icinga2/conf.d/downtimes.conf' -maybe chown 'nagios' 'icinga2/conf.d/groups.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/groups.conf' -maybe chmod 0644 'icinga2/conf.d/groups.conf' -maybe chown 'nagios' 'icinga2/conf.d/hosts.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/hosts.conf' -maybe chmod 0644 'icinga2/conf.d/hosts.conf' -maybe chown 'nagios' 'icinga2/conf.d/notifications.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/notifications.conf' -maybe chmod 0644 'icinga2/conf.d/notifications.conf' -maybe chown 'nagios' 'icinga2/conf.d/services.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/services.conf' -maybe chmod 0644 'icinga2/conf.d/services.conf' -maybe chown 'nagios' 'icinga2/conf.d/templates.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/templates.conf' -maybe chmod 0644 'icinga2/conf.d/templates.conf' -maybe chown 'nagios' 'icinga2/conf.d/timeperiods.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/timeperiods.conf' -maybe chmod 0644 'icinga2/conf.d/timeperiods.conf' -maybe chown 'nagios' 'icinga2/conf.d/users.conf' -maybe chgrp 'nagios' 'icinga2/conf.d/users.conf' -maybe chmod 0644 'icinga2/conf.d/users.conf' -maybe chown 'nagios' 'icinga2/constants.conf' -maybe chgrp 'nagios' 'icinga2/constants.conf' -maybe chmod 0644 'icinga2/constants.conf' -maybe chown 'nagios' 'icinga2/constants.conf.orig' -maybe chgrp 'nagios' 'icinga2/constants.conf.orig' -maybe chmod 0640 'icinga2/constants.conf.orig' -maybe chown 'nagios' 'icinga2/features-available' -maybe chgrp 'nagios' 'icinga2/features-available' -maybe chmod 0750 'icinga2/features-available' -maybe chown 'nagios' 'icinga2/features-available/api.conf' -maybe chgrp 'nagios' 'icinga2/features-available/api.conf' -maybe chmod 0644 'icinga2/features-available/api.conf' -maybe chown 'nagios' 'icinga2/features-available/api.conf.orig' -maybe chgrp 'nagios' 'icinga2/features-available/api.conf.orig' -maybe chmod 0644 'icinga2/features-available/api.conf.orig' -maybe chown 'nagios' 'icinga2/features-available/checker.conf' -maybe chgrp 'nagios' 'icinga2/features-available/checker.conf' -maybe chmod 0644 'icinga2/features-available/checker.conf' -maybe chown 'nagios' 'icinga2/features-available/command.conf' -maybe chgrp 'nagios' 'icinga2/features-available/command.conf' -maybe chmod 0644 'icinga2/features-available/command.conf' -maybe chown 'nagios' 'icinga2/features-available/compatlog.conf' -maybe chgrp 'nagios' 'icinga2/features-available/compatlog.conf' -maybe chmod 0644 'icinga2/features-available/compatlog.conf' -maybe chown 'nagios' 'icinga2/features-available/debuglog.conf' -maybe chgrp 'nagios' 'icinga2/features-available/debuglog.conf' -maybe chmod 0644 'icinga2/features-available/debuglog.conf' -maybe chown 'nagios' 'icinga2/features-available/elasticsearch.conf' -maybe chgrp 'nagios' 'icinga2/features-available/elasticsearch.conf' -maybe chmod 0644 'icinga2/features-available/elasticsearch.conf' -maybe chown 'nagios' 'icinga2/features-available/gelf.conf' -maybe chgrp 'nagios' 'icinga2/features-available/gelf.conf' -maybe chmod 0644 'icinga2/features-available/gelf.conf' -maybe chown 'nagios' 'icinga2/features-available/graphite.conf' -maybe chgrp 'nagios' 'icinga2/features-available/graphite.conf' -maybe chmod 0644 'icinga2/features-available/graphite.conf' -maybe chown 'nagios' 'icinga2/features-available/icingadb.conf' -maybe chgrp 'nagios' 'icinga2/features-available/icingadb.conf' -maybe chmod 0644 'icinga2/features-available/icingadb.conf' -maybe chown 'nagios' 'icinga2/features-available/influxdb.conf' -maybe chgrp 'nagios' 'icinga2/features-available/influxdb.conf' -maybe chmod 0644 'icinga2/features-available/influxdb.conf' -maybe chown 'nagios' 'icinga2/features-available/influxdb2.conf' -maybe chgrp 'nagios' 'icinga2/features-available/influxdb2.conf' -maybe chmod 0644 'icinga2/features-available/influxdb2.conf' -maybe chown 'nagios' 'icinga2/features-available/livestatus.conf' -maybe chgrp 'nagios' 'icinga2/features-available/livestatus.conf' -maybe chmod 0644 'icinga2/features-available/livestatus.conf' -maybe chown 'nagios' 'icinga2/features-available/mainlog.conf' -maybe chgrp 'nagios' 'icinga2/features-available/mainlog.conf' -maybe chmod 0644 'icinga2/features-available/mainlog.conf' -maybe chown 'nagios' 'icinga2/features-available/notification.conf' -maybe chgrp 'nagios' 'icinga2/features-available/notification.conf' -maybe chmod 0644 'icinga2/features-available/notification.conf' -maybe chown 'nagios' 'icinga2/features-available/opentsdb.conf' -maybe chgrp 'nagios' 'icinga2/features-available/opentsdb.conf' -maybe chmod 0644 'icinga2/features-available/opentsdb.conf' -maybe chown 'nagios' 'icinga2/features-available/perfdata.conf' -maybe chgrp 'nagios' 'icinga2/features-available/perfdata.conf' -maybe chmod 0644 'icinga2/features-available/perfdata.conf' -maybe chown 'nagios' 'icinga2/features-available/statusdata.conf' -maybe chgrp 'nagios' 'icinga2/features-available/statusdata.conf' -maybe chmod 0644 'icinga2/features-available/statusdata.conf' -maybe chown 'nagios' 'icinga2/features-available/syslog.conf' -maybe chgrp 'nagios' 'icinga2/features-available/syslog.conf' -maybe chmod 0644 'icinga2/features-available/syslog.conf' -maybe chown 'nagios' 'icinga2/features-enabled' -maybe chgrp 'nagios' 'icinga2/features-enabled' -maybe chmod 0750 'icinga2/features-enabled' -maybe chown 'nagios' 'icinga2/icinga2.conf' -maybe chgrp 'nagios' 'icinga2/icinga2.conf' -maybe chmod 0644 'icinga2/icinga2.conf' -maybe chmod 0644 'icinga2/icinga2.conf.orig' -maybe chown 'nagios' 'icinga2/pki' -maybe chgrp 'nagios' 'icinga2/pki' -maybe chmod 0700 'icinga2/pki' -maybe chmod 0755 'icinga2/scripts' -maybe chmod 0755 'icinga2/scripts/mail-host-notification.sh' -maybe chmod 0755 'icinga2/scripts/mail-service-notification.sh' -maybe chown 'nagios' 'icinga2/zones.conf' -maybe chgrp 'nagios' 'icinga2/zones.conf' -maybe chmod 0644 'icinga2/zones.conf' -maybe chmod 0644 'icinga2/zones.conf.orig' -maybe chown 'nagios' 'icinga2/zones.d' -maybe chgrp 'nagios' 'icinga2/zones.d' -maybe chmod 0750 'icinga2/zones.d' -maybe chmod 0644 'icinga2/zones.d/README' maybe chmod 0755 'init' maybe chmod 0755 'init.d' maybe chmod 0755 'init.d/acpid' diff --git a/icinga2/conf.d/app.conf b/icinga2/conf.d/app.conf deleted file mode 100644 index 3e4be0d..0000000 --- a/icinga2/conf.d/app.conf +++ /dev/null @@ -1 +0,0 @@ -object IcingaApplication "app" { } diff --git a/icinga2/conf.d/apt.conf b/icinga2/conf.d/apt.conf deleted file mode 100644 index b2c77a0..0000000 --- a/icinga2/conf.d/apt.conf +++ /dev/null @@ -1,7 +0,0 @@ -apply Service "apt" { - import "generic-service" - - check_command = "apt" - - assign where host.name == NodeName -} diff --git a/icinga2/conf.d/commands.conf b/icinga2/conf.d/commands.conf deleted file mode 100644 index bd511ce..0000000 --- a/icinga2/conf.d/commands.conf +++ /dev/null @@ -1,187 +0,0 @@ -/* Command objects */ - -/* Notification Commands - * - * Please check the documentation for all required and - * optional parameters. - */ - -object NotificationCommand "mail-host-notification" { - command = [ ConfigDir + "/scripts/mail-host-notification.sh" ] - - arguments += { - "-4" = "$notification_address$" - "-6" = "$notification_address6$" - "-b" = "$notification_author$" - "-c" = "$notification_comment$" - "-d" = { - required = true - value = "$notification_date$" - } - "-f" = { - value = "$notification_from$" - description = "Set from address. Requires GNU mailutils (Debian/Ubuntu) or mailx (RHEL/SUSE)" - } - "-i" = "$notification_icingaweb2url$" - "-l" = { - required = true - value = "$notification_hostname$" - } - "-n" = { - required = true - value = "$notification_hostdisplayname$" - } - "-o" = { - required = true - value = "$notification_hostoutput$" - } - "-r" = { - required = true - value = "$notification_useremail$" - } - "-s" = { - required = true - value = "$notification_hoststate$" - } - "-t" = { - required = true - value = "$notification_type$" - } - "-v" = "$notification_logtosyslog$" - } - - vars += { - notification_address = "$address$" - notification_address6 = "$address6$" - notification_author = "$notification.author$" - notification_comment = "$notification.comment$" - notification_type = "$notification.type$" - notification_date = "$icinga.long_date_time$" - notification_hostname = "$host.name$" - notification_hostdisplayname = "$host.display_name$" - notification_hostoutput = "$host.output$" - notification_hoststate = "$host.state$" - notification_useremail = "$user.email$" - } -} - -object NotificationCommand "mail-service-notification" { - command = [ ConfigDir + "/scripts/mail-service-notification.sh" ] - - arguments += { - "-4" = "$notification_address$" - "-6" = "$notification_address6$" - "-b" = "$notification_author$" - "-c" = "$notification_comment$" - "-d" = { - required = true - value = "$notification_date$" - } - "-e" = { - required = true - value = "$notification_servicename$" - } - "-f" = { - value = "$notification_from$" - description = "Set from address. Requires GNU mailutils (Debian/Ubuntu) or mailx (RHEL/SUSE)" - } - "-i" = "$notification_icingaweb2url$" - "-l" = { - required = true - value = "$notification_hostname$" - } - "-n" = { - required = true - value = "$notification_hostdisplayname$" - } - "-o" = { - required = true - value = "$notification_serviceoutput$" - } - "-r" = { - required = true - value = "$notification_useremail$" - } - "-s" = { - required = true - value = "$notification_servicestate$" - } - "-t" = { - required = true - value = "$notification_type$" - } - "-u" = { - required = true - value = "$notification_servicedisplayname$" - } - "-v" = "$notification_logtosyslog$" - } - - vars += { - notification_address = "$address$" - notification_address6 = "$address6$" - notification_author = "$notification.author$" - notification_comment = "$notification.comment$" - notification_type = "$notification.type$" - notification_date = "$icinga.long_date_time$" - notification_hostname = "$host.name$" - notification_hostdisplayname = "$host.display_name$" - notification_servicename = "$service.name$" - notification_serviceoutput = "$service.output$" - notification_servicestate = "$service.state$" - notification_useremail = "$user.email$" - notification_servicedisplayname = "$service.display_name$" - } -} - -/* - * If you prefer to use the notification scripts with environment - * variables instead of command line parameters, you can use - * the following commands. They have been updated from < 2.7 - * to support the new notification scripts and should help - * with an upgrade. - * Remove the comment blocks and comment the notification commands above. - */ - -/* - -object NotificationCommand "mail-host-notification" { - command = [ ConfigDir + "/scripts/mail-host-notification.sh" ] - - env = { - NOTIFICATIONTYPE = "$notification.type$" - HOSTDISPLAYNAME = "$host.display_name$" - HOSTNAME = "$host.name$" - HOSTADDRESS = "$address$" - HOSTSTATE = "$host.state$" - LONGDATETIME = "$icinga.long_date_time$" - HOSTOUTPUT = "$host.output$" - NOTIFICATIONAUTHORNAME = "$notification.author$" - NOTIFICATIONCOMMENT = "$notification.comment$" - HOSTDISPLAYNAME = "$host.display_name$" - USEREMAIL = "$user.email$" - } -} - -object NotificationCommand "mail-service-notification" { - command = [ ConfigDir + "/scripts/mail-service-notification.sh" ] - - env = { - NOTIFICATIONTYPE = "$notification.type$" - SERVICENAME = "$service.name$" - HOSTNAME = "$host.name$" - HOSTDISPLAYNAME = "$host.display_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$" - USEREMAIL = "$user.email$" - } -} - -*/ - diff --git a/icinga2/conf.d/downtimes.conf b/icinga2/conf.d/downtimes.conf deleted file mode 100644 index 0bed647..0000000 --- a/icinga2/conf.d/downtimes.conf +++ /dev/null @@ -1,20 +0,0 @@ -/** - * The example downtime apply rule. - */ - -apply ScheduledDowntime "backup-downtime" to Service { - author = "icingaadmin" - comment = "Scheduled downtime for backup" - - ranges = { - monday = service.vars.backup_downtime - tuesday = service.vars.backup_downtime - wednesday = service.vars.backup_downtime - thursday = service.vars.backup_downtime - friday = service.vars.backup_downtime - saturday = service.vars.backup_downtime - sunday = service.vars.backup_downtime - } - - assign where service.vars.backup_downtime != "" -} diff --git a/icinga2/conf.d/groups.conf b/icinga2/conf.d/groups.conf deleted file mode 100644 index e6004a3..0000000 --- a/icinga2/conf.d/groups.conf +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Host group examples. - */ - -object HostGroup "linux-servers" { - display_name = "Linux Servers" - - assign where host.vars.os == "Linux" -} - -object HostGroup "windows-servers" { - display_name = "Windows Servers" - - assign where host.vars.os == "Windows" -} - -/** - * Service group examples. - */ - -object ServiceGroup "ping" { - display_name = "Ping Checks" - - assign where match("ping*", service.name) -} - -object ServiceGroup "http" { - display_name = "HTTP Checks" - - assign where match("http*", service.check_command) -} - -object ServiceGroup "disk" { - display_name = "Disk Checks" - - assign where match("disk*", service.check_command) -} diff --git a/icinga2/conf.d/hosts.conf b/icinga2/conf.d/hosts.conf deleted file mode 100644 index 0118f03..0000000 --- a/icinga2/conf.d/hosts.conf +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Host definitions with object attributes - * used for apply rules for Service, Notification, - * Dependency and ScheduledDowntime objects. - * - * Tip: Use `icinga2 object list --type Host` to - * list all host objects after running - * configuration validation (`icinga2 daemon -C`). - */ - -/* - * This is an example host based on your - * local host's FQDN. Specify the NodeName - * constant in `constants.conf` or use your - * own description, e.g. "db-host-1". - */ - -object Host NodeName { - /* Import the default host template defined in `templates.conf`. */ - import "generic-host" - - /* Specify the address attributes for checks e.g. `ssh` or `http`. */ - address = "127.0.0.1" - address6 = "::1" - - /* Set custom variable `os` for hostgroup assignment in `groups.conf`. */ - vars.os = "Linux" - - /* Define http vhost attributes for service apply rules in `services.conf`. */ - vars.http_vhosts["http"] = { - http_uri = "/" - } - /* Uncomment if you've sucessfully installed Icinga Web 2. */ - //vars.http_vhosts["Icinga Web 2"] = { - // http_uri = "/icingaweb2" - //} - - /* Define disks and attributes for service apply rules in `services.conf`. */ - vars.disks["disk"] = { - /* No parameters. */ - } - vars.disks["disk /"] = { - disk_partitions = "/" - } - - /* Define notification mail attributes for notification apply rules in `notifications.conf`. */ - vars.notification["mail"] = { - /* The UserGroup `icingaadmins` is defined in `users.conf`. */ - groups = [ "icingaadmins" ] - } -} - diff --git a/icinga2/conf.d/notifications.conf b/icinga2/conf.d/notifications.conf deleted file mode 100644 index ac65875..0000000 --- a/icinga2/conf.d/notifications.conf +++ /dev/null @@ -1,33 +0,0 @@ -/** - * The example notification apply rules. - * - * Only applied if host/service objects have - * the custom variable `notification` defined - * and containing `mail` as key. - * - * 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 - - //interval = 2h - - //vars.notification_logtosyslog = true - - 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 - - //interval = 2h - - //vars.notification_logtosyslog = true - - assign where host.vars.notification.mail -} diff --git a/icinga2/conf.d/services.conf b/icinga2/conf.d/services.conf deleted file mode 100644 index c8e1b3c..0000000 --- a/icinga2/conf.d/services.conf +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Service apply rules. - * - * The CheckCommand objects `ping4`, `ping6`, etc - * are provided by the plugin check command templates. - * Check the documentation for details. - * - * Tip: Use `icinga2 object list --type Service` to - * list all service objects after running - * configuration validation (`icinga2 daemon -C`). - */ - -/* - * This is an example host based on your - * local host's FQDN. Specify the NodeName - * constant in `constants.conf` or use your - * own description, e.g. "db-host-1". - */ - -/* - * These are generic `ping4` and `ping6` - * checks applied to all hosts having the - * `address` resp. `address6` attribute - * defined. - */ -apply Service "ping4" { - import "generic-service" - - check_command = "ping4" - - assign where host.address -} - -apply Service "ping6" { - import "generic-service" - - check_command = "ping6" - - assign where host.address6 -} - -/* - * Apply the `ssh` service to all hosts - * with the `address` attribute defined and - * the custom variable `os` set to `Linux`. - */ -apply Service "ssh" { - import "generic-service" - - check_command = "ssh" - - assign where (host.address || host.address6) && host.vars.os == "Linux" -} - - - -apply Service for (http_vhost => config in host.vars.http_vhosts) { - import "generic-service" - - check_command = "http" - - vars += config -} - -apply Service for (disk => config in host.vars.disks) { - import "generic-service" - - check_command = "disk" - - vars += config -} - -apply Service "icinga" { - import "generic-service" - - check_command = "icinga" - - assign where host.name == NodeName -} - -apply Service "load" { - import "generic-service" - - check_command = "load" - - /* Used by the ScheduledDowntime apply rule in `downtimes.conf`. */ - vars.backup_downtime = "02:00-03:00" - - assign where host.name == NodeName -} - -apply Service "procs" { - import "generic-service" - - check_command = "procs" - - assign where host.name == NodeName -} - -apply Service "swap" { - import "generic-service" - - check_command = "swap" - - assign where host.name == NodeName -} - -apply Service "users" { - import "generic-service" - - check_command = "users" - - assign where host.name == NodeName -} - - - diff --git a/icinga2/conf.d/templates.conf b/icinga2/conf.d/templates.conf deleted file mode 100644 index 5655e3f..0000000 --- a/icinga2/conf.d/templates.conf +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Generic template examples. - */ - - -/** - * Provides default settings for hosts. By convention - * all hosts should import this template. - * - * The CheckCommand object `hostalive` is provided by - * the plugin check command templates. - * Check the documentation for details. - */ -template Host "generic-host" { - max_check_attempts = 3 - check_interval = 1m - retry_interval = 30s - - check_command = "hostalive" -} - -/** - * Provides default settings for services. By convention - * all services should import this template. - */ -template Service "generic-service" { - max_check_attempts = 5 - check_interval = 1m - retry_interval = 30s -} - -/** - * Provides default settings for users. By convention - * all users should inherit from this template. - */ - -template User "generic-user" { - -} - -/** - * Provides default settings for host notifications. - * By convention all host notifications should import - * this template. - */ -template Notification "mail-host-notification" { - command = "mail-host-notification" - - states = [ Up, Down ] - types = [ Problem, Acknowledgement, Recovery, Custom, - FlappingStart, FlappingEnd, - DowntimeStart, DowntimeEnd, DowntimeRemoved ] - - vars += { - // notification_icingaweb2url = "https://www.example.com/icingaweb2" - // notification_from = "Icinga 2 Host Monitoring " - notification_logtosyslog = false - } - - period = "24x7" -} - -/** - * Provides default settings for service notifications. - * By convention all service notifications should import - * this template. - */ -template Notification "mail-service-notification" { - command = "mail-service-notification" - - states = [ OK, Warning, Critical, Unknown ] - types = [ Problem, Acknowledgement, Recovery, Custom, - FlappingStart, FlappingEnd, - DowntimeStart, DowntimeEnd, DowntimeRemoved ] - - vars += { - // notification_icingaweb2url = "https://www.example.com/icingaweb2" - // notification_from = "Icinga 2 Service Monitoring " - notification_logtosyslog = false - } - - period = "24x7" -} diff --git a/icinga2/conf.d/timeperiods.conf b/icinga2/conf.d/timeperiods.conf deleted file mode 100644 index ea162ff..0000000 --- a/icinga2/conf.d/timeperiods.conf +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Sample timeperiods for Icinga 2. - * Check the documentation for details. - */ - -object TimePeriod "24x7" { - display_name = "Icinga 2 24x7 TimePeriod" - ranges = { - "monday" = "00:00-24:00" - "tuesday" = "00:00-24:00" - "wednesday" = "00:00-24:00" - "thursday" = "00:00-24:00" - "friday" = "00:00-24:00" - "saturday" = "00:00-24:00" - "sunday" = "00:00-24:00" - } -} - -object TimePeriod "9to5" { - display_name = "Icinga 2 9to5 TimePeriod" - ranges = { - "monday" = "09:00-17:00" - "tuesday" = "09:00-17:00" - "wednesday" = "09:00-17:00" - "thursday" = "09:00-17:00" - "friday" = "09:00-17:00" - } -} - -object TimePeriod "never" { - display_name = "Icinga 2 never TimePeriod" - ranges = { - } -} - diff --git a/icinga2/conf.d/users.conf b/icinga2/conf.d/users.conf deleted file mode 100644 index aa31e27..0000000 --- a/icinga2/conf.d/users.conf +++ /dev/null @@ -1,17 +0,0 @@ -/** - * The example user 'icingaadmin' and the example - * group 'icingaadmins'. - */ - -object User "icingaadmin" { - import "generic-user" - - display_name = "Icinga 2 Admin" - groups = [ "icingaadmins" ] - - email = "root@localhost" -} - -object UserGroup "icingaadmins" { - display_name = "Icinga 2 Admin Group" -} diff --git a/icinga2/constants.conf b/icinga2/constants.conf deleted file mode 100644 index a665fe2..0000000 --- a/icinga2/constants.conf +++ /dev/null @@ -1,28 +0,0 @@ -/** - * This file defines global constants which can be used in - * the other configuration files. - */ - -/* The directory which contains the plugins from the Monitoring Plugins project. */ -const PluginDir = "/usr/lib/nagios/plugins" - -/* The directory which contains the Manubulon plugins. - * Check the documentation, chapter "SNMP Manubulon Plugin Check Commands", for details. - */ -const ManubulonPluginDir = "/usr/lib/nagios/plugins" - -/* The directory which you use to store additional plugins which ITL provides user contributed command definitions for. - * Check the documentation, chapter "Plugins Contribution", for details. - */ -const PluginContribDir = "/usr/lib/nagios/plugins" - -/* Our local instance name. By default this is the server's hostname as returned by `hostname --fqdn`. - * This should be the common name from the API certificate. - */ -const NodeName = "vserver2.hoellein.online" - -/* Our local zone name. */ -const ZoneName = "vserver2.hoellein.online" - -/* Secret key for remote node tickets */ -const TicketSalt = "" diff --git a/icinga2/constants.conf.orig b/icinga2/constants.conf.orig deleted file mode 100644 index 29232d6..0000000 --- a/icinga2/constants.conf.orig +++ /dev/null @@ -1,28 +0,0 @@ -/** - * This file defines global constants which can be used in - * the other configuration files. - */ - -/* The directory which contains the plugins from the Monitoring Plugins project. */ -const PluginDir = "/usr/lib/nagios/plugins" - -/* The directory which contains the Manubulon plugins. - * Check the documentation, chapter "SNMP Manubulon Plugin Check Commands", for details. - */ -const ManubulonPluginDir = "/usr/lib/nagios/plugins" - -/* The directory which you use to store additional plugins which ITL provides user contributed command definitions for. - * Check the documentation, chapter "Plugins Contribution", for details. - */ -const PluginContribDir = "/usr/lib/nagios/plugins" - -/* Our local instance name. By default this is the server's hostname as returned by `hostname --fqdn`. - * This should be the common name from the API certificate. - */ -//const NodeName = "localhost" - -/* Our local zone name. */ -const ZoneName = NodeName - -/* Secret key for remote node tickets */ -const TicketSalt = "" diff --git a/icinga2/features-available/api.conf b/icinga2/features-available/api.conf deleted file mode 100644 index 6d479ba..0000000 --- a/icinga2/features-available/api.conf +++ /dev/null @@ -1,7 +0,0 @@ -/** - * The API listener is used for distributed monitoring setups. - */ -object ApiListener "api" { - accept_config = true - accept_commands = true -} diff --git a/icinga2/features-available/api.conf.orig b/icinga2/features-available/api.conf.orig deleted file mode 100644 index b072a44..0000000 --- a/icinga2/features-available/api.conf.orig +++ /dev/null @@ -1,10 +0,0 @@ -/** - * The API listener is used for distributed monitoring setups. - */ - -object ApiListener "api" { - //accept_config = false - //accept_commands = false - - ticket_salt = TicketSalt -} diff --git a/icinga2/features-available/checker.conf b/icinga2/features-available/checker.conf deleted file mode 100644 index 6f003b8..0000000 --- a/icinga2/features-available/checker.conf +++ /dev/null @@ -1,5 +0,0 @@ -/** - * The checker component takes care of executing service checks. - */ - -object CheckerComponent "checker" { } diff --git a/icinga2/features-available/command.conf b/icinga2/features-available/command.conf deleted file mode 100644 index ffdd143..0000000 --- a/icinga2/features-available/command.conf +++ /dev/null @@ -1,7 +0,0 @@ -/** - * The ExternalCommandListener implements support for the external - * commands pipe. - */ - -object ExternalCommandListener "command" { } - diff --git a/icinga2/features-available/compatlog.conf b/icinga2/features-available/compatlog.conf deleted file mode 100644 index 6f5cf5f..0000000 --- a/icinga2/features-available/compatlog.conf +++ /dev/null @@ -1,7 +0,0 @@ -/** - * The CompatLogger type is responsible for writing log files in a format - * that is compatible with Icinga 1.x. - */ - -object CompatLogger "compatlog" { } - diff --git a/icinga2/features-available/debuglog.conf b/icinga2/features-available/debuglog.conf deleted file mode 100644 index e66518f..0000000 --- a/icinga2/features-available/debuglog.conf +++ /dev/null @@ -1,10 +0,0 @@ -/** - * The FileLogger type writes log information to a log file. - * Unlike the mainlog feature this sets up a logger - * with severity "debug". - */ - -object FileLogger "debug-file" { - severity = "debug" - path = LogDir + "/debug.log" -} diff --git a/icinga2/features-available/elasticsearch.conf b/icinga2/features-available/elasticsearch.conf deleted file mode 100644 index 8014913..0000000 --- a/icinga2/features-available/elasticsearch.conf +++ /dev/null @@ -1,8 +0,0 @@ -object ElasticsearchWriter "elasticsearch" { - //host = "127.0.0.1" - //port = 9200 - //index = "icinga2" - //enable_send_perfdata = false - //flush_threshold = 1024 - //flush_interval = 10s -} diff --git a/icinga2/features-available/gelf.conf b/icinga2/features-available/gelf.conf deleted file mode 100644 index c14c864..0000000 --- a/icinga2/features-available/gelf.conf +++ /dev/null @@ -1,10 +0,0 @@ -/** - * The GelfWriter type writes event log entries - * to a GELF tcp socket provided by Graylog, - * Logstash or any other receiver. - */ - -object GelfWriter "gelf" { - //host = "127.0.0.1" - //port = 12201 -} diff --git a/icinga2/features-available/graphite.conf b/icinga2/features-available/graphite.conf deleted file mode 100644 index ae8a928..0000000 --- a/icinga2/features-available/graphite.conf +++ /dev/null @@ -1,9 +0,0 @@ -/** - * The GraphiteWriter type writes check result metrics and - * performance data to a graphite tcp socket. - */ - -object GraphiteWriter "graphite" { - //host = "127.0.0.1" - //port = 2003 -} diff --git a/icinga2/features-available/icingadb.conf b/icinga2/features-available/icingadb.conf deleted file mode 100644 index 9951c83..0000000 --- a/icinga2/features-available/icingadb.conf +++ /dev/null @@ -1,5 +0,0 @@ -object IcingaDB "icingadb" { - //host = "127.0.0.1" - //port = 6380 - //password = "xxx" -} diff --git a/icinga2/features-available/influxdb.conf b/icinga2/features-available/influxdb.conf deleted file mode 100644 index f0af37b..0000000 --- a/icinga2/features-available/influxdb.conf +++ /dev/null @@ -1,25 +0,0 @@ -/** - * The InfluxdbWriter type writes check result metrics and - * performance data to an InfluxDB v1 HTTP API - */ - -object InfluxdbWriter "influxdb" { - //host = "127.0.0.1" - //port = 8086 - //database = "icinga2" - //flush_threshold = 1024 - //flush_interval = 10s - //host_template = { - // measurement = "$host.check_command$" - // tags = { - // hostname = "$host.name$" - // } - //} - //service_template = { - // measurement = "$service.check_command$" - // tags = { - // hostname = "$host.name$" - // service = "$service.name$" - // } - //} -} diff --git a/icinga2/features-available/influxdb2.conf b/icinga2/features-available/influxdb2.conf deleted file mode 100644 index 53f7a21..0000000 --- a/icinga2/features-available/influxdb2.conf +++ /dev/null @@ -1,27 +0,0 @@ -/** - * The Influxdb2Writer type writes check result metrics and - * performance data to an InfluxDB v2 HTTP API - */ - -object Influxdb2Writer "influxdb2" { - //host = "127.0.0.1" - //port = 8086 - //organization = "monitoring" - //bucket = "icinga2" - //auth_token = "ABCDEvwxyz0189-_" - //flush_threshold = 1024 - //flush_interval = 10s - //host_template = { - // measurement = "$host.check_command$" - // tags = { - // hostname = "$host.name$" - // } - //} - //service_template = { - // measurement = "$service.check_command$" - // tags = { - // hostname = "$host.name$" - // service = "$service.name$" - // } - //} -} diff --git a/icinga2/features-available/livestatus.conf b/icinga2/features-available/livestatus.conf deleted file mode 100644 index 246c085..0000000 --- a/icinga2/features-available/livestatus.conf +++ /dev/null @@ -1,6 +0,0 @@ -/** - * The LivestatusListener type implements the Livestatus query protocol. - */ - -object LivestatusListener "livestatus" { } - diff --git a/icinga2/features-available/mainlog.conf b/icinga2/features-available/mainlog.conf deleted file mode 100644 index a3bb19d..0000000 --- a/icinga2/features-available/mainlog.conf +++ /dev/null @@ -1,8 +0,0 @@ -/** - * The FileLogger type writes log information to a file. - */ - -object FileLogger "main-log" { - severity = "information" - path = LogDir + "/icinga2.log" -} diff --git a/icinga2/features-available/notification.conf b/icinga2/features-available/notification.conf deleted file mode 100644 index 3f9a88e..0000000 --- a/icinga2/features-available/notification.conf +++ /dev/null @@ -1,5 +0,0 @@ -/** - * The notification component is responsible for sending notifications. - */ - -object NotificationComponent "notification" { } diff --git a/icinga2/features-available/opentsdb.conf b/icinga2/features-available/opentsdb.conf deleted file mode 100644 index 471a622..0000000 --- a/icinga2/features-available/opentsdb.conf +++ /dev/null @@ -1,25 +0,0 @@ -/** - * The OpenTsdbWriter type writes check result metrics and - * performance data to a OpenTSDB tcp socket. - */ - -object OpenTsdbWriter "opentsdb" { - //host = "127.0.0.1" - //port = 4242 - //enable_generic_metrics = false - - // Custom Tagging, refer to Icinga object type documentation for - // OpenTsdbWriter - //host_template = { - // metric = "icinga.host" - // tags = { - // zone = "$host.zone$" - // } - //} - //service_template = { - // metric = "icinga.service.$service.check_command$" - // tags = { - // zone = "$service.zone$" - // } - //} -} diff --git a/icinga2/features-available/perfdata.conf b/icinga2/features-available/perfdata.conf deleted file mode 100644 index 3ba8635..0000000 --- a/icinga2/features-available/perfdata.conf +++ /dev/null @@ -1,6 +0,0 @@ -/** - * The PerfdataWriter type writes performance data files and rotates - * them in a regular interval. - */ - -object PerfdataWriter "perfdata" { } diff --git a/icinga2/features-available/statusdata.conf b/icinga2/features-available/statusdata.conf deleted file mode 100644 index bb81c96..0000000 --- a/icinga2/features-available/statusdata.conf +++ /dev/null @@ -1,8 +0,0 @@ -/** - * The StatusDataWriter type periodically updates the status.dat and objects.cache - * files. These are used by the Icinga 1.x CGIs to display the state of - * hosts and services. - */ - -object StatusDataWriter "status" { } - diff --git a/icinga2/features-available/syslog.conf b/icinga2/features-available/syslog.conf deleted file mode 100644 index 3b794b4..0000000 --- a/icinga2/features-available/syslog.conf +++ /dev/null @@ -1,8 +0,0 @@ -/** - * The SyslogLogger type writes log information to syslog. - */ - -object SyslogLogger "syslog" { - severity = "warning" -} - diff --git a/icinga2/features-enabled/api.conf b/icinga2/features-enabled/api.conf deleted file mode 120000 index 8cdce62..0000000 --- a/icinga2/features-enabled/api.conf +++ /dev/null @@ -1 +0,0 @@ -../features-available/api.conf \ No newline at end of file diff --git a/icinga2/features-enabled/checker.conf b/icinga2/features-enabled/checker.conf deleted file mode 120000 index d51cf79..0000000 --- a/icinga2/features-enabled/checker.conf +++ /dev/null @@ -1 +0,0 @@ -../features-available/checker.conf \ No newline at end of file diff --git a/icinga2/features-enabled/mainlog.conf b/icinga2/features-enabled/mainlog.conf deleted file mode 120000 index 6bda4a5..0000000 --- a/icinga2/features-enabled/mainlog.conf +++ /dev/null @@ -1 +0,0 @@ -../features-available/mainlog.conf \ No newline at end of file diff --git a/icinga2/icinga2.conf b/icinga2/icinga2.conf deleted file mode 100644 index 2f8e567..0000000 --- a/icinga2/icinga2.conf +++ /dev/null @@ -1,15 +0,0 @@ -/** Icinga 2 Config - proposed by Icinga Director */ - -include "constants.conf" - -const NodeName = "vserver2.hoellein.online" - -include "zones.conf" -include "features-enabled/*.conf" - -include -include -include -include -include -include diff --git a/icinga2/icinga2.conf.orig b/icinga2/icinga2.conf.orig deleted file mode 100644 index 17513a3..0000000 --- a/icinga2/icinga2.conf.orig +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Icinga 2 configuration file - * - this is where you define settings for the Icinga application including - * which hosts/services to check. - * - * For an overview of all available configuration options please refer - * to the documentation that is distributed as part of Icinga 2. - */ - -/** - * The constants.conf defines global constants. - */ -include "constants.conf" - -/** - * The zones.conf defines zones for a cluster setup. - * Not required for single instance setups. - */ -include "zones.conf" - -/** - * The Icinga Template Library (ITL) provides a number of useful templates - * and command definitions. - * Common monitoring plugin command definitions are included separately. - */ -include -include -include -include - -/** - * This includes the Icinga 2 Windows plugins. These command definitions - * are required on a master node when a client is used as command endpoint. - */ -include - -/** - * This includes the NSClient++ check commands. These command definitions - * are required on a master node when a client is used as command endpoint. - */ -include - -/** - * The features-available directory contains a number of configuration - * files for features which can be enabled and disabled using the - * icinga2 feature enable / icinga2 feature disable CLI commands. - * These commands work by creating and removing symbolic links in - * the features-enabled directory. - */ -include "features-enabled/*.conf" - -/** - * Although in theory you could define all your objects in this file - * the preferred way is to create separate directories and files in the conf.d - * directory. Each of these files must have the file extension ".conf". - */ -include_recursive "conf.d" diff --git a/icinga2/scripts/mail-host-notification.sh b/icinga2/scripts/mail-host-notification.sh deleted file mode 100755 index 744481a..0000000 --- a/icinga2/scripts/mail-host-notification.sh +++ /dev/null @@ -1,169 +0,0 @@ -#!/usr/bin/env bash -# Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ -# Except of function urlencode which is Copyright (C) by Brian White (brian@aljex.com) used under MIT license - -PROG="`basename $0`" -ICINGA2HOST="`hostname`" -MAILBIN="mail" - -if [ -z "`which $MAILBIN`" ] ; then - echo "$MAILBIN not found in \$PATH. Consider installing it." - exit 1 -fi - -## Function helpers -Usage() { -cat << EOF - -Required parameters: - -d LONGDATETIME (\$icinga.long_date_time\$) - -l HOSTNAME (\$host.name\$) - -n HOSTDISPLAYNAME (\$host.display_name\$) - -o HOSTOUTPUT (\$host.output\$) - -r USEREMAIL (\$user.email\$) - -s HOSTSTATE (\$host.state\$) - -t NOTIFICATIONTYPE (\$notification.type\$) - -Optional parameters: - -4 HOSTADDRESS (\$address\$) - -6 HOSTADDRESS6 (\$address6\$) - -b NOTIFICATIONAUTHORNAME (\$notification.author\$) - -c NOTIFICATIONCOMMENT (\$notification.comment\$) - -i ICINGAWEB2URL (\$notification_icingaweb2url\$, Default: unset) - -f MAILFROM (\$notification_mailfrom\$, requires GNU mailutils (Debian/Ubuntu) or mailx (RHEL/SUSE)) - -v (\$notification_sendtosyslog\$, Default: false) - -EOF -} - -Help() { - Usage; - exit 0; -} - -Error() { - if [ "$1" ]; then - echo $1 - fi - Usage; - exit 1; -} - -urlencode() { - local LANG=C i=0 c e s="$1" - - while [ $i -lt ${#1} ]; do - [ "$i" -eq 0 ] || s="${s#?}" - c=${s%"${s#?}"} - [ -z "${c#[[:alnum:].~_-]}" ] || c=$(printf '%%%02X' "'$c") - e="${e}${c}" - i=$((i + 1)) - done - echo "$e" -} - -## Main -while getopts 4:6::b:c:d:f:hi:l:n:o:r:s:t:v: opt -do - case "$opt" in - 4) HOSTADDRESS=$OPTARG ;; - 6) HOSTADDRESS6=$OPTARG ;; - b) NOTIFICATIONAUTHORNAME=$OPTARG ;; - c) NOTIFICATIONCOMMENT=$OPTARG ;; - d) LONGDATETIME=$OPTARG ;; # required - f) MAILFROM=$OPTARG ;; - h) Help ;; - i) ICINGAWEB2URL=$OPTARG ;; - l) HOSTNAME=$OPTARG ;; # required - n) HOSTDISPLAYNAME=$OPTARG ;; # required - o) HOSTOUTPUT=$OPTARG ;; # required - r) USEREMAIL=$OPTARG ;; # required - s) HOSTSTATE=$OPTARG ;; # required - t) NOTIFICATIONTYPE=$OPTARG ;; # required - v) VERBOSE=$OPTARG ;; - \?) echo "ERROR: Invalid option -$OPTARG" >&2 - Error ;; - :) echo "Missing option argument for -$OPTARG" >&2 - Error ;; - *) echo "Unimplemented option: -$OPTARG" >&2 - Error ;; - esac -done - -shift $((OPTIND - 1)) - -## Keep formatting in sync with mail-service-notification.sh -for P in LONGDATETIME HOSTNAME HOSTDISPLAYNAME HOSTOUTPUT HOSTSTATE USEREMAIL NOTIFICATIONTYPE ; do - eval "PAR=\$${P}" - - if [ ! "$PAR" ] ; then - Error "Required parameter '$P' is missing." - fi -done - -## Build the message's subject -SUBJECT="[$NOTIFICATIONTYPE] Host $HOSTDISPLAYNAME is $HOSTSTATE!" - -## Build the notification message -NOTIFICATION_MESSAGE=`cat << EOF -***** Host Monitoring on $ICINGA2HOST ***** - -$HOSTDISPLAYNAME is $HOSTSTATE! - -Info: $HOSTOUTPUT - -When: $LONGDATETIME -Host: $HOSTNAME -EOF -` - -## Check whether IPv4 was specified. -if [ -n "$HOSTADDRESS" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE -IPv4: $HOSTADDRESS" -fi - -## Check whether IPv6 was specified. -if [ -n "$HOSTADDRESS6" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE -IPv6: $HOSTADDRESS6" -fi - -## Check whether author and comment was specified. -if [ -n "$NOTIFICATIONCOMMENT" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE - -Comment by $NOTIFICATIONAUTHORNAME: - $NOTIFICATIONCOMMENT" -fi - -## Check whether Icinga Web 2 URL was specified. -if [ -n "$ICINGAWEB2URL" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE - -$ICINGAWEB2URL/monitoring/host/show?host=$(urlencode "$HOSTNAME")" -fi - -## Check whether verbose mode was enabled and log to syslog. -if [ "$VERBOSE" = "true" ] ; then - logger "$PROG sends $SUBJECT => $USEREMAIL" -fi - -## Send the mail using the $MAILBIN command. -## If an explicit sender was specified, try to set it. -if [ -n "$MAILFROM" ] ; then - - ## Modify this for your own needs! - - ## Debian/Ubuntu use mailutils which requires `-a` to append the header - if [ -f /etc/debian_version ]; then - /usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" | $MAILBIN -a "From: $MAILFROM" -s "$SUBJECT" $USEREMAIL - ## Other distributions (RHEL/SUSE/etc.) prefer mailx which sets a sender address with `-r` - else - /usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" | $MAILBIN -r "$MAILFROM" -s "$SUBJECT" $USEREMAIL - fi - -else - /usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" \ - | $MAILBIN -s "$SUBJECT" $USEREMAIL -fi diff --git a/icinga2/scripts/mail-service-notification.sh b/icinga2/scripts/mail-service-notification.sh deleted file mode 100755 index 8e560ac..0000000 --- a/icinga2/scripts/mail-service-notification.sh +++ /dev/null @@ -1,174 +0,0 @@ -#!/usr/bin/env bash -# Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ -# Except of function urlencode which is Copyright (C) by Brian White (brian@aljex.com) used under MIT license - -PROG="`basename $0`" -ICINGA2HOST="`hostname`" -MAILBIN="mail" - -if [ -z "`which $MAILBIN`" ] ; then - echo "$MAILBIN not found in \$PATH. Consider installing it." - exit 1 -fi - -## Function helpers -Usage() { -cat << EOF - -Required parameters: - -d LONGDATETIME (\$icinga.long_date_time\$) - -e SERVICENAME (\$service.name\$) - -l HOSTNAME (\$host.name\$) - -n HOSTDISPLAYNAME (\$host.display_name\$) - -o SERVICEOUTPUT (\$service.output\$) - -r USEREMAIL (\$user.email\$) - -s SERVICESTATE (\$service.state\$) - -t NOTIFICATIONTYPE (\$notification.type\$) - -u SERVICEDISPLAYNAME (\$service.display_name\$) - -Optional parameters: - -4 HOSTADDRESS (\$address\$) - -6 HOSTADDRESS6 (\$address6\$) - -b NOTIFICATIONAUTHORNAME (\$notification.author\$) - -c NOTIFICATIONCOMMENT (\$notification.comment\$) - -i ICINGAWEB2URL (\$notification_icingaweb2url\$, Default: unset) - -f MAILFROM (\$notification_mailfrom\$, requires GNU mailutils (Debian/Ubuntu) or mailx (RHEL/SUSE)) - -v (\$notification_sendtosyslog\$, Default: false) - -EOF -} - -Help() { - Usage; - exit 0; -} - -Error() { - if [ "$1" ]; then - echo $1 - fi - Usage; - exit 1; -} - -urlencode() { - local LANG=C i=0 c e s="$1" - - while [ $i -lt ${#1} ]; do - [ "$i" -eq 0 ] || s="${s#?}" - c=${s%"${s#?}"} - [ -z "${c#[[:alnum:].~_-]}" ] || c=$(printf '%%%02X' "'$c") - e="${e}${c}" - i=$((i + 1)) - done - echo "$e" -} - -## Main -while getopts 4:6:b:c:d:e:f:hi:l:n:o:r:s:t:u:v: opt -do - case "$opt" in - 4) HOSTADDRESS=$OPTARG ;; - 6) HOSTADDRESS6=$OPTARG ;; - b) NOTIFICATIONAUTHORNAME=$OPTARG ;; - c) NOTIFICATIONCOMMENT=$OPTARG ;; - d) LONGDATETIME=$OPTARG ;; # required - e) SERVICENAME=$OPTARG ;; # required - f) MAILFROM=$OPTARG ;; - h) Usage ;; - i) ICINGAWEB2URL=$OPTARG ;; - l) HOSTNAME=$OPTARG ;; # required - n) HOSTDISPLAYNAME=$OPTARG ;; # required - o) SERVICEOUTPUT=$OPTARG ;; # required - r) USEREMAIL=$OPTARG ;; # required - s) SERVICESTATE=$OPTARG ;; # required - t) NOTIFICATIONTYPE=$OPTARG ;; # required - u) SERVICEDISPLAYNAME=$OPTARG ;; # required - v) VERBOSE=$OPTARG ;; - \?) echo "ERROR: Invalid option -$OPTARG" >&2 - Usage ;; - :) echo "Missing option argument for -$OPTARG" >&2 - Usage ;; - *) echo "Unimplemented option: -$OPTARG" >&2 - Usage ;; - esac -done - -shift $((OPTIND - 1)) - -## Keep formatting in sync with mail-host-notification.sh -for P in LONGDATETIME HOSTNAME HOSTDISPLAYNAME SERVICENAME SERVICEDISPLAYNAME SERVICEOUTPUT SERVICESTATE USEREMAIL NOTIFICATIONTYPE ; do - eval "PAR=\$${P}" - - if [ ! "$PAR" ] ; then - Error "Required parameter '$P' is missing." - fi -done - -## Build the message's subject -SUBJECT="[$NOTIFICATIONTYPE] $SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is $SERVICESTATE!" - -## Build the notification message -NOTIFICATION_MESSAGE=`cat << EOF -***** Service Monitoring on $ICINGA2HOST ***** - -$SERVICEDISPLAYNAME on $HOSTDISPLAYNAME is $SERVICESTATE! - -Info: $SERVICEOUTPUT - -When: $LONGDATETIME -Service: $SERVICENAME -Host: $HOSTNAME -EOF -` - -## Check whether IPv4 was specified. -if [ -n "$HOSTADDRESS" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE -IPv4: $HOSTADDRESS" -fi - -## Check whether IPv6 was specified. -if [ -n "$HOSTADDRESS6" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE -IPv6: $HOSTADDRESS6" -fi - -## Check whether author and comment was specified. -if [ -n "$NOTIFICATIONCOMMENT" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE - -Comment by $NOTIFICATIONAUTHORNAME: - $NOTIFICATIONCOMMENT" -fi - -## Check whether Icinga Web 2 URL was specified. -if [ -n "$ICINGAWEB2URL" ] ; then - NOTIFICATION_MESSAGE="$NOTIFICATION_MESSAGE - -$ICINGAWEB2URL/monitoring/service/show?host=$(urlencode "$HOSTNAME")&service=$(urlencode "$SERVICENAME")" -fi - -## Check whether verbose mode was enabled and log to syslog. -if [ "$VERBOSE" = "true" ] ; then - logger "$PROG sends $SUBJECT => $USEREMAIL" -fi - -## Send the mail using the $MAILBIN command. -## If an explicit sender was specified, try to set it. -if [ -n "$MAILFROM" ] ; then - - ## Modify this for your own needs! - - ## Debian/Ubuntu use mailutils which requires `-a` to append the header - if [ -f /etc/debian_version ]; then - /usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" | $MAILBIN -a "From: $MAILFROM" -s "$SUBJECT" $USEREMAIL - ## Other distributions (RHEL/SUSE/etc.) prefer mailx which sets a sender address with `-r` - else - /usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" | $MAILBIN -r "$MAILFROM" -s "$SUBJECT" $USEREMAIL - fi - -else - /usr/bin/printf "%b" "$NOTIFICATION_MESSAGE" \ - | $MAILBIN -s "$SUBJECT" $USEREMAIL -fi diff --git a/icinga2/zones.conf b/icinga2/zones.conf deleted file mode 100644 index 419bdbe..0000000 --- a/icinga2/zones.conf +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Generated by Icinga 2 node setup commands - * on 2023-05-26 11:41:31 +0200 - */ - -object Endpoint "mail.hoellein.online" { - host = "mail.hoellein.online" - port = "5665" -} - -object Zone "mail.hoellein.online" { - endpoints = [ "mail.hoellein.online" ] -} - -object Endpoint "vserver2.hoellein.online" { -} - -object Zone "vserver2.hoellein.online" { - endpoints = [ "vserver2.hoellein.online" ] - parent = "mail.hoellein.online" -} - -object Zone "global-templates" { - global = true -} - -object Zone "director-global" { - global = true -} - - diff --git a/icinga2/zones.conf.orig b/icinga2/zones.conf.orig deleted file mode 100644 index 70ac766..0000000 --- a/icinga2/zones.conf.orig +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Endpoint and Zone configuration for a cluster setup - * This local example requires `NodeName` defined in - * constants.conf. - */ - -object Endpoint NodeName { - host = NodeName -} - -object Zone ZoneName { - endpoints = [ NodeName ] -} - -/* - * Defines a global zone for distributed setups with masters, - * satellites and clients. - * This is required to sync configuration commands, - * templates, apply rules, etc. to satellite and clients. - * All nodes require the same configuration and must - * have `accept_config` enabled in the `api` feature. - */ - -object Zone "global-templates" { - global = true -} - -/* - * Defines a global zone for the Icinga Director. - * This is required to sync configuration commands, - * templates, apply rules, etc. to satellite and clients. - * All nodes require the same configuration and must - * have `accept_config` enabled in the `api` feature. - */ - -object Zone "director-global" { - global = true -} - -/* - * Read the documentation on how to configure - * a cluster setup with multiple zones. - */ - -/* -object Endpoint "master.example.org" { - host = "master.example.org" -} - -object Endpoint "satellite.example.org" { - host = "satellite.example.org" -} - -object Zone "master" { - endpoints = [ "master.example.org" ] -} - -object Zone "satellite" { - parent = "master" - endpoints = [ "satellite.example.org" ] -} -*/ - diff --git a/icinga2/zones.d/README b/icinga2/zones.d/README deleted file mode 100644 index e378eae..0000000 --- a/icinga2/zones.d/README +++ /dev/null @@ -1,2 +0,0 @@ -Please check the documentation for more details: -https://icinga.com/docs/icinga2/latest/doc/06-distributed-monitoring/ -- 2.43.0