From 5df5f30bca9b493fe6c645d141fba9088aee91ad Mon Sep 17 00:00:00 2001 From: Frank Brehm Date: Tue, 19 Sep 2017 13:21:15 +0200 Subject: [PATCH] committing changes in /etc after apt run Package changes: +fonts-lato 2.0-1 all +icinga-cgi-bin 1.13.4-2 amd64 +icinga2 2.6.0-2 amd64 +icinga2-bin 2.6.0-2 amd64 +icinga2-classicui 2.6.0-2 all +icinga2-common 2.6.0-2 all +libboost-atomic1.62.0 1.62.0+dfsg-4 amd64 +libboost-chrono1.62.0 1.62.0+dfsg-4 amd64 +libboost-date-time1.62.0 1.62.0+dfsg-4 amd64 +libboost-program-options1.62.0 1.62.0+dfsg-4 amd64 +libboost-regex1.62.0 1.62.0+dfsg-4 amd64 +libboost-thread1.62.0 1.62.0+dfsg-4 amd64 +libicinga2 2.6.0-2 amd64 +libjs-jquery-ui 1.12.1+dfsg-4 all +libruby2.3 2.3.3-1+deb9u1 amd64 +libyajl2 2.1.0-2+b3 amd64 +monitoring-plugins-basic 2.2-3 amd64 +monitoring-plugins-common 2.2-3 amd64 +nagios-images 0.9.1 all +rake 10.5.0-2 all +ruby 1:2.3.3 amd64 +ruby-did-you-mean 1.0.0-2 all +ruby-minitest 5.9.0-1 all +ruby-net-telnet 0.1.1-2 all +ruby-power-assert 0.3.0-1 all +ruby-test-unit 3.1.7-2 all +ruby2.3 2.3.3-1+deb9u1 amd64 +rubygems-integration 1.11 all +unzip 6.0-21 amd64 +vim-addon-manager 0.5.6 all +vim-icinga2 2.6.0-2 all +zip 3.0-11+b1 amd64 --- .etckeeper | 96 +++++++ apache2/conf-available/icinga2-classicui.conf | 1 + apache2/conf-enabled/icinga2-classicui.conf | 1 + default/icinga2 | 3 + group | 1 + group- | 1 + gshadow | 1 + gshadow- | 1 + icinga/stylesheets/avail.css | 65 +++++ icinga/stylesheets/checksanity.css | 39 +++ icinga/stylesheets/cmd.css | 148 +++++++++++ icinga/stylesheets/common.css | 210 +++++++++++++++ icinga/stylesheets/config.css | 28 ++ icinga/stylesheets/dd.css | 88 +++++++ icinga/stylesheets/extinfo.css | 118 +++++++++ icinga/stylesheets/histogram.css | 29 +++ icinga/stylesheets/history.css | 24 ++ icinga/stylesheets/menu.css | 149 +++++++++++ icinga/stylesheets/notifications.css | 38 +++ icinga/stylesheets/outages.css | 30 +++ icinga/stylesheets/showlog.css | 22 ++ icinga/stylesheets/status.css | 147 +++++++++++ icinga/stylesheets/statusmap.css | 23 ++ icinga/stylesheets/summary.css | 58 +++++ icinga/stylesheets/tac.css | 143 +++++++++++ icinga/stylesheets/tacheader.css | 187 ++++++++++++++ icinga/stylesheets/trends.css | 29 +++ icinga2-classicui/apache2.conf | 31 +++ icinga2-classicui/cgi.cfg | 74 ++++++ icinga2-classicui/htpasswd.users | 1 + icinga2-classicui/stylesheets | 1 + icinga2/conf.d/app.conf | 1 + icinga2/conf.d/apt.conf | 7 + icinga2/conf.d/commands.conf | 38 +++ icinga2/conf.d/downtimes.conf | 20 ++ icinga2/conf.d/groups.conf | 37 +++ icinga2/conf.d/hosts.conf | 52 ++++ icinga2/conf.d/notifications.conf | 27 ++ icinga2/conf.d/satellite.conf | 33 +++ icinga2/conf.d/services.conf | 117 +++++++++ icinga2/conf.d/templates.conf | 72 ++++++ icinga2/conf.d/timeperiods.conf | 43 ++++ icinga2/conf.d/users.conf | 17 ++ icinga2/constants.conf | 28 ++ icinga2/features-available/api.conf | 11 + icinga2/features-available/checker.conf | 7 + icinga2/features-available/command.conf | 9 + icinga2/features-available/compatlog.conf | 9 + icinga2/features-available/debuglog.conf | 11 + icinga2/features-available/gelf.conf | 12 + icinga2/features-available/graphite.conf | 11 + icinga2/features-available/influxdb.conf | 25 ++ icinga2/features-available/livestatus.conf | 8 + icinga2/features-available/mainlog.conf | 9 + icinga2/features-available/notification.conf | 7 + icinga2/features-available/opentsdb.conf | 11 + icinga2/features-available/perfdata.conf | 8 + icinga2/features-available/statusdata.conf | 10 + icinga2/features-available/syslog.conf | 8 + icinga2/features-enabled/checker.conf | 1 + icinga2/features-enabled/command.conf | 1 + icinga2/features-enabled/compatlog.conf | 1 + icinga2/features-enabled/mainlog.conf | 1 + icinga2/features-enabled/notification.conf | 1 + icinga2/features-enabled/statusdata.conf | 1 + icinga2/icinga2.conf | 63 +++++ icinga2/init.conf | 7 + icinga2/repository.d/README | 3 + icinga2/scripts/mail-host-notification.sh | 20 ++ icinga2/scripts/mail-service-notification.sh | 21 ++ icinga2/zones.conf | 51 ++++ icinga2/zones.d/README | 2 + init.d/icinga2 | 239 ++++++++++++++++++ logrotate.d/icinga2 | 24 ++ mailcap | 1 + nagios-plugins/config/apt.cfg | 12 + nagios-plugins/config/dhcp.cfg | 15 ++ nagios-plugins/config/disk.cfg | 27 ++ nagios-plugins/config/dummy.cfg | 29 +++ nagios-plugins/config/ftp.cfg | 15 ++ nagios-plugins/config/http.cfg | 111 ++++++++ nagios-plugins/config/load.cfg | 6 + nagios-plugins/config/mail.cfg | 77 ++++++ nagios-plugins/config/news.cfg | 15 ++ nagios-plugins/config/ntp.cfg | 17 ++ nagios-plugins/config/ping.cfg | 72 ++++++ nagios-plugins/config/procs.cfg | 20 ++ nagios-plugins/config/real.cfg | 13 + nagios-plugins/config/ssh.cfg | 27 ++ nagios-plugins/config/tcp_udp.cfg | 27 ++ nagios-plugins/config/telnet.cfg | 15 ++ nagios-plugins/config/users.cfg | 6 + passwd | 1 + passwd- | 2 +- rc0.d/K01icinga2 | 1 + rc1.d/K01icinga2 | 1 + rc2.d/S03icinga2 | 1 + rc3.d/S03icinga2 | 1 + rc4.d/S03icinga2 | 1 + rc5.d/S03icinga2 | 1 + rc6.d/K01icinga2 | 1 + shadow | 1 + shadow- | 1 + .../multi-user.target.wants/icinga2.service | 1 + 104 files changed, 3388 insertions(+), 1 deletion(-) create mode 120000 apache2/conf-available/icinga2-classicui.conf create mode 120000 apache2/conf-enabled/icinga2-classicui.conf create mode 100644 default/icinga2 create mode 100644 icinga/stylesheets/avail.css create mode 100644 icinga/stylesheets/checksanity.css create mode 100644 icinga/stylesheets/cmd.css create mode 100644 icinga/stylesheets/common.css create mode 100644 icinga/stylesheets/config.css create mode 100644 icinga/stylesheets/dd.css create mode 100644 icinga/stylesheets/extinfo.css create mode 100644 icinga/stylesheets/histogram.css create mode 100644 icinga/stylesheets/history.css create mode 100644 icinga/stylesheets/menu.css create mode 100644 icinga/stylesheets/notifications.css create mode 100644 icinga/stylesheets/outages.css create mode 100644 icinga/stylesheets/showlog.css create mode 100644 icinga/stylesheets/status.css create mode 100644 icinga/stylesheets/statusmap.css create mode 100644 icinga/stylesheets/summary.css create mode 100644 icinga/stylesheets/tac.css create mode 100644 icinga/stylesheets/tacheader.css create mode 100644 icinga/stylesheets/trends.css create mode 100644 icinga2-classicui/apache2.conf create mode 100644 icinga2-classicui/cgi.cfg create mode 100644 icinga2-classicui/htpasswd.users create mode 120000 icinga2-classicui/stylesheets create mode 100644 icinga2/conf.d/app.conf create mode 100644 icinga2/conf.d/apt.conf create mode 100644 icinga2/conf.d/commands.conf create mode 100644 icinga2/conf.d/downtimes.conf create mode 100644 icinga2/conf.d/groups.conf create mode 100644 icinga2/conf.d/hosts.conf create mode 100644 icinga2/conf.d/notifications.conf create mode 100644 icinga2/conf.d/satellite.conf create mode 100644 icinga2/conf.d/services.conf create mode 100644 icinga2/conf.d/templates.conf create mode 100644 icinga2/conf.d/timeperiods.conf create mode 100644 icinga2/conf.d/users.conf create mode 100644 icinga2/constants.conf create mode 100644 icinga2/features-available/api.conf create mode 100644 icinga2/features-available/checker.conf create mode 100644 icinga2/features-available/command.conf create mode 100644 icinga2/features-available/compatlog.conf create mode 100644 icinga2/features-available/debuglog.conf create mode 100644 icinga2/features-available/gelf.conf create mode 100644 icinga2/features-available/graphite.conf create mode 100644 icinga2/features-available/influxdb.conf create mode 100644 icinga2/features-available/livestatus.conf create mode 100644 icinga2/features-available/mainlog.conf create mode 100644 icinga2/features-available/notification.conf create mode 100644 icinga2/features-available/opentsdb.conf create mode 100644 icinga2/features-available/perfdata.conf create mode 100644 icinga2/features-available/statusdata.conf create mode 100644 icinga2/features-available/syslog.conf create mode 120000 icinga2/features-enabled/checker.conf create mode 120000 icinga2/features-enabled/command.conf create mode 120000 icinga2/features-enabled/compatlog.conf create mode 120000 icinga2/features-enabled/mainlog.conf create mode 120000 icinga2/features-enabled/notification.conf create mode 120000 icinga2/features-enabled/statusdata.conf create mode 100644 icinga2/icinga2.conf create mode 100644 icinga2/init.conf create mode 100644 icinga2/repository.d/README create mode 100755 icinga2/scripts/mail-host-notification.sh create mode 100755 icinga2/scripts/mail-service-notification.sh create mode 100644 icinga2/zones.conf create mode 100644 icinga2/zones.d/README create mode 100755 init.d/icinga2 create mode 100644 logrotate.d/icinga2 create mode 100644 nagios-plugins/config/apt.cfg create mode 100644 nagios-plugins/config/dhcp.cfg create mode 100644 nagios-plugins/config/disk.cfg create mode 100644 nagios-plugins/config/dummy.cfg create mode 100644 nagios-plugins/config/ftp.cfg create mode 100644 nagios-plugins/config/http.cfg create mode 100644 nagios-plugins/config/load.cfg create mode 100644 nagios-plugins/config/mail.cfg create mode 100644 nagios-plugins/config/news.cfg create mode 100644 nagios-plugins/config/ntp.cfg create mode 100644 nagios-plugins/config/ping.cfg create mode 100644 nagios-plugins/config/procs.cfg create mode 100644 nagios-plugins/config/real.cfg create mode 100644 nagios-plugins/config/ssh.cfg create mode 100644 nagios-plugins/config/tcp_udp.cfg create mode 100644 nagios-plugins/config/telnet.cfg create mode 100644 nagios-plugins/config/users.cfg create mode 120000 rc0.d/K01icinga2 create mode 120000 rc1.d/K01icinga2 create mode 120000 rc2.d/S03icinga2 create mode 120000 rc3.d/S03icinga2 create mode 120000 rc4.d/S03icinga2 create mode 120000 rc5.d/S03icinga2 create mode 120000 rc6.d/K01icinga2 create mode 120000 systemd/system/multi-user.target.wants/icinga2.service diff --git a/.etckeeper b/.etckeeper index e99fda0..d4c8bff 100755 --- a/.etckeeper +++ b/.etckeeper @@ -12,6 +12,7 @@ mkdir -p './console' mkdir -p './dbus-1/session.d' mkdir -p './dpkg/dpkg.cfg.d' mkdir -p './fail2ban/fail2ban.d' +mkdir -p './icinga2/pki' mkdir -p './initramfs-tools/conf.d' mkdir -p './initramfs-tools/hooks' mkdir -p './initramfs-tools/scripts/init-bottom' @@ -418,6 +419,7 @@ maybe chmod 0644 'default/grub' maybe chmod 0644 'default/halt' maybe chmod 0644 'default/haveged' maybe chmod 0644 'default/hwclock' +maybe chmod 0644 'default/icinga2' maybe chmod 0644 'default/keyboard' maybe chmod 0644 'default/locale' maybe chmod 0644 'default/locale.bak' @@ -771,6 +773,79 @@ maybe chmod 0644 'hostname' maybe chmod 0644 'hosts' maybe chmod 0644 'hosts.allow' maybe chmod 0644 'hosts.deny' +maybe chmod 0755 'icinga' +maybe chmod 0755 'icinga/stylesheets' +maybe chmod 0644 'icinga/stylesheets/avail.css' +maybe chmod 0644 'icinga/stylesheets/checksanity.css' +maybe chmod 0644 'icinga/stylesheets/cmd.css' +maybe chmod 0644 'icinga/stylesheets/common.css' +maybe chmod 0644 'icinga/stylesheets/config.css' +maybe chmod 0644 'icinga/stylesheets/dd.css' +maybe chmod 0644 'icinga/stylesheets/extinfo.css' +maybe chmod 0644 'icinga/stylesheets/histogram.css' +maybe chmod 0644 'icinga/stylesheets/history.css' +maybe chmod 0644 'icinga/stylesheets/menu.css' +maybe chmod 0644 'icinga/stylesheets/notifications.css' +maybe chmod 0644 'icinga/stylesheets/outages.css' +maybe chmod 0644 'icinga/stylesheets/showlog.css' +maybe chmod 0644 'icinga/stylesheets/status.css' +maybe chmod 0644 'icinga/stylesheets/statusmap.css' +maybe chmod 0644 'icinga/stylesheets/summary.css' +maybe chmod 0644 'icinga/stylesheets/tac.css' +maybe chmod 0644 'icinga/stylesheets/tacheader.css' +maybe chmod 0644 'icinga/stylesheets/trends.css' +maybe chown 'nagios' 'icinga2' +maybe chgrp 'nagios' 'icinga2' +maybe chmod 0750 'icinga2' +maybe chmod 0755 'icinga2-classicui' +maybe chmod 0644 'icinga2-classicui/apache2.conf' +maybe chmod 0644 'icinga2-classicui/cgi.cfg' +maybe chgrp 'www-data' 'icinga2-classicui/htpasswd.users' +maybe chmod 0640 'icinga2-classicui/htpasswd.users' +maybe chmod 0755 'icinga2/conf.d' +maybe chmod 0644 'icinga2/conf.d/app.conf' +maybe chmod 0644 'icinga2/conf.d/apt.conf' +maybe chmod 0644 'icinga2/conf.d/commands.conf' +maybe chmod 0644 'icinga2/conf.d/downtimes.conf' +maybe chmod 0644 'icinga2/conf.d/groups.conf' +maybe chmod 0644 'icinga2/conf.d/hosts.conf' +maybe chmod 0644 'icinga2/conf.d/notifications.conf' +maybe chmod 0644 'icinga2/conf.d/satellite.conf' +maybe chmod 0644 'icinga2/conf.d/services.conf' +maybe chmod 0644 'icinga2/conf.d/templates.conf' +maybe chmod 0644 'icinga2/conf.d/timeperiods.conf' +maybe chmod 0644 'icinga2/conf.d/users.conf' +maybe chmod 0644 'icinga2/constants.conf' +maybe chmod 0755 'icinga2/features-available' +maybe chmod 0644 'icinga2/features-available/api.conf' +maybe chmod 0644 'icinga2/features-available/checker.conf' +maybe chmod 0644 'icinga2/features-available/command.conf' +maybe chmod 0644 'icinga2/features-available/compatlog.conf' +maybe chmod 0644 'icinga2/features-available/debuglog.conf' +maybe chmod 0644 'icinga2/features-available/gelf.conf' +maybe chmod 0644 'icinga2/features-available/graphite.conf' +maybe chmod 0644 'icinga2/features-available/influxdb.conf' +maybe chmod 0644 'icinga2/features-available/livestatus.conf' +maybe chmod 0644 'icinga2/features-available/mainlog.conf' +maybe chmod 0644 'icinga2/features-available/notification.conf' +maybe chmod 0644 'icinga2/features-available/opentsdb.conf' +maybe chmod 0644 'icinga2/features-available/perfdata.conf' +maybe chmod 0644 'icinga2/features-available/statusdata.conf' +maybe chmod 0644 'icinga2/features-available/syslog.conf' +maybe chmod 0755 'icinga2/features-enabled' +maybe chmod 0644 'icinga2/icinga2.conf' +maybe chmod 0644 'icinga2/init.conf' +maybe chown 'nagios' 'icinga2/pki' +maybe chgrp 'nagios' 'icinga2/pki' +maybe chmod 0700 'icinga2/pki' +maybe chmod 0755 'icinga2/repository.d' +maybe chmod 0644 'icinga2/repository.d/README' +maybe chmod 0755 'icinga2/scripts' +maybe chmod 0755 'icinga2/scripts/mail-host-notification.sh' +maybe chmod 0755 'icinga2/scripts/mail-service-notification.sh' +maybe chmod 0644 'icinga2/zones.conf' +maybe chmod 0755 'icinga2/zones.d' +maybe chmod 0644 'icinga2/zones.d/README' maybe chmod 0755 'init' maybe chmod 0755 'init.d' maybe chmod 0644 'init.d/README' @@ -797,6 +872,7 @@ maybe chmod 0755 'init.d/halt' maybe chmod 0755 'init.d/haveged' maybe chmod 0755 'init.d/hostname.sh' maybe chmod 0755 'init.d/hwclock.sh' +maybe chmod 0755 'init.d/icinga2' maybe chmod 0755 'init.d/kbd' maybe chmod 0755 'init.d/keyboard-setup.sh' maybe chmod 0755 'init.d/killprocs' @@ -1030,6 +1106,7 @@ maybe chmod 0644 'logrotate.d/dpkg' maybe chmod 0644 'logrotate.d/exim4-base' maybe chmod 0644 'logrotate.d/exim4-paniclog' maybe chmod 0644 'logrotate.d/fail2ban' +maybe chmod 0644 'logrotate.d/icinga2' maybe chmod 0644 'logrotate.d/postgresql-common' maybe chmod 0644 'logrotate.d/rsyslog' maybe chmod 0644 'logrotate.d/salt-common' @@ -1084,6 +1161,25 @@ maybe chmod 0755 'mysql/mariadb.conf.d' maybe chmod 0644 'mysql/mariadb.conf.d/50-client.cnf' maybe chmod 0644 'mysql/mariadb.conf.d/50-mysql-clients.cnf' maybe chmod 0644 'mysql/my.cnf.fallback' +maybe chmod 0755 'nagios-plugins' +maybe chmod 0755 'nagios-plugins/config' +maybe chmod 0644 'nagios-plugins/config/apt.cfg' +maybe chmod 0644 'nagios-plugins/config/dhcp.cfg' +maybe chmod 0644 'nagios-plugins/config/disk.cfg' +maybe chmod 0644 'nagios-plugins/config/dummy.cfg' +maybe chmod 0644 'nagios-plugins/config/ftp.cfg' +maybe chmod 0644 'nagios-plugins/config/http.cfg' +maybe chmod 0644 'nagios-plugins/config/load.cfg' +maybe chmod 0644 'nagios-plugins/config/mail.cfg' +maybe chmod 0644 'nagios-plugins/config/news.cfg' +maybe chmod 0644 'nagios-plugins/config/ntp.cfg' +maybe chmod 0644 'nagios-plugins/config/ping.cfg' +maybe chmod 0644 'nagios-plugins/config/procs.cfg' +maybe chmod 0644 'nagios-plugins/config/real.cfg' +maybe chmod 0644 'nagios-plugins/config/ssh.cfg' +maybe chmod 0644 'nagios-plugins/config/tcp_udp.cfg' +maybe chmod 0644 'nagios-plugins/config/telnet.cfg' +maybe chmod 0644 'nagios-plugins/config/users.cfg' maybe chmod 0644 'nanorc' maybe chmod 0755 'network' maybe chmod 0755 'network/if-down.d' diff --git a/apache2/conf-available/icinga2-classicui.conf b/apache2/conf-available/icinga2-classicui.conf new file mode 120000 index 0000000..2ba37da --- /dev/null +++ b/apache2/conf-available/icinga2-classicui.conf @@ -0,0 +1 @@ +../../icinga2-classicui/apache2.conf \ No newline at end of file diff --git a/apache2/conf-enabled/icinga2-classicui.conf b/apache2/conf-enabled/icinga2-classicui.conf new file mode 120000 index 0000000..1a010ed --- /dev/null +++ b/apache2/conf-enabled/icinga2-classicui.conf @@ -0,0 +1 @@ +../conf-available/icinga2-classicui.conf \ No newline at end of file diff --git a/default/icinga2 b/default/icinga2 new file mode 100644 index 0000000..c452408 --- /dev/null +++ b/default/icinga2 @@ -0,0 +1,3 @@ +# default settings for icinga2's initscript + +#DAEMON_ARGS="-e /var/log/icinga2/icinga2.err" diff --git a/group b/group index e76dab0..02d7346 100644 --- a/group +++ b/group @@ -56,3 +56,4 @@ ulog:x:115: postgres:x:116: messagebus:x:117: _chrony:x:118: +nagios:x:119: diff --git a/group- b/group- index 5008dbe..e76dab0 100644 --- a/group- +++ b/group- @@ -55,3 +55,4 @@ bind:x:999: ulog:x:115: postgres:x:116: messagebus:x:117: +_chrony:x:118: diff --git a/gshadow b/gshadow index 73d529d..1134e09 100644 --- a/gshadow +++ b/gshadow @@ -56,3 +56,4 @@ ulog:!:: postgres:!:: messagebus:!:: _chrony:!:: +nagios:!:: diff --git a/gshadow- b/gshadow- index 4ddf26a..73d529d 100644 --- a/gshadow- +++ b/gshadow- @@ -55,3 +55,4 @@ bind:!:: ulog:!:: postgres:!:: messagebus:!:: +_chrony:!:: diff --git a/icinga/stylesheets/avail.css b/icinga/stylesheets/avail.css new file mode 100644 index 0000000..89eaa10 --- /dev/null +++ b/icinga/stylesheets/avail.css @@ -0,0 +1,65 @@ + +.avail { font-family: arial,serif; background-color: #fff; color: #000; font-size: 8pt; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; font-size: 8pt; text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.reportRange { text-align: center; font-weight: bold; } +.reportDuration { text-align: center; } +.reportTime { text-align: center; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +table.data { background-color: #fff; padding: 2; } +th.data { font-size: 10pt; background-color: #fff; background-color: #707677; color: #fff; } +.dataOdd { background-color: #ededed; } +.dataEven { background-color: #e9e9e9; } + +.optionBoxTitle { font-family: arial,serif; text-align: center; font-weight: bold; font-size: 10pt; } +.optionBox { font-family: arial,serif; font-size: 10pt; padding: 2; } + +.hostUP { background-color: #00cc33; color: #fff; } +.hostDOWN { background-color: #ff3300; color: #fff; } +.hostUNREACHABLE { background-color: #bf44b2; color: #fff; } +tr.dataEven td.hostUP, tr.dataEven td.hostDOWN, tr.dataEven .hostUNREACHABLE { text-align: center; } +tr.dataOdd td.hostUP, tr.dataOdd td.hostDOWN, tr.dataOdd .hostUNREACHABLE { text-align: center; } + +.serviceOK { background-color: #00cc33; color: #fff; } +.serviceWARNING { background-color: #ffa500; color: #fff; } +.serviceUNKNOWN { background-color: #bf44b2; color: #fff; } +.serviceCRITICAL { background-color: #ff3300; color: #fff; } +tr.dataEven td.serviceOK, tr.dataEven td.serviceWARNING, tr.dataEven td.serviceUNKNOWN, tr.dataEven td.serviceCRITICAL { text-align: center; } +tr.dataOdd td.serviceOK, tr.dataOdd td.serviceWARNING, tr.dataOdd td.serviceUNKNOWN, tr.dataOdd td.serviceCRITICAL { text-align: center; } + +.helpfulHint { font-style: italic; text-align: center; } + +.dateSelectTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.dateSelectSubTitle { font-weight: bold; } + +.reportSelectTip { font-style: italic; } +.reportSelectTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.reportSelectSubTitle {text-align: right; } + +table.logEntries { background-color: #fff; margin-top: 10px; border-spacing: 2px; border: 0; } +th.logEntries { background-color: #707677; color: #fff; } +.logEntriesEven { background-color: #ededed; color: #000; } +.logEntriesOdd { background-color: #e9e9e9; color: #000; } + +.logEntriesINDETERMINATE { background-color: #acacac; } + +.logEntriesOK { background-color: #33cc00; color: #fff; text-align: center; } +.logEntriesUNKNOWN { background-color: #bf44b2; color: #fff; text-align: center; } +.logEntriesWARNING { background-color: #ffa500; color: #fff; text-align: center; } +.logEntriesCRITICAL { background-color: #ff3300; color: #fff; text-align: center; } +.logEntriesUP { background-color: #33cc00; color: #fff; text-align: center; } +.logEntriesDOWN { background-color: #ff3300; color: #fff; text-align: center; } +.logEntriesUNREACHABLE { background-color: #bf44b2; color: #fff; text-align: center; } diff --git a/icinga/stylesheets/checksanity.css b/icinga/stylesheets/checksanity.css new file mode 100644 index 0000000..f914ea9 --- /dev/null +++ b/icinga/stylesheets/checksanity.css @@ -0,0 +1,39 @@ + +.extinfo { font-family: arial,serif; background-color: #fff; color: #000; font-size: 8pt; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; border-color: #707677; } +table { border-color: #ccc; border-style: solid; } +th { text-align: left; font-size: 8pt; text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.errorMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.errorDescription { text-align: center; font-weight: bold; font-size: 10pt; } +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.Title { text-align: center; font-weight: bold; font-size: 10pt; } +.SectionTitle { text-align: center; font-weight: bold; } + +.optionBoxTitle { text-align: center; font-weight: bold; } +.optionBox { background-color: #ededed; padding: 2; } + +.DynamicData { background-color: #fff; padding: 2; } +.StaticData { background-color: #fff; padding: 2; } +.TableHeader { background-color: #707677; color: #fff; } + +.Item { background-color: #ededed; font-weight: bold; } +.DataSource { background-color: #ededed; } +.Number { background-color: #ededed; } + +.Value { background-color: #C4C2C2; color: #fff; } +.ValueOk { background-color: #33cc00; color: #fff; } +.ValueError { background-color: #ff3300; color: #fff; } + + + + diff --git a/icinga/stylesheets/cmd.css b/icinga/stylesheets/cmd.css new file mode 100644 index 0000000..75bd93a --- /dev/null +++ b/icinga/stylesheets/cmd.css @@ -0,0 +1,148 @@ +/* + * CSS file for cmd.cgi + */ + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +a.homepageURL:Hover { color: #ff3300; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } + +.cmd { font-family: Helvetica, serif; background-color: #fff; color: #000; font-size: 8pt; } + +td { + font-size: 9pt; + border: 0; + padding-top: 3px; + padding-bottom:3px; +} + +.objectTableHeader { + font-size: 8pt; + font-weight: bold; + height:25px; + background-color: #707677; + color: #fff; + border: 0; +} + +.objectDescription { + font-size: 8pt; + font-weight: bold; + height:25px; +} + +.descriptionleft { + text-align: left; + padding-left:10px; +} + +.boxFrame { + border: 1px dotted #ccc; +} + +.contentTable { + border:10px white solid; + text-align:center; + width:100%; +} + +.sectionHeader { + text-align: center; + font-size: 9pt; + border: 0; + line-height: 20px; + background-image: url(../images/cmd_shadow.gif); + background-repeat:repeat-x; + font-weight: bold; +} + +.commitButton { + height:40px; + padding-right:20px; + text-align:right; +} + +.inputError { + border:1px red solid; + color:black; + margin-top:0.5em; + padding:0.5em; + float:left; + background-color: #FFCECE; +} + +.submitButton { + /* + * Design your own buttons + */ +} + +input[type=text], textarea { + border:1px #D0D0D0 solid; +} + +.errorBox, +.successBox, +.BoxWidth { + width:600px; +} + +.errorBox { + border:1px red solid; + background-color: #FFE5E5; +} + +.successBox { + border:1px green solid; + background-color: #C0FFC0; +} + +.errorMessage { + text-align:left; + font-weight: bold; + margin:1em; + font-size: 10pt; +} + +.errorDescription, +.successMessage { + text-align:left; + margin:1em; + font-size: 10pt; +} + +.errorContent { + font-weight: bold; + font-size: 10pt; + padding:0.5em; +} + +.errorTable { + margin:0.5em 1.2em 0.5em 1.2em; +} + +.errorString { + margin:1em; + width:15%; + font-weight: bold; + font-size: 10pt; +} + +.sumHeader { + text-align: center; + background-color: #ffffff; + font-weight: bold; + font-size: 9pt; +} + +/* Commit status colors */ +.commitSuccess { color:green; font-size: 10pt; } +.commitUnknown { color:#bf44b2; font-size: 10pt; } +.commitFailed { color:red; font-size: 10pt; } + +/* Row Colors */ +.statusOdd { background-color: #cfcfcf; } +.statusEven { background-color: #e7e7e7; } diff --git a/icinga/stylesheets/common.css b/icinga/stylesheets/common.css new file mode 100644 index 0000000..780ec70 --- /dev/null +++ b/icinga/stylesheets/common.css @@ -0,0 +1,210 @@ +body { + font-family: arial, verdana, serif; + font-weight: normal; + font-size: 10pt; + } + + +/* navbar */ +body.navbar { + background-color: black; + color: white; + font-family: verdana,arial,serif; + } + +.navbarlogo { + margin: 0 0 10px 0; + } + +.navsection { + margin: 5px 0 10px 0; + color: #DEE7C6; + } + +.navsectiontitle { + font-size: 10pt; + font-weight: bold; + border:1px solid #DEE7C6; + padding: 2px; + } + +div.navsectionlinks { + margin: 3px 0 0 0; + } + +ul.navsectionlinks { + margin: 0px; + padding: 0px; + list-style: none; + } + +ul.navsectionlinks li { + } + +ul.navsectionlinks li ul { + margin: 0px; + padding: 0 0 0 30px; + list-style: disc; + } + +ul.navsectionlinks li ul li { + } + +ul.navsectionlinks li ul li a { + color: #DEE7C6; + background: none; + padding: 0; + } + +ul.navsectionlinks li ul li a:hover { + color: #FFC47F; + background: none; + } + +ul.navsectionlinks li ul li ul { + margin: 0px; + padding: 0 0 0 15px; + list-style: circle; + } + + +.navbarsearch { + margin: 5px 0 0 0; + } + +.navbarsearch fieldset { + border: none; + } + +.navbarsearch fieldset legend { + font-size: 8pt; + } + +.navbarsearch input{ + font-size: 8pt; + color: black; + background-color: white; + } + + + +/* main page */ +#splashpage{ + text-align: center; + } + +#mainbrandsplash{ + font-size: 12pt; + font-weight: bold; + margin: 0 0 35px 0; + } + +#maincopy{ + margin: 0 0 15px 0; + } + +#currentversioninfo{ + font-size: 12pt; + } +#currentversioninfo .version{ + font-size: 14pt; + font-weight: bold; + } +#currentversioninfo .releasedate{ + font-size: 11pt; + margin: 5px 0 0 0; + } +#currentversioninfo .whatsnew{ + font-size: 11pt; + font-weight: bold; + margin: 10px 0 0 0; + } + +#developer{ + font-size: 10pt; + } +#developer .doxygen{ + font-size: 10pt; + font-weight: bold; + margin: 10px 0 0 0; + } + +#updateversioninfo{ + margin: 15px auto 50px auto; + width: 400px; + } +.updatechecksdisabled{ + background-color: #FF9F9F; + border: 1px solid red; + padding: 10px; + } +.updatechecksdisabled div.warningmessage{ + font-weight: bold; + } +#updateversioninfo div.submessage{ + clear: left; + } +.updateavailable{ + background-color: #9FD4FF; + border: 1px solid blue; + padding: 10px; + } +.updateavailable div.updatemessage{ + font-size: 12pt; + font-weight: bold; + } + +#splashpage #mainfooter{ + margin: 25px 0 0 0; + font-size: 8pt; + } +#splashpage #mainfooter .disclaimer{ + width: 80%; + margin: auto; + } +#splashpage #mainfooter .logos{ + margin: 15px 0 0 0; + } + + +a img { + border: none; + } + +.csv_export_link{ + text-align: right; +} + +.errorBox { + border:1px red solid; + background-color: #FFE5E5; + width:600px; +} + +.errorMessage { + text-align:left; + font-weight: bold; + margin:1em; + font-size: 10pt; +} + +.errorDescription, +.successMessage { + text-align:left; + margin:1em; + font-size: 10pt; +} + +.linkBox { border: 0; } +table.linkBox { margin-top: 20px; } +td.linkBox a { color: #000; margin-left: 5px; padding-left: 10px; background: url(../images/menu_li1.gif) 0 0.35em no-repeat; } +td.linkBox a:hover { color: #6e7475; background: url(../images/menu_li2.gif) 0 0.35em no-repeat; } + +.tac { margin: 0px; } + +.tac_banner { + width: 100%; + height: 70px; + line-height: 70px; + background: #ededed url(../images/Icinga_Header_Webinterface_Pixel.jpg) top left repeat-x; +} diff --git a/icinga/stylesheets/config.css b/icinga/stylesheets/config.css new file mode 100644 index 0000000..75045c2 --- /dev/null +++ b/icinga/stylesheets/config.css @@ -0,0 +1,28 @@ + +.config { font-family: arial,serif; background-color: #fff; color: #000; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; font-size: 8pt; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.errorMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.errorDescription { text-align: center; font-weight: bold; font-size: 10pt; } +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +table.data { background-color: #fff; padding: 2; margin-left:auto; margin-right:auto;} +th.data { font-size: 10pt; background-color: #707677; color: #fff; } +.dataOdd { background-color: #CFCFCF; } +.dataEven { background-color: #E7E7E7; } +.dataDiff { background-color: #E9E0D3; } + +.reportSelectTip { font-style: italic; } +.reportSelectTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.reportSelectSubTitle {text-align: right; } \ No newline at end of file diff --git a/icinga/stylesheets/dd.css b/icinga/stylesheets/dd.css new file mode 100644 index 0000000..da1623f --- /dev/null +++ b/icinga/stylesheets/dd.css @@ -0,0 +1,88 @@ +/************** Skin 1 *********************/ +.dd { + /*display:inline-block !important;*/ + text-align:left; + background-color:#fff; + font-family:Arial, Helvetica, sans-serif; + font-size:12px; + float:right; + margin:3px 0 3px 0; + height:16px; + line-height:16px; +} +.dd .ddTitle { + background:#f2f2f2; + border:1px solid #c3c3c3; + padding:1px 1px 1px 3px; + text-indent:0; + cursor:default; + overflow:hidden; +} +.dd .ddTitle span.arrow { + background:url(../images/dd_arrow.gif) no-repeat 0 0; float:right; display:inline-block;width:16px; height:16px; cursor:pointer; +} + +.dd .ddTitle span.ddTitleText {text-indent:1px; overflow:hidden; line-height:16px;} +.dd .ddTitle span.ddTitleText img{text-align:left; padding:0 2px 0 0} +.dd .ddTitle img.selected { + padding:0 3px 0 0; + vertical-align:top; +} +.dd .ddChild { + position:absolute; + border:1px solid #c3c3c3; + border-top:none; + display:none; + margin:7px 0 0 0; + width:auto; + overflow:auto; + overflow-x:hidden !important; + background-color:#ffffff; +} +.dd .ddChild .opta a, .dd .ddChild .opta a:visited {padding-left:10px} +.dd .ddChild a { + display:block; + padding:2px 0 2px 3px; + text-decoration:none; + color:#000; + overflow:hidden; + white-space:nowrap; + cursor:pointer; +} +.dd .ddChild a:hover { + background-color:#66CCFF; +} +.dd .ddChild a img { + border:0; + padding:0 2px 0 0; + vertical-align:middle; +} +.dd .ddChild a.selected { + background-color:#66CCFF; +} +.hidden {display:none;} + +.dd .borderTop{border-top:1px solid #c3c3c3 !important;} +.dd .noBorderTop{border-top:none 0 !important} + +.page_selector { + width: 345px; + vertical-align: middle; + text-align: center; + height: 24px; + line-height: 24px; + padding:2px 0px; + margin-left: auto; + margin-right: auto; +} + +.page_select_dd { + padding: 0 5px; + height: 24px; + line-height: 24px; + float: left; + text-align: center; + margin-left: auto; + margin-right: auto; +} +/*******************************/ diff --git a/icinga/stylesheets/extinfo.css b/icinga/stylesheets/extinfo.css new file mode 100644 index 0000000..6029ea3 --- /dev/null +++ b/icinga/stylesheets/extinfo.css @@ -0,0 +1,118 @@ + +.extinfo { font-family: arial,serif; background-color: #fff; color: #000; font-size: 8pt; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; border-color: #707677; } +table { border: 0 } +th { text-align: left; font-size: 8pt; text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + + +div.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; margin-bottom: 15px; } +div.data { text-align: center; font-size: 10pt; } + +div.perfTypeTitle { text-align: right; font-weight: bold; } + +table.data { background-color: #ededed; padding: 3px; } +th.data { font-size: 10pt; background-color: #707677; color: #fff; } +.dataOdd { background-color: #ededed; } +.dataEven { background-color: #e9e9e9; } + +.optionBoxTitle { text-align: center; font-weight: bold; } +.optionBox { background-color: #ededed; padding: 3px; } + +div.commandTitle { text-align: center; font-weight: bold; font-size: 10pt; margin-bottom: 15px; } + +table.command { background-color: #ededed; padding: 3px; } +.command { padding: 2px; text-align:left; } + +.commentTitle { text-align: center; font-weight: bold; font-size: 10pt; } +div.commentNav { text-align: center; } + +table.comment { width: 100%; background-color: #fff; padding: 3px; } +th.comment { text-align: left; font-size: 10pt; background-color: #707677; color: #fff; } +.commentOdd { background-color: #ededed; } +.commentEven { background-color: #e9e9e9; } +div.comment,a.comment { background-color: #fff; text-align: center; } + +.downtimeTitle { text-align: center; font-weight: bold; font-size: 10pt; } +div.downtimeNav { text-align: center; } + +table.downtime { width: 100%; background-color: #fff; padding: 3px; } +th.downtime { text-align: left; font-size: 10pt; background-color: #707677; color: #fff; } +.downtimeOdd { background-color: #ededed; } +.downtimeEven { background-color: #e9e9e9; } + +.notificationsENABLED { background-color: #00cc33; color: #fff; text-align: center; } +.notificationsDISABLED { background-color: #ff3300; color: #fff; text-align: center; } +.notificationsUNKNOWN { background-color: #bf44b2; color: #fff; text-align: center; } + +.checksENABLED { background-color: #00cc33; color: #fff; text-align: center; } +.checksDISABLED { background-color: #ff3300; color: #fff; text-align: center; } + +.eventhandlersENABLED { background-color: #00cc33; color: #fff; text-align: center; } +.eventhandlersDISABLED { background-color: #ff3300; color: #fff; text-align: center; } + +.flapdetectionENABLED { background-color: #00cc33; color: #fff; text-align: center; } +.flapdetectionDISABLED { background-color: #ff3300; color: #fff; text-align: center; } + +.notflapping { background-color: #00cc33; color: #fff; float: left; } +.flapping { background-color: #ff3300; color: #fff; float: left; } + +.downtimeACTIVE { background-color: #ff3300; color: #fff; float: left; } +.downtimeINACTIVE { background-color: #00cc33; color: #fff; float: left; } + +.processOK { background-color: #00cc33; color: #fff; } +.processUNKNOWN { background-color: #bf44b2; color: #fff; } +.processWARNING { background-color: #ffa500; color: #fff; } +.processCRITICAL { background-color: #ff3300; color: #fff; } + +.modeACTIVE { background-color: #00cc33; color: #fff; } +.modeSTANDBY { background-color: #ffa500; color: #fff; } + +div.hostUP, div.hostDOWN, div.hostUNREACHABLE, div.hostDOWNTIME { display: inline; } +.hostUP { background-color: #00cc33; color: #fff; } +.hostDOWN { background-color: #ff3300; color: #fff; } +.hostUNREACHABLE { background-color: #bf44b2; color: #fff; } +.hostDOWNTIME { background-color: #acacac; color: #fff; } +tr.dataEven td.hostUP, tr.dataEven td.hostDOWN, tr.dataEven .hostUNREACHABLE, tr.dataEven .hostDOWNTIME { text-align: center; } +tr.dataOdd td.hostUP, tr.dataOdd td.hostDOWN, tr.dataOdd .hostUNREACHABLE, tr.dataOdd .hostDOWNTIME { text-align: center; } + +div.serviceOK, div.serviceWARNING, div.serviceUNKNOWN, div.serviceCRITICAL, div.serviceDOWNTIME { display: inline; } +.serviceOK { background-color: #00cc33; color: #fff; } +.serviceWARNING { background-color: #ffa500; color: #fff; } +.serviceUNKNOWN { background-color: #bf44b2; color: #fff; } +.serviceCRITICAL { background-color: #ff3300; color: #fff; } +.serviceDOWNTIME { background-color: #acacac; color: #fff; } +tr.dataEven td.serviceOK, tr.dataEven td.serviceWARNING, tr.dataEven td.serviceUNKNOWN, tr.dataEven td.serviceCRITICAL, tr.dataEven td.serviceDOWNTIME { text-align: center; } +tr.dataOdd td.serviceOK, tr.dataOdd td.serviceWARNING, tr.dataOdd td.serviceUNKNOWN, tr.dataOdd td.serviceCRITICAL, tr.dataOdd td.serviceDOWNTIME { text-align: center; } + +.commandPanel { background-color: #fff; } +.commentPanel { background-color: #fff; } + +.stateInfoPanel { background-color: #fff; } +.stateStatisticsPanel { background-color: #fff; } +.stateInfoTable1 { background-color: #ededed; } +.stateInfoTable2 { background-color: #e9e9e9; } + +.queueTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +table.queue { background-color: #fff; padding: 2; } +th.queue { text-align: left; font-size: 10pt; background-color: #707677; color: #fff; } +.queueOdd { background-color: #ededed; } +.queueEven { background-color: #e9e9e9; } +.queueENABLED { text-align: center; color: #fff; background-color: #00cc33; } +.queueDISABLED { text-align: center; color: #fff; background-color: #ff3300; } + +.dataVar, .dataVal { text-align: left; } + +.CustomVarLine { padding: 0.1em 0.5em; margin-left: 1em; background-color: #d9d9d9; } +.CustomVarHead { padding-left: 0.5em; padding-bottom: 0.3em; } +.CustomVarTable { background-color: #e9e9e9; padding:0.1em;} diff --git a/icinga/stylesheets/histogram.css b/icinga/stylesheets/histogram.css new file mode 100644 index 0000000..3b3caba --- /dev/null +++ b/icinga/stylesheets/histogram.css @@ -0,0 +1,29 @@ + +.histogram { font-family: arial,serif; font-size: 8pt; background-color: #fff; color: #000; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.infoMessage { text-align: center; color: #ff3300; font-weight: bold; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.helpfulHints { text-align: center; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +.reportRange { text-align: center; font-weight: bold; } +.reportDuration { text-align: center; } +.reportTime { text-align: center; } + +.reportSelectTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.reportSelectSubTitle { font-family: arial,serif; text-align: right; } + +.helpfulHint { font-style: italic; text-align: center; } + diff --git a/icinga/stylesheets/history.css b/icinga/stylesheets/history.css new file mode 100644 index 0000000..726caa0 --- /dev/null +++ b/icinga/stylesheets/history.css @@ -0,0 +1,24 @@ + +.history { font-family: arial,serif; font-size: 8pt; background-color: white; color: black; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } +hr { border: 0; color: #ededed; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.infoMessage { text-align: center; color: #ff3300; font-weight: bold; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +.navBoxTitle { font-weight: bold; } +.navBoxItem { color: #707677 } +.navBoxFile { color: #707677; font-weight: bold; text-align: center; } + +.dateTimeBreak { font-size: 10pt; font-weight: bold; background-color: #ededed; color: #707677; } diff --git a/icinga/stylesheets/menu.css b/icinga/stylesheets/menu.css new file mode 100644 index 0000000..5c7a368 --- /dev/null +++ b/icinga/stylesheets/menu.css @@ -0,0 +1,149 @@ +* { + margin: 0; + padding: 0; +} + +body { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 0.7em; + color: #000; + background: #ededed url(../images/menu_body.gif) top left repeat-y; +} + +img { + border: 0; +} + +ul { + list-style-type: none; +} + +#menu { + width: 199px; +} + +#menu h2 { + position: relative; + padding: 0 5px; + height: 26px; + color: #ef9f1b; + background: #ededed url(../images/menu_bar.gif) top left repeat-x; + border-bottom: 1px solid #fff; + line-height: 26px; + font-size: 1em; +} + +#menu h2 img { + position: absolute; + top: 9px; + right: 8px; +} + +#menu ul li { + padding: 0 10px; + border-bottom: 1px solid #fff; +} + + +#menu ul li a { + padding-left: 12px; + background: url(../images/menu_li1.gif) 0 0.35em no-repeat; +} + +#menu ul li a:link, #menu ul li a:active, #menu ul li a:visited { + color: #6e7475; + text-decoration: none; +} + +#menu ul li a:hover { + background: url(../images/menu_li2.gif) 0 0.35em no-repeat; + color: #000; +} + +#menu ul li.menuli_style1 { + background-color: #ededed; +} + +#menu ul li.menuli_style2 { + background-color: #e9e9e9; +} + +#menu a.flag { + padding-left: 12px; + background: url(../images/menu_blank.gif) 0 0.35em no-repeat; +} + +#menu div.flag { + padding: 0 10px; + height: 26px; + line-height: 26px; + color: #6e7475; +} + +#menu ul li.menuli_style3 { + background-color: #e9e9e9; + color: #6e7475; + text-decoration: none; + padding-left: 20px; +} + +/* Styles for autocomplete */ + +li.ui-autocomplete-category { + padding: 3px 0px 0px 5px; + height: 18px; + background: #ededed url(../images/menu_cat_gray.png) top left repeat-x; + font-size: 11px; + /* font-weight: bold; */ +} + +/* IE hack (as usual) */ +html>body li.ui-autocomplete-category { + vertical-align: center; + height: auto; + min-height: 18px; +} + +li.ui-menu-item { + text-align: left; + font-size: 10px; + border-bottom: 1px solid white; + padding: 0 0 0 2px; + color: #000; + background: #e8e8e8; +} + +ul.ui-autocomplete { + width: 150px; + position: absolute; + border-width: 2px; + /* disabled shadow + box-shadow: 0px 8px 16px 0px #666666; + -webkit-box-shadow: 0px 8px 16px 0px #666666; + -moz-box-shadow: 0px 8px 16px 0px #666666; + */ +} + +.statusgroup { + border-left: 8px solid #8A8A8A; +} + +.statusOK, .statusUP, .statusRECOVERY { + border-left: 8px solid #00cc33; +} + +.statusCRITICAL, .statusDOWN { + border-left: 8px solid #ff5252; +} + +.statusWARNING { + border-left: 8px solid #ffb533; +} + +.statusUNKNOWN, .statusUNREACHABLE { + border-left: 8px solid #db54fd; +} + +.statusPENDING { + border-left: 8px solid #73cce3; +} diff --git a/icinga/stylesheets/notifications.css b/icinga/stylesheets/notifications.css new file mode 100644 index 0000000..1263f75 --- /dev/null +++ b/icinga/stylesheets/notifications.css @@ -0,0 +1,38 @@ + +.notifications { font-family: arial,serif; font-size: 8pt; background-color: #fff; color: #000; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; font-size: 8pt; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +.navBoxTitle { font-weight: bold; } +.navBoxItem { color: #707677; } +.navBoxFile { font-weight: bold; text-align: center; color: #707677; } + +table.notifications { background-color: #fff; padding: 5; } +th.notifications { font-size: 10pt; background-color: #707677; color: #fff; } +.notificationsOdd { background-color: #ededed; } +.notificationsEven { background-color: #e9e9e9; } + +.notificationsOK { background-color: #00cc33; color: #fff; text-align: center; } +.notificationsUNKNOWN { background-color: #bf44b2; color: #fff; text-align: center; } +.notificationsWARNING { background-color: #ffa500; color: #fff; text-align: center; } +.notificationsCRITICAL { background-color: #ff3300; color: #fff; text-align: center; } +.notificationsACKNOWLEDGEMENT { background-color: #acacac; color: #fff; text-align: center; } +.notificationsCUSTOM { background-color: #778899; color: #fff; text-align: center; } + +.notificationsHOSTUP { background-color: #00cc33; color: #fff; text-align: center; } +.notificationsHOSTDOWN { background-color: #ff3300; color: #fff; text-align: center; } +.notificationsHOSTUNREACHABLE { background-color: #bf44b2; color: #fff; text-align: center; } +.notificationsHOSTACKNOWLEDGEMENT { background-color: #acacac; color: #fff; text-align: center; } +.notificationsHOSTCUSTOM { background-color: #778899; color: #fff; text-align: center; } diff --git a/icinga/stylesheets/outages.css b/icinga/stylesheets/outages.css new file mode 100644 index 0000000..c79bcca --- /dev/null +++ b/icinga/stylesheets/outages.css @@ -0,0 +1,30 @@ + +.outages { font-family: arial,serif; background-color: #fff; color: #000; font-size: 10pt; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +table { width: 100% } +th { text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.infoMessage { text-align: center; color: #ff3300; font-weight: bold; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.itemTotalsTitle { font-size: 8pt; text-align: center; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +table.data { background-color: #fff; padding: 2; } +th.data { text-align: left; font-size: 10pt; background-color: #707677; color: #fff; } +.dataOdd { background-color: #ededed; } +.dataEven { background-color: #e9e9e9; } + +.hostUP { background-color: #00cc33; font-weight: bold; } +.hostDOWN { background-color: #ff3300; font-weight: bold; } +.hostUNREACHABLE { background-color: #bf44b2; font-weight: bold; } + diff --git a/icinga/stylesheets/showlog.css b/icinga/stylesheets/showlog.css new file mode 100644 index 0000000..c466fb9 --- /dev/null +++ b/icinga/stylesheets/showlog.css @@ -0,0 +1,22 @@ + +.showlog { font-family: arial,serif; font-size: 8pt; background-color: white; color: black; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } +hr { border: 0; color: #ededed; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.infoMessage { text-align: center; color: #ff3300; font-weight: bold; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.navBoxTitle { font-weight: bold; } +.navBoxItem { color: #707677 } +.navBoxFile { color: #707677; font-weight: bold; text-align: center; } + +.dateTimeBreak { font-size: 10pt; font-weight: bold; background-color: #ededed; color: #707677; } \ No newline at end of file diff --git a/icinga/stylesheets/status.css b/icinga/stylesheets/status.css new file mode 100644 index 0000000..c8a642d --- /dev/null +++ b/icinga/stylesheets/status.css @@ -0,0 +1,147 @@ + +.status { font-family: arial,serif; font-size: 8pt; background-color: #fff; color: #000; } + +a { color: #000; text-decoration: none; } +a:hover { color: #6e7475; } +th { text-align: left; font-size: 8pt; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.infoMessage { text-align: center; color: #ff3300; font-weight: bold; } + +.infoBox { color: #000; padding: 2px; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.statusTitle { text-align: center; font-weight: bold; font-size: 10pt; vertical-align: middle;} + +table.status { background-color: #fff; padding: 2px; border: 0; } +th.status { font-size: 10pt; background-color: #707677; color: #fff; border: 0; } +div.status { font-size: 10pt; text-align: center; } +.statusOdd { background-color: #cfcfcf; } +.statusEven { background-color: #e7e7e7; } + +.statusPENDING { text-align: center; background-color: #acacac; color: #fff; } +.statusDOWNTIME { text-align: center; background-color: #acacac; color: #fff; } +.statusOK { text-align: center; background-color: #00CC33; color: #fff; } +.statusRECOVERY { text-align: center; background-color: #00CC33; color: #fff; } +.statusUNKNOWN { text-align: center; background-color: #E066FF; color: #fff; } +.statusWARNING { text-align: center; background-color: #ffa500; color: #fff; } +.statusCRITICAL { text-align: center; background-color: #ff3300; color: #fff; } +.statusPENDING a, .statusDOWNTIME a, .statusOK a, .statusRECOVERY a, .statusUNKNOWN a, .statusWARNING a, .statusCRITICAL a { color: #000; } +.statusPENDING a:hover, .statusDOWNTIME a:hover, .statusOK a:hover, .statusRECOVERY a:hover, .statusUNKNOWN a:hover, .statusWARNING a:hover, .statusCRITICAL a:hover { color: #fff; } + +.statusHOSTPENDING { text-align: center; background-color: #acacac; color: #fff; } +.statusHOSTDOWNTIME { text-align: center; background-color: #acacac; color: #fff; } +.statusHOSTUP { text-align: center; background-color: #00cc33; color: #fff; } +.statusHOSTDOWN { text-align: center; background-color: #ff3300; color: #fff; } +.statusHOSTDOWNACK { text-align: center; background-color: #ff3300; color: #fff; } +.statusHOSTDOWNSCHED { text-align: center; background-color: #ff3300; color: #fff; } +.statusHOSTUNREACHABLE { text-align: center; background-color: #E066FF; color: #fff; } +.statusHOSTUNREACHABLEACK { text-align: center; background-color: #E066FF; color: #fff; } +.statusHOSTUNREACHABLESCHED { text-align: center; background-color: #E066FF; color: #fff; } +.statusHOSTPENDING a, .statusHOSTDOWNTIME a, .statusHOSTUP a, .statusHOSTDOWN a, .statusHOSTDOWNACK a, .statusHOSTDOWNSCHED a, .statusHOSTUNREACHABLE a, .statusHOSTUNREACHABLEACK a, .statusHOSTUNREACHABLESCHED a { color: #000; } +.statusHOSTPENDING a:hover, .statusHOSTDOWNTIME a:hover, .statusHOSTUP a:hover, .statusHOSTDOWN a:hover, .statusHOSTDOWNACK a:hover, .statusHOSTDOWNSCHED a:hover, .statusHOSTUNREACHABLE a:hover, .statusHOSTUNREACHABLEACK a:hover, .statusHOSTUNREACHABLESCHED a:hover { color: #fff; } + +.statusBGUNKNOWN { background-color: #EEAEEE; } +.statusBGUNKNOWNACK { background-color: #EEAEEE; } +.statusBGUNKNOWNSCHED { background-color: #EEAEEE; } +.statusBGWARNING { background-color: #ffda9f; } +.statusBGWARNINGACK { background-color: #ffda9f; } +.statusBGWARNINGSCHED { background-color: #ffda9f; } +.statusBGCRITICAL { background-color: #ffd4c9; } +.statusBGCRITICALACK { background-color: #ffd4c9; } +.statusBGCRITICALSCHED { background-color: #ffd4c9; } +.statusBGDOWN { background-color: #ffd4c9; } +.statusBGDOWNACK { background-color: #ffd4c9; } +.statusBGDOWNSCHED { background-color: #ffd4c9; } +.statusBGUNREACHABLE { background-color: #EEAEEE; } +.statusBGUNREACHABLEACK { background-color: #EEAEEE; } +.statusBGUNREACHABLESCHED { background-color: #EEAEEE; } + +div.serviceTotals { text-align: center; font-weight: bold; font-size: 10pt; } +table.serviceTotals { font-size: 10pt; background-color: #fff; padding: 2px; border: 0; } +th.serviceTotals,A.serviceTotals { text-align: center; font-size: 10pt; background-color: #707677; color: #fff; border: 0; } +td.serviceTotals { text-align: center; background-color: #e9e9e9; } +a.serviceTotals:hover { color: #000; } + +.serviceTotalsOK { text-align: center; background-color: #00CC33; color: #fff; border: 0 } +.serviceTotalsBGOK { border: 1px #00CC33 solid; } +.serviceTotalsWARNING { text-align: center; background-color: #ffa500; color: #fff; border: 0 } +.serviceTotalsBGWARNING { border: 1px #ffa500 solid; } +.serviceTotalsUNKNOWN { text-align: center; background-color: #E066FF; color: #fff; border: 0 } +.serviceTotalsBGUNKNOWN { border: 1px #E066FF solid; } +.serviceTotalsCRITICAL { text-align: center; background-color: #ff3300; color: #fff; border: 0 } +.serviceTotalsBGCRITICAL { border: 1px #ff3300 solid; } +.serviceTotalsPENDING { text-align: center; background-color: #acacac; color: #fff; border: 0 } +.serviceTotalsBGPENDING { border: 1px #acacac solid; } +.serviceTotalsPROBLEMS { text-align: center; background-color: #6ec2fd; color: #fff; border: 0 } +.serviceTotalsBGPROBLEMS { border: 1px #6ec2fd solid; } + +div.serviceTotalsCommands { text-align: right; font-weight: bold; font-size: 10pt; } +table.serviceTotalsCommands { font-size: 10pt; background-color: #fff; padding: 2px; border: 0; } +th.serviceTotalsCommands,A.serviceTotalsCommands { text-align: right; font-size: 10pt; background-color: #707677; color: #fff; border: 0; } +td.serviceTotalsCommands { text-align: right; background-color: #e9e9e9; border: 0; } +a.serviceTotalsCommands:hover { color: #000; } +serviceTotalsCommands a:hover { color: #fff; } + +div.hostTotals { text-align: center; font-weight: bold; font-size: 10pt; } +table.hostTotals { font-size: 10pt; background-color: #fff; padding: 2px; border: 0; } +th.hostTotals,A.hostTotals { text-align: center; font-size: 10pt; background-color: #707677; color: #fff; border: 0; } +td.hostTotals { text-align: center; background-color: #e9e9e9; } +a.hostTotals:hover { color: #000; } + +.hostTotalsUP { text-align: center; background-color: #00cc33; color: #fff; border: 0 } +.hostTotalsBGUP { border: 1px #00cc33 solid; } +.hostTotalsDOWN { text-align: center; background-color: #ff3300; color: #fff; border: 0 } +.hostTotalsBGDOWN { border: 1px #ff3300 solid; } +.hostTotalsUNREACHABLE { text-align: center; background-color: #E066FF; color: #fff; border: 0 } +.hostTotalsBGUNREACHABLE { border: 1px #E066FF solid; } +.hostTotalsPENDING { text-align: center; background-color: #acacac; color: #fff; border: 0 } +.hostTotalsBGPENDING { border: 1px #acacac solid; } +.hostTotalsPROBLEMS { text-align: center; background-color: #6ec2fd; color: #fff; border: 0 } +.hostTotalsBGPROBLEMS { border: 1px #6ec2fd solid; } + +div.hostTotalsCommands { text-align: right; font-weight: bold; font-size: 10pt; } +table.hostTotalsCommands { font-size: 10pt; background-color: #fff; padding: 2px; border: 0; } +th.hostTotalsCommands,A.hostTotalsCommands { text-align: right; font-size: 10pt; background-color: #707677; color: #fff; border: 0; } +td.hostTotalsCommands { text-align: right; background-color: #e9e9e9; border: 0; } +a.hostTotalsCommands:hover { color: #000; } +hostTotalsCommands a:hover { color: #fff; } + +.miniStatusPENDING { background-color: #acacac; text-align: center; } +.miniStatusOK { background-color: #00cc33; text-align: center; } +.miniStatusUNKNOWN { background-color: #bf44b2; text-align: center; } +.miniStatusWARNING { background-color: #ffa500; text-align: center; } +.miniStatusCRITICAL { background-color: #ff3300; text-align: center; } +.miniStatusPENDING a, .miniStatusOK a, .miniStatusUNKNOWN a, .miniStatusWARNING a, .miniStatusCRITICAL a { color: #000; } +.miniStatusPENDING a:hover, .miniStatusOK a:hover, .miniStatusUNKNOWN a:hover, .miniStatusWARNING a:hover, .miniStatusCRITICAL a:hover { color: #fff; } + +.miniStatusUP { background-color: #00cc33; text-align: center; } +.miniStatusDOWN { background-color: #ff3300; text-align: center; } +.miniStatusUNREACHABLE { background-color: #bf44b2; text-align: center; } +.miniStatusUP a, .miniStatusDOWN a, .miniStatusUNREACHABLE a { color: #000; } +.miniStatusUP a:hover, .miniStatusDOWN a:hover, .miniStatusUNREACHABLE a:hover { color: #fff; } + +.hostImportantProblem { background-color: #ff3300; color: #000; } +.hostUnimportantProblem { background-color: #ffcccc; color: #000; } + +.serviceImportantProblem { background-color: #ff3300; color: #000; } +.serviceUnimportantProblem { background-color: #ffcccc; color: #000; } + +.highlightRow { background-color: #BBC3BB; } + +.filterTitle { font-size: 10pt; font-weight: bold; } +.filterName { font-size: 9pt; padding-top: 0.2em; padding-bottom: 0.2em; padding-right: 0.7em;} +.filterValue { color: #707677; font-size: 9pt; padding-top: 0.2em; padding-bottom: 0.2em;} + +#display_filters_box, +#host_status_types_box, +#host_properties_box, +#service_status_types_box, +#service_properties_box { position: absolute; padding: 0.4em; margin-left: 0.5em; z-index: 101; } + +#display_filters_box { z-index: 100; padding-right: 1em; } + +#apply_button { margin-top:0.5em; } diff --git a/icinga/stylesheets/statusmap.css b/icinga/stylesheets/statusmap.css new file mode 100644 index 0000000..e464e75 --- /dev/null +++ b/icinga/stylesheets/statusmap.css @@ -0,0 +1,23 @@ + +.statusmap { font-family: arial,serif; font-size: 8pt; background-color: #fff; color: #000; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { font-family: arial,serif; color: #ff3300; } + +.optBox { font-size: 10pt; font-weight: bold; } + +.imageInfo { font-weight: bold; text-align: center; } + +.zoomTitle { font-size: 10pt; font-weight: bold; } + +.popupText { font-weight: bold; } + diff --git a/icinga/stylesheets/summary.css b/icinga/stylesheets/summary.css new file mode 100644 index 0000000..454ae95 --- /dev/null +++ b/icinga/stylesheets/summary.css @@ -0,0 +1,58 @@ + +.summary { font-family: arial,serif; font-size: 8pt; background-color: #fff; color: #000; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; font-size: 8pt; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.errorMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.errorDescription { text-align: center; font-weight: bold; font-size: 10pt; } +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.infoMessage { text-align: center; color: #ff3300; font-weight: bold; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.reportRange { text-align: center; font-weight: bold; } +.reportDuration { text-align: center; } +.reportTime { text-align: center; } + +.reportDataEven { background-color: #ededed; padding: 2; } +.reportDataOdd { background-color: #e9e9e9; padding: 2; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.dataSubTitle { text-align: center; font-weight: bold; } + +table.data { background-color: #fff; padding: 2; } +th.data { font-size: 10pt; background-color: #707677; color: #fff; } +.dataOdd { background-color: #ededed; } +.dataEven { background-color: #e9e9e9; } + +.hostUP { background-color: #00cc33; color: #fff; } +.hostDOWN { background-color: #ff3300; color: #fff; } +.hostUNREACHABLE { background-color: #bf44b2; color: #fff; } +tr.dataEven td.hostUP, tr.dataEven td.hostDOWN, tr.dataEven .hostUNREACHABLE { text-align: center; } +tr.dataOdd td.hostUP, tr.dataOdd td.hostDOWN, tr.dataOdd .hostUNREACHABLE { text-align: center; } + +.serviceOK { background-color: #00cc33; color: #fff; } +.serviceWARNING { background-color: #ffa500; color: #fff; } +.serviceUNKNOWN { background-color: #bf44b2; color: #fff; } +.serviceCRITICAL { background-color: #ff3300; color: #fff; } +tr.dataEven td.serviceOK, tr.dataEven td.serviceWARNING, tr.dataEven td.serviceUNKNOWN, tr.dataEven td.serviceCRITICAL { text-align: center; } +tr.dataOdd td.serviceOK, tr.dataOdd td.serviceWARNING, tr.dataOdd td.serviceUNKNOWN, tr.dataOdd td.serviceCRITICAL { text-align: center; } + +.optBoxTitle { font-weight: bold; } +.optBoxValue { color: #707677; } + +.helpfulHint { font-style: italic; text-align: center; } + +.dateSelectTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.dateSelectSubTitle { font-weight: bold; } + +.reportSelectTip { font-style: italic; } + +.reportSelectTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.reportSelectSubTitle { text-align: right; } diff --git a/icinga/stylesheets/tac.css b/icinga/stylesheets/tac.css new file mode 100644 index 0000000..aaad103 --- /dev/null +++ b/icinga/stylesheets/tac.css @@ -0,0 +1,143 @@ + +.tac { font-family: arial,serif; background-color: #fff; color: #000; font-size: 8pt; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +td { font-size: 8pt; } + +.errorMessage { font-weight: bold; font-size: 10pt; background-color: #fff; color: #000; } +.errorDescription { text-align: center; font-weight: bold; font-size: 10pt; } +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } + +.title { font-weight: bold; font-size: large; background-color: #000; color: #fff; } +.titleItem { background-color: #000; color: #fff; } + +.healthTitle { font-weight: bold; font-size: 10pt; background-color: #707677; color: #fff; } +.healthBox { padding: 2px; background-color: #e9e9e9; color: #fff; } +.healthItem { font-size: 10pt; background-color: #e9e9e9; color: #6e7475; } +.healthBar { background-color: #ededed; color: #fff; } + +.perfTitle { font-weight: bold; font-size: 10pt; background-color: #707677; color: #fff; } +.perfBox { background-color: #e9e9e9; color: #fff; } +.perfItem { font-size: 10pt; background-color: #e9e9e9; color: #6e7475; } +.perfValue { font-size: 10pt; background-color: #e9e9e9; color: #6e7475; } + +/* Features */ + +.featureTitle { font-weight: bold; font-size: 10pt; background-color: #707677; color: #fff; } +.featureHeader { text-align: center; font-size: 10pt; background-color: #e9e9e9; color: #6e7475; } + +.featureEnabledFlapDetection { text-align: center; font-size: 10pt; background-color: #00cc33; color: #fff; } +.featureDisabledFlapDetection { text-align: center; font-size: 10pt; background-color: #ff3300; color: #fff; } +.featureItemEnabledServiceFlapDetection { text-align: center; background-color: #00cc33; color: #fff; } +.featureItemDisabledServiceFlapDetection { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemEnabledHostFlapDetection { text-align: center; background-color: #00cc33; color: #fff; } +.featureItemDisabledHostFlapDetection { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemServicesNotFlapping { text-align: center; background-color: #00cc33; color: #fff; } +.featureItemServicesFlapping { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemHostsNotFlapping { text-align: center; background-color: #00cc33; color: #fff; } +.featureItemHostsFlapping { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemDisabledServiceFlapDetection a, .featureItemDisabledHostFlapDetection a, .featureItemServicesFlapping a, .featureItemHostsFlapping a { color: #fff; } +.featureItemDisabledServiceFlapDetection a:hover, .featureItemDisabledHostFlapDetection a:hover, .featureItemServicesFlapping a:hover, .featureItemHostsFlapping a:hover { color: #000; } + +.featureEnabledNotifications { text-align: center; font-size: 10pt; background-color: #00cc33; color: #fff; } +.featureDisabledNotifications { text-align: center; font-size: 10pt; background-color: #ff3300; color: #fff; } +.featureItemEnabledServiceNotifications { text-align: center; background-color: #00cc33; color: #fff; } +.featureItemDisabledServiceNotifications { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemEnabledHostNotifications { text-align: center; background-color: #00cc33; color: #fff; } +.featureItemDisabledHostNotifications { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemDisabledServiceNotifications a, .featureItemDisabledHostNotifications a { color: #fff; } +.featureItemDisabledServiceNotifications a:hover, .featureItemDisabledHostNotifications a:hover { color: #000; } + +.featureEnabledHandlers { text-align: center; background-color: #00CC33; color: #fff; } +.featureDisabledHandlers { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemEnabledServiceHandlers { text-align: center; background-color: #00CC33; color: #fff; } +.featureItemDisabledServiceHandlers { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemEnabledHostHandlers { text-align: center; background-color: #00cc33; color: #fff; } +.featureItemDisabledHostHandlers { text-align: center; background-color: #ff3300; color: #fff; } +.featureItemDisabledServiceHandlers a, .featureItemDisabledHostHandlers a { color: #fff; } +.featureItemDisabledServiceHandlers a:hover, .featureItemDisabledHostHandlers a:hover { color: #000; } + +/* Service Checks */ + +.EnabledActiveServiceChecks { text-align: center; background-color: #00cc33; color: #fff; } +.DisabledActiveServiceChecks { text-align: center; background-color: #ff3300; color: #fff; } +.EnabledPassiveServiceChecks { text-align: center; background-color: #00cc33; color: #fff; } +.DisabledPassiveServiceChecks { text-align: center; background-color: #ff3300; color: #fff; } + +.ItemActiveServiceChecks, +.ItemActiveServiceChecksWithPassiveDisabled, +.ItemPassiveServiceChecks { text-align: center; background-color: #00cc33; color: #fff; } +.ItemDisabledServiceChecks { text-align: center; background-color: #ff3300; color: #fff; } + +.ItemActiveServiceChecks a, +.ItemActiveServiceChecksWithPassiveDisabled a, +.ItemPassiveServiceChecks a, +.ItemDisabledServiceChecks a { color: #fff; } + +.ItemActiveServiceChecks a:hover, +.ItemActiveServiceChecksWithPassiveDisabled a:hover, +.ItemPassiveServiceChecks a:hover { color: #333333; } +.ItemDisabledServiceChecks a:hover { color: #000; } + +/* Host Checks */ + +.EnabledActiveHostChecks { text-align: center; background-color: #00cc33; color: #fff; } +.DisabledActiveHostChecks { text-align: center; background-color: #ff3300; color: #fff; } +.EnabledPassiveHostChecks { text-align: center; background-color: #00cc33; color: #fff; } +.DisabledPassiveHostChecks { text-align: center; background-color: #ff3300; color: #fff; } + +.ItemActiveHostChecks, +.ItemActiveHostChecksWithPassiveDisabled, +.ItemPassiveHostChecks { text-align: center; background-color: #00cc33; color: #fff; } +.ItemDisabledHostChecks { text-align: center; background-color: #ff3300; color: #fff; } + +.ItemActiveHostChecks a, +.ItemActiveHostChecksWithPassiveDisabled a, +.ItemPassiveHostChecks a, +.ItemDisabledHostChecks a { color: #fff; } + +.ItemActiveHostChecks a:hover, +.ItemActiveHostChecksWithPassiveDisabled a:hover, +.ItemPassiveHostChecks a:hover { color: #333333; } +.ItemDisabledHostChecks a:hover { color: #000; } + +/* Outages */ + +.outageTitle { font-weight: bold; font-size: 10pt; background-color: #707677; color: #fff; } +.outageHeader { text-align: center; font-size: 10pt; background-color: #e9e9e9; color: #6e7475; } + +.outageImportantProblem { text-align: center; background-color: #ff3300; color: #fff; } +.outageUnimportantProblem { text-align: center; background-color: #f5a9a9; color: #000000; } +.outageImportantProblem a { color: #fff; } +.outageUnimportantProblem a { color: #585858; } +.outageImportantProblem a:hover, .outageUnimportantProblem a:hover { color: #000; } + +/* Hosts */ + +.hostTitle { font-weight: bold; font-size: 10pt; background-color: #707677; color: #fff; } +.hostHeader { text-align: center; font-size: 10pt; background-color: #e9e9e9; color: #6e7475; } + +.hostImportantProblem { text-align: center; background-color: #ff3300; color: #fff; } +.hostUnimportantProblem { text-align: center; background-color: #f5a9a9; color: #000000; } +.hostImportantProblem a { color: #fff; } +.hostUnimportantProblem a { color: #000; } +.hostImportantProblem a:hover { color: #000; } +.hostUnimportantProblem a:hover { color: #6e7475; } + +/* Services */ + +.serviceTitle { font-weight: bold; font-size: 10pt; background-color: #707677; color: #fff; } +.serviceHeader { text-align: center; font-size: 10pt; background-color: #e9e9e9; color: #6e7475; } + +.serviceImportantProblem { text-align: center; background-color: #ff3300; color: #fff; } +.serviceUnimportantProblem { text-align: center; background-color: #f5a9a9; color: #000000; } +.serviceImportantProblem a { color: #fff; } +.serviceUnimportantProblem a { color: #000; } +.serviceImportantProblem a:hover { color: #000; } +.serviceUnimportantProblem a:hover { color: #6e7475; } +.serviceUnimportantProblem .tac_break { border: 0; height: 3px; } diff --git a/icinga/stylesheets/tacheader.css b/icinga/stylesheets/tacheader.css new file mode 100644 index 0000000..6e0a519 --- /dev/null +++ b/icinga/stylesheets/tacheader.css @@ -0,0 +1,187 @@ +@charset "utf-8"; +/* CSS Document */ + +body { + font-family: Arial, Verdana, sans-serif; + font-size: 9pt; + background: #D7D8DA; + margin: 2px 5px 0px 5px; +} + +img { border: 0px } + +.color a { + color: #ffffff; + text-decoration: none; +} + +.gray a { + color: #000000; + text-decoration: none; +} + +strong { + font-weight: bolder; +} + +em { + font-style: italic; +} + +p.legal { + font-size: 0.8em; + margin: 10px auto; +} + +p { margin: 15px auto; } + +table td, table th { + vertical-align: middle; + margin: 0 0; + padding: 0 0; +} + +table { + border-collapse: collapse; +} + +div.tacheader-link { + cursor: pointer; +} + +div.tacheader-status-container { + border: 1px #a0a0a0 solid; + width: 180px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +div.tacheader-status { + font-size: 9pt; + padding-left: 4px; + padding-right: 4px; + padding-top: 2px; + padding-bottom: 2px; + background-color: #c0c0c0; + text-align: center; + margin-top: auto; + margin-bottom: auto; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +div.tacheader-monitor { + font-size: 8pt; + padding: 2px; + text-align: left; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +div.tacheader-overall-status-item { + color: #000000; + padding: 3px; +} + +div.tacheader-status-up { + background-color: #00CC33; +} + +div.tacheader-status-down { + background-color: #FF3300; +} + +div.tacheader-status-down-acknowledged { + border: 1px #FF3300 solid; + background-color: #F5A9A9; +} + +div.tacheader-status-down-handled { + border: 1px #FF3300 solid; + color: #FF3300; + font-weight: bolder; +} + +div.tacheader-status-unreachable { + background-color: #E066FF; +} + +div.tacheader-status-unreachable-acknowledged { + border: 1px #E066FF solid; + background-color: #E68BFF; +} + +div.tacheader-status-unreachable-handled { + border: 1px #E066FF solid; + color: #E066FF; + font-weight: bolder; +} + +div.tacheader-status-ok { + background-color: #00CC33; +} + +div.tacheader-status-warning { + background-color: #FFA500; +} + +div.tacheader-status-warning-acknowledged { + border: 1px #FFA500 solid; + background-color: #FFBF4F; +} + +div.tacheader-status-warning-handled { + border: 1px #FFA500 solid; + color: #FFA500; + font-weight: bolder; +} + +div.tacheader-status-critical { + background-color: #FF3300; +} + +div.tacheader-status-critical-acknowledged { + border: 1px #FF3300 solid; + background-color: #F5A9A9; +} + +div.tacheader-status-critical-handled { + border: 1px #FF3300 solid; + color: #FF3300; + font-weight: bolder; +} + +div.tacheader-status-unknown { + background-color: #E066FF; +} + +div.tacheader-status-unknown-acknowledged { + border: 1px #E066FF solid; + background-color: #E68BFF; +} + +div.tacheader-status-unknown-handled { + border: 1px #E066FF solid; + color: #E066FF; + font-weight: bolder; +} + +div.tacheader-status-pending { + background-color: #51BCD7; +} + +table.tacheader-monitor-performance-container { + font-size: 9pt; + margin: 6px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +.tacheader-monitor-performance-container a { + color: #666666; + text-decoration: none; +} diff --git a/icinga/stylesheets/trends.css b/icinga/stylesheets/trends.css new file mode 100644 index 0000000..f26de65 --- /dev/null +++ b/icinga/stylesheets/trends.css @@ -0,0 +1,29 @@ + +.trends { font-family: arial,serif; font-size: 8pt; background-color: #fff; color: #000; } + +a { color: #6e7475; text-decoration: none; } +a:hover { color: #000; } +th { text-align: left; padding: 0 5px; border: 0; } +td { font-size: 8pt; border: 0; } + +.warningMessage { text-align: center; color: #ff3300; font-weight: bold; font-size: 10pt; } +.infoMessage { text-align: center; color: #ff3300; font-weight: bold; } + +.infoBox { color: #000; padding: 2; border: 0; } +.infoBoxTitle { font-size: 10pt; font-weight: bold; color: #000; } +.infoBoxBadProcStatus { color: #ff3300; } +a.homepageURL:Hover { color: #ff3300; } + +.helpfulHints { text-align: center; } + +.dataTitle { text-align: center; font-weight: bold; font-size: 10pt; } + +.reportRange { text-align: center; font-weight: bold; } +.reportDuration { text-align: center; } +.reportTime { text-align: center; } + +.reportSelectTitle { text-align: center; font-weight: bold; font-size: 10pt; } +.reportSelectSubTitle { font-family: arial,serif; text-align: right; } + +.popupText { font-weight: bold; } + diff --git a/icinga2-classicui/apache2.conf b/icinga2-classicui/apache2.conf new file mode 100644 index 0000000..9b81bef --- /dev/null +++ b/icinga2-classicui/apache2.conf @@ -0,0 +1,31 @@ +# apache configuration for icinga + +ScriptAlias /cgi-bin/icinga2-classicui /usr/lib/cgi-bin/icinga2-classicui + +# Where the stylesheets (config files) reside +Alias /icinga2-classicui/stylesheets /etc/icinga2-classicui/stylesheets + +# Where the HTML pages live +Alias /icinga2-classicui /usr/share/icinga2/classicui + + + SetEnv ICINGA_CGI_CONFIG /etc/icinga2-classicui/cgi.cfg + + + + Options FollowSymLinks + + DirectoryIndex index.html + + AllowOverride AuthConfig + + + Order Allow,Deny + Allow From All + + + AuthName "Icinga Access" + AuthType Basic + AuthUserFile /etc/icinga2-classicui/htpasswd.users + Require valid-user + diff --git a/icinga2-classicui/cgi.cfg b/icinga2-classicui/cgi.cfg new file mode 100644 index 0000000..fae1151 --- /dev/null +++ b/icinga2-classicui/cgi.cfg @@ -0,0 +1,74 @@ +# Icinga 2 Classic UI configuration +# +# requires icinga-gui package +# check http://docs.icinga.org for option details +standalone_installation=1 +physical_html_path=/usr/share/icinga +url_html_path=/icinga2-classicui +url_stylesheets_path=/icinga2-classicui/stylesheets +http_charset=utf-8 +refresh_rate=30 +refresh_type=1 +escape_html_tags=1 +result_limit=50 +show_tac_header=1 +use_pending_states=1 +first_day_of_week=0 +suppress_maintenance_downtime=0 +action_url_target=main +notes_url_target=main +use_authentication=1 +use_ssl_authentication=0 +lowercase_user_name=0 +authorized_for_system_information=icingaadmin +authorized_for_configuration_information=icingaadmin +authorized_for_full_command_resolution=icingaadmin +authorized_for_system_commands=icingaadmin +authorized_for_all_services=icingaadmin +authorized_for_all_hosts=icingaadmin +authorized_for_all_service_commands=icingaadmin +authorized_for_all_host_commands=icingaadmin +show_all_services_host_is_authorized_for=1 +show_partial_hostgroups=0 +show_partial_servicegroups=0 +default_statusmap_layout=5 +status_show_long_plugin_output=0 +display_status_totals=0 +highlight_table_rows=1 +add_notif_num_hard=28 +add_notif_num_soft=0 +use_logging=0 +cgi_log_file=/var/log/icinga/gui/icinga-cgi.log +cgi_log_rotation_method=d +cgi_log_archive_path=/var/log/icinga/gui +enforce_comments_on_actions=0 +send_ack_notifications=1 +persistent_ack_comments=0 +lock_author_names=1 +default_downtime_duration=7200 +set_expire_ack_by_default=0 +default_expiring_acknowledgement_duration=86400 +default_expiring_disabled_notifications_duration=86400 +tac_show_only_hard_state=0 +show_tac_header_pending=1 +exclude_customvar_name=PASSWORD,COMMUNITY +exclude_customvar_value=secret +extinfo_show_child_hosts=0 +tab_friendly_titles=1 +###################################### +# STANDALONE (ICINGA 2) OPTIONS +# requires standalone_installation=1 +###################################### +object_cache_file=/var/cache/icinga2/objects.cache +status_file=/var/cache/icinga2/status.dat +resource_file=/etc/icinga/resource.cfg +command_file=/var/run/icinga2/cmd/icinga2.cmd +check_external_commands=1 +interval_length=60 +status_update_interval=10 +log_file=/var/log/icinga2/compat/icinga.log +log_rotation_method=h +log_archive_path=/var/log/icinga2/compat/archives +date_format=us +url_cgi_path=/cgi-bin/icinga2-classicui +# EOF diff --git a/icinga2-classicui/htpasswd.users b/icinga2-classicui/htpasswd.users new file mode 100644 index 0000000..235cff8 --- /dev/null +++ b/icinga2-classicui/htpasswd.users @@ -0,0 +1 @@ +icingaadmin:$apr1$iFfKiuLF$nwExYtTK3UsmVYHYTzllL/ diff --git a/icinga2-classicui/stylesheets b/icinga2-classicui/stylesheets new file mode 120000 index 0000000..6c4562f --- /dev/null +++ b/icinga2-classicui/stylesheets @@ -0,0 +1 @@ +../icinga/stylesheets \ No newline at end of file diff --git a/icinga2/conf.d/app.conf b/icinga2/conf.d/app.conf new file mode 100644 index 0000000..3e4be0d --- /dev/null +++ b/icinga2/conf.d/app.conf @@ -0,0 +1 @@ +object IcingaApplication "app" { } diff --git a/icinga2/conf.d/apt.conf b/icinga2/conf.d/apt.conf new file mode 100644 index 0000000..b2c77a0 --- /dev/null +++ b/icinga2/conf.d/apt.conf @@ -0,0 +1,7 @@ +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 new file mode 100644 index 0000000..e97b087 --- /dev/null +++ b/icinga2/conf.d/commands.conf @@ -0,0 +1,38 @@ +/* Command objects */ + +object NotificationCommand "mail-host-notification" { + command = [ SysconfDir + "/icinga2/scripts/mail-host-notification.sh" ] + + env = { + NOTIFICATIONTYPE = "$notification.type$" + HOSTALIAS = "$host.display_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 = [ SysconfDir + "/icinga2/scripts/mail-service-notification.sh" ] + + env = { + NOTIFICATIONTYPE = "$notification.type$" + SERVICEDESC = "$service.name$" + HOSTALIAS = "$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 new file mode 100644 index 0000000..0bed647 --- /dev/null +++ b/icinga2/conf.d/downtimes.conf @@ -0,0 +1,20 @@ +/** + * 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 new file mode 100644 index 0000000..e6004a3 --- /dev/null +++ b/icinga2/conf.d/groups.conf @@ -0,0 +1,37 @@ +/** + * 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 new file mode 100644 index 0000000..5ff1f9b --- /dev/null +++ b/icinga2/conf.d/hosts.conf @@ -0,0 +1,52 @@ +/* + * 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 attribute `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 new file mode 100644 index 0000000..73f0f5f --- /dev/null +++ b/icinga2/conf.d/notifications.conf @@ -0,0 +1,27 @@ +/** + * The example notification apply rules. + * + * Only applied if host/service objects have + * the custom attribute `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 + + 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 + + assign where host.vars.notification.mail +} diff --git a/icinga2/conf.d/satellite.conf b/icinga2/conf.d/satellite.conf new file mode 100644 index 0000000..4a6b97a --- /dev/null +++ b/icinga2/conf.d/satellite.conf @@ -0,0 +1,33 @@ +/* + * Host and Service templates for the Agent Setup. + */ + + +/** + * Provides settings for satellite hosts managed by 'icinga2 repository'. + * Define your global attributes here, for example custom + * attributes used for notifications, etc. + */ +template Host "satellite-host" { + vars.notification["mail"] = { + groups = [ "icingaadmins" ] + } +} + +/** + * Provides settings for satellite services managed by 'icinga2 repository'. + * Define your global satellite attributes here, for example custom + * attributes used for notifications, etc. + */ +template Service "satellite-service" { + vars.notification["mail"] = { + groups = [ "icingaadmins" ] + } +} + + +apply Dependency "satellite-host" to Host { + parent_host_name = host.zone + + assign where host.zone != "" && "satellite-host" in host.templates +} diff --git a/icinga2/conf.d/services.conf b/icinga2/conf.d/services.conf new file mode 100644 index 0000000..416915b --- /dev/null +++ b/icinga2/conf.d/services.conf @@ -0,0 +1,117 @@ +/* + * 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 attribute `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 new file mode 100644 index 0000000..3588f7f --- /dev/null +++ b/icinga2/conf.d/templates.conf @@ -0,0 +1,72 @@ +/* + * 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 ] + + 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 ] + + period = "24x7" +} + diff --git a/icinga2/conf.d/timeperiods.conf b/icinga2/conf.d/timeperiods.conf new file mode 100644 index 0000000..21fac52 --- /dev/null +++ b/icinga2/conf.d/timeperiods.conf @@ -0,0 +1,43 @@ +/** + * Sample timeperiods for Icinga 2 requiring + * 'legacy-timeperiod' template from the Icinga + * Template Library (ITL). + * Check the documentation for details. + */ + +object TimePeriod "24x7" { + import "legacy-timeperiod" + + 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" { + import "legacy-timeperiod" + + 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" { + import "legacy-timeperiod" + + display_name = "Icinga 2 never TimePeriod" + ranges = { + } +} + diff --git a/icinga2/conf.d/users.conf b/icinga2/conf.d/users.conf new file mode 100644 index 0000000..aa31e27 --- /dev/null +++ b/icinga2/conf.d/users.conf @@ -0,0 +1,17 @@ +/** + * 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 new file mode 100644 index 0000000..29232d6 --- /dev/null +++ b/icinga2/constants.conf @@ -0,0 +1,28 @@ +/** + * 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 new file mode 100644 index 0000000..0136de0 --- /dev/null +++ b/icinga2/features-available/api.conf @@ -0,0 +1,11 @@ +/** + * The API listener is used for distributed monitoring setups. + */ + +object ApiListener "api" { + cert_path = SysconfDir + "/icinga2/pki/" + NodeName + ".crt" + key_path = SysconfDir + "/icinga2/pki/" + NodeName + ".key" + ca_path = SysconfDir + "/icinga2/pki/ca.crt" + + ticket_salt = TicketSalt +} diff --git a/icinga2/features-available/checker.conf b/icinga2/features-available/checker.conf new file mode 100644 index 0000000..1139e62 --- /dev/null +++ b/icinga2/features-available/checker.conf @@ -0,0 +1,7 @@ +/** + * The checker component takes care of executing service checks. + */ + +library "checker" + +object CheckerComponent "checker" { } diff --git a/icinga2/features-available/command.conf b/icinga2/features-available/command.conf new file mode 100644 index 0000000..3583056 --- /dev/null +++ b/icinga2/features-available/command.conf @@ -0,0 +1,9 @@ +/** + * The ExternalCommandListener implements support for the external + * commands pipe. + */ + +library "compat" + +object ExternalCommandListener "command" { } + diff --git a/icinga2/features-available/compatlog.conf b/icinga2/features-available/compatlog.conf new file mode 100644 index 0000000..58c5df7 --- /dev/null +++ b/icinga2/features-available/compatlog.conf @@ -0,0 +1,9 @@ +/** + * The CompatLogger type is responsible for writing log files in a format + * that is compatible with Icinga 1.x. + */ + +library "compat" + +object CompatLogger "compatlog" { } + diff --git a/icinga2/features-available/debuglog.conf b/icinga2/features-available/debuglog.conf new file mode 100644 index 0000000..6e8e581 --- /dev/null +++ b/icinga2/features-available/debuglog.conf @@ -0,0 +1,11 @@ +/** + * 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 = LocalStateDir + "/log/icinga2/debug.log" +} + diff --git a/icinga2/features-available/gelf.conf b/icinga2/features-available/gelf.conf new file mode 100644 index 0000000..2db44ef --- /dev/null +++ b/icinga2/features-available/gelf.conf @@ -0,0 +1,12 @@ +/** + * The GelfWriter type writes event log entries + * to a GELF tcp socket provided by Graylog, + * Logstash or any other receiver. + */ + +library "perfdata" + +object GelfWriter "gelf" { + //host = "127.0.0.1" + //port = 12201 +} diff --git a/icinga2/features-available/graphite.conf b/icinga2/features-available/graphite.conf new file mode 100644 index 0000000..f2e59d9 --- /dev/null +++ b/icinga2/features-available/graphite.conf @@ -0,0 +1,11 @@ +/** + * 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 +} diff --git a/icinga2/features-available/influxdb.conf b/icinga2/features-available/influxdb.conf new file mode 100644 index 0000000..058568b --- /dev/null +++ b/icinga2/features-available/influxdb.conf @@ -0,0 +1,25 @@ +/** + * The InfluxdbWriter type writes check result metrics and + * performance data to an InfluxDB HTTP API + */ + +library "perfdata" + +object InfluxdbWriter "influxdb" { + //host = "127.0.0.1" + //port = 8086 + //database = "icinga2" + //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 new file mode 100644 index 0000000..45d44d6 --- /dev/null +++ b/icinga2/features-available/livestatus.conf @@ -0,0 +1,8 @@ +/** + * The livestatus library implements the livestatus query protocol. + */ + +library "livestatus" + +object LivestatusListener "livestatus" { } + diff --git a/icinga2/features-available/mainlog.conf b/icinga2/features-available/mainlog.conf new file mode 100644 index 0000000..ded9a7c --- /dev/null +++ b/icinga2/features-available/mainlog.conf @@ -0,0 +1,9 @@ +/** + * The FileLogger type writes log information to a file. + */ + +object FileLogger "main-log" { + severity = "information" + path = LocalStateDir + "/log/icinga2/icinga2.log" +} + diff --git a/icinga2/features-available/notification.conf b/icinga2/features-available/notification.conf new file mode 100644 index 0000000..aa22f60 --- /dev/null +++ b/icinga2/features-available/notification.conf @@ -0,0 +1,7 @@ +/** + * The notification component takes care of executing service checks. + */ + +library "notification" + +object NotificationComponent "notification" { } diff --git a/icinga2/features-available/opentsdb.conf b/icinga2/features-available/opentsdb.conf new file mode 100644 index 0000000..fcb547d --- /dev/null +++ b/icinga2/features-available/opentsdb.conf @@ -0,0 +1,11 @@ +/** + * The OpenTsdbWriter type writes check result metrics and + * performance data to a OpenTSDB tcp socket. + */ + +library "perfdata" + +object OpenTsdbWriter "opentsdb" { + //host = "127.0.0.1" + //port = 4242 +} diff --git a/icinga2/features-available/perfdata.conf b/icinga2/features-available/perfdata.conf new file mode 100644 index 0000000..356431f --- /dev/null +++ b/icinga2/features-available/perfdata.conf @@ -0,0 +1,8 @@ +/** + * The PerfdataWriter type writes performance data files and rotates + * them in a regular interval. + */ + +library "perfdata" + +object PerfdataWriter "perfdata" { } diff --git a/icinga2/features-available/statusdata.conf b/icinga2/features-available/statusdata.conf new file mode 100644 index 0000000..af02aa5 --- /dev/null +++ b/icinga2/features-available/statusdata.conf @@ -0,0 +1,10 @@ +/** + * 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. + */ + +library "compat" + +object StatusDataWriter "status" { } + diff --git a/icinga2/features-available/syslog.conf b/icinga2/features-available/syslog.conf new file mode 100644 index 0000000..3b794b4 --- /dev/null +++ b/icinga2/features-available/syslog.conf @@ -0,0 +1,8 @@ +/** + * The SyslogLogger type writes log information to syslog. + */ + +object SyslogLogger "syslog" { + severity = "warning" +} + diff --git a/icinga2/features-enabled/checker.conf b/icinga2/features-enabled/checker.conf new file mode 120000 index 0000000..d51cf79 --- /dev/null +++ b/icinga2/features-enabled/checker.conf @@ -0,0 +1 @@ +../features-available/checker.conf \ No newline at end of file diff --git a/icinga2/features-enabled/command.conf b/icinga2/features-enabled/command.conf new file mode 120000 index 0000000..42924bc --- /dev/null +++ b/icinga2/features-enabled/command.conf @@ -0,0 +1 @@ +../features-available/command.conf \ No newline at end of file diff --git a/icinga2/features-enabled/compatlog.conf b/icinga2/features-enabled/compatlog.conf new file mode 120000 index 0000000..6feca25 --- /dev/null +++ b/icinga2/features-enabled/compatlog.conf @@ -0,0 +1 @@ +../features-available/compatlog.conf \ No newline at end of file diff --git a/icinga2/features-enabled/mainlog.conf b/icinga2/features-enabled/mainlog.conf new file mode 120000 index 0000000..6bda4a5 --- /dev/null +++ b/icinga2/features-enabled/mainlog.conf @@ -0,0 +1 @@ +../features-available/mainlog.conf \ No newline at end of file diff --git a/icinga2/features-enabled/notification.conf b/icinga2/features-enabled/notification.conf new file mode 120000 index 0000000..c31d3b4 --- /dev/null +++ b/icinga2/features-enabled/notification.conf @@ -0,0 +1 @@ +../features-available/notification.conf \ No newline at end of file diff --git a/icinga2/features-enabled/statusdata.conf b/icinga2/features-enabled/statusdata.conf new file mode 120000 index 0000000..efacf70 --- /dev/null +++ b/icinga2/features-enabled/statusdata.conf @@ -0,0 +1 @@ +../features-available/statusdata.conf \ No newline at end of file diff --git a/icinga2/icinga2.conf b/icinga2/icinga2.conf new file mode 100644 index 0000000..a809b96 --- /dev/null +++ b/icinga2/icinga2.conf @@ -0,0 +1,63 @@ +/** + * 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" + +/** + * The repository.d directory contains all configuration objects + * managed by the 'icinga2 repository' CLI commands. + */ +include_recursive "repository.d" + +/** + * 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/init.conf b/icinga2/init.conf new file mode 100644 index 0000000..16a9041 --- /dev/null +++ b/icinga2/init.conf @@ -0,0 +1,7 @@ +/** + * This file is read by Icinga 2 before the main + * configuration file (icinga2.conf) is processed. + */ + +const RunAsUser = "nagios" +const RunAsGroup = "nagios" diff --git a/icinga2/repository.d/README b/icinga2/repository.d/README new file mode 100644 index 0000000..a5da082 --- /dev/null +++ b/icinga2/repository.d/README @@ -0,0 +1,3 @@ +This directory contains configuration files managed by 'icinga2 repository' +cli commands. Please run 'icinga2 repository --help' to see all available +options. diff --git a/icinga2/scripts/mail-host-notification.sh b/icinga2/scripts/mail-host-notification.sh new file mode 100755 index 0000000..e1ac716 --- /dev/null +++ b/icinga2/scripts/mail-host-notification.sh @@ -0,0 +1,20 @@ +#!/bin/sh +template=`cat <