summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--constants.conf31
-rw-r--r--features-available/api.conf10
-rw-r--r--features-available/checker.conf5
-rw-r--r--features-available/command.conf6
-rw-r--r--features-available/compatlog.conf6
-rw-r--r--features-available/debuglog.conf10
-rw-r--r--features-available/elasticsearch.conf8
-rw-r--r--features-available/gelf.conf10
-rw-r--r--features-available/graphite.conf9
-rw-r--r--features-available/icingadb.conf5
-rw-r--r--features-available/ido-mysql.conf11
-rw-r--r--features-available/ido-pgsql.conf11
-rw-r--r--features-available/influxdb.conf25
-rw-r--r--features-available/livestatus.conf5
-rw-r--r--features-available/mainlog.conf8
-rw-r--r--features-available/notification.conf5
-rw-r--r--features-available/opentsdb.conf25
-rw-r--r--features-available/perfdata.conf6
-rw-r--r--features-available/statusdata.conf7
-rw-r--r--features-available/syslog.conf7
l---------features-enabled/checker.conf1
-rw-r--r--icinga2.conf42
-rw-r--r--zones.conf18
23 files changed, 271 insertions, 0 deletions
diff --git a/constants.conf b/constants.conf
new file mode 100644
index 0000000..d6dcac9
--- /dev/null
+++ b/constants.conf
@@ -0,0 +1,31 @@
+/**
+ * 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`.
+ * Leave the default, so this config works on all nodes.
+ */
+//const NodeName = "localhost"
+
+/* Our local zone name. */
+const ZoneName = NodeName
+
+/* Secret key for remote node tickets */
+const TicketSalt = ""
+
+/* Public URL to icingaweb */
+const IcingaWebUrl = "https://icinga.tobiaswiese.net/icingaweb2"
diff --git a/features-available/api.conf b/features-available/api.conf
new file mode 100644
index 0000000..48c17e4
--- /dev/null
+++ b/features-available/api.conf
@@ -0,0 +1,10 @@
+/**
+ * The API listener is used for distributed monitoring setups.
+ */
+
+object ApiListener "api" {
+ // accept_config = false
+ // accept_commands = false
+
+ ticket_salt = TicketSalt
+}
diff --git a/features-available/checker.conf b/features-available/checker.conf
new file mode 100644
index 0000000..6f003b8
--- /dev/null
+++ b/features-available/checker.conf
@@ -0,0 +1,5 @@
+/**
+ * The checker component takes care of executing service checks.
+ */
+
+object CheckerComponent "checker" { }
diff --git a/features-available/command.conf b/features-available/command.conf
new file mode 100644
index 0000000..cc43883
--- /dev/null
+++ b/features-available/command.conf
@@ -0,0 +1,6 @@
+/**
+ * The ExternalCommandListener implements support for the external
+ * commands pipe.
+ */
+
+object ExternalCommandListener "command" { }
diff --git a/features-available/compatlog.conf b/features-available/compatlog.conf
new file mode 100644
index 0000000..9331b0a
--- /dev/null
+++ b/features-available/compatlog.conf
@@ -0,0 +1,6 @@
+/**
+ * The CompatLogger type is responsible for writing log files in a format
+ * that is compatible with Icinga 1.x.
+ */
+
+object CompatLogger "compatlog" { }
diff --git a/features-available/debuglog.conf b/features-available/debuglog.conf
new file mode 100644
index 0000000..91af633
--- /dev/null
+++ b/features-available/debuglog.conf
@@ -0,0 +1,10 @@
+/**
+ * The FileLogger type writes log information to a log file.
+ * Unlike the mainlog feature this sets up a logger
+ * with severity "debug".
+ */
+
+object FileLogger "debug-file" {
+ severity = "debug"
+ path = LogDir + "/debug.log"
+}
diff --git a/features-available/elasticsearch.conf b/features-available/elasticsearch.conf
new file mode 100644
index 0000000..6878d6f
--- /dev/null
+++ b/features-available/elasticsearch.conf
@@ -0,0 +1,8 @@
+object ElasticsearchWriter "elasticsearch" {
+ // host = "127.0.0.1"
+ // port = 9200
+ // index = "icinga2"
+ // enable_send_perfdata = false
+ // flush_threshold = 1024
+ // flush_interval = 10s
+}
diff --git a/features-available/gelf.conf b/features-available/gelf.conf
new file mode 100644
index 0000000..5c4b45f
--- /dev/null
+++ b/features-available/gelf.conf
@@ -0,0 +1,10 @@
+/**
+ * The GelfWriter type writes event log entries
+ * to a GELF tcp socket provided by Graylog,
+ * Logstash or any other receiver.
+ */
+
+object GelfWriter "gelf" {
+ // host = "127.0.0.1"
+ // port = 12201
+}
diff --git a/features-available/graphite.conf b/features-available/graphite.conf
new file mode 100644
index 0000000..67b52ec
--- /dev/null
+++ b/features-available/graphite.conf
@@ -0,0 +1,9 @@
+/**
+ * The GraphiteWriter type writes check result metrics and
+ * performance data to a graphite tcp socket.
+ */
+
+object GraphiteWriter "graphite" {
+ // host = "127.0.0.1"
+ // port = 2003
+}
diff --git a/features-available/icingadb.conf b/features-available/icingadb.conf
new file mode 100644
index 0000000..3abff7e
--- /dev/null
+++ b/features-available/icingadb.conf
@@ -0,0 +1,5 @@
+object IcingaDB "icingadb" {
+ // host = "127.0.0.1"
+ // port = 6380
+ // password = "xxx"
+}
diff --git a/features-available/ido-mysql.conf b/features-available/ido-mysql.conf
new file mode 100644
index 0000000..c467dad
--- /dev/null
+++ b/features-available/ido-mysql.conf
@@ -0,0 +1,11 @@
+/**
+ * The IdoMysqlConnection type implements MySQL support
+ * for DB IDO.
+ */
+
+object IdoMysqlConnection "ido-mysql" {
+ // user = "icinga"
+ // password = "icinga"
+ // host = "localhost"
+ // database = "icinga"
+}
diff --git a/features-available/ido-pgsql.conf b/features-available/ido-pgsql.conf
new file mode 100644
index 0000000..46d414d
--- /dev/null
+++ b/features-available/ido-pgsql.conf
@@ -0,0 +1,11 @@
+/**
+ * The IdoPgsqlConnection type implements PostgreSQL support
+ * for DB IDO.
+ */
+
+object IdoPgsqlConnection "ido-pgsql" {
+ // user = "icinga"
+ // password = "icinga"
+ // host = "localhost"
+ // database = "icinga"
+}
diff --git a/features-available/influxdb.conf b/features-available/influxdb.conf
new file mode 100644
index 0000000..f0436ee
--- /dev/null
+++ b/features-available/influxdb.conf
@@ -0,0 +1,25 @@
+/**
+ * The InfluxdbWriter type writes check result metrics and
+ * performance data to an InfluxDB HTTP API
+ */
+
+object InfluxdbWriter "influxdb" {
+ // host = "127.0.0.1"
+ // port = 8086
+ // database = "icinga2"
+ // flush_threshold = 1024
+ // flush_interval = 10s
+ // host_template = {
+ // measurement = "$host.check_command$"
+ // tags = {
+ // hostname = "$host.name$"
+ // }
+ // }
+ // service_template = {
+ // measurement = "$service.check_command$"
+ // tags = {
+ // hostname = "$host.name$"
+ // service = "$service.name$"
+ // }
+ // }
+}
diff --git a/features-available/livestatus.conf b/features-available/livestatus.conf
new file mode 100644
index 0000000..2203cb3
--- /dev/null
+++ b/features-available/livestatus.conf
@@ -0,0 +1,5 @@
+/**
+ * The LivestatusListener type implements the Livestatus query protocol.
+ */
+
+object LivestatusListener "livestatus" { }
diff --git a/features-available/mainlog.conf b/features-available/mainlog.conf
new file mode 100644
index 0000000..3cd4b9f
--- /dev/null
+++ b/features-available/mainlog.conf
@@ -0,0 +1,8 @@
+/**
+ * The FileLogger type writes log information to a file.
+ */
+
+object FileLogger "main-log" {
+ severity = "information"
+ path = LogDir + "/icinga2.log"
+}
diff --git a/features-available/notification.conf b/features-available/notification.conf
new file mode 100644
index 0000000..3f9a88e
--- /dev/null
+++ b/features-available/notification.conf
@@ -0,0 +1,5 @@
+/**
+ * The notification component is responsible for sending notifications.
+ */
+
+object NotificationComponent "notification" { }
diff --git a/features-available/opentsdb.conf b/features-available/opentsdb.conf
new file mode 100644
index 0000000..4a3449f
--- /dev/null
+++ b/features-available/opentsdb.conf
@@ -0,0 +1,25 @@
+/**
+ * The OpenTsdbWriter type writes check result metrics and
+ * performance data to a OpenTSDB tcp socket.
+ */
+
+object OpenTsdbWriter "opentsdb" {
+ // host = "127.0.0.1"
+ // port = 4242
+ // enable_generic_metrics = false
+ //
+ // // Custom Tagging, refer to Icinga object type documentation for
+ // // OpenTsdbWriter
+ // host_template = {
+ // metric = "icinga.host"
+ // tags = {
+ // zone = "$host.zone$"
+ // }
+ // }
+ // service_template = {
+ // metric = "icinga.service.$service.check_command$"
+ // tags = {
+ // zone = "$service.zone$"
+ // }
+ // }
+}
diff --git a/features-available/perfdata.conf b/features-available/perfdata.conf
new file mode 100644
index 0000000..3ba8635
--- /dev/null
+++ b/features-available/perfdata.conf
@@ -0,0 +1,6 @@
+/**
+ * The PerfdataWriter type writes performance data files and rotates
+ * them in a regular interval.
+ */
+
+object PerfdataWriter "perfdata" { }
diff --git a/features-available/statusdata.conf b/features-available/statusdata.conf
new file mode 100644
index 0000000..356b618
--- /dev/null
+++ b/features-available/statusdata.conf
@@ -0,0 +1,7 @@
+/**
+ * The StatusDataWriter type periodically updates the status.dat and objects.cache
+ * files. These are used by the Icinga 1.x CGIs to display the state of
+ * hosts and services.
+ */
+
+object StatusDataWriter "status" { }
diff --git a/features-available/syslog.conf b/features-available/syslog.conf
new file mode 100644
index 0000000..35c9d02
--- /dev/null
+++ b/features-available/syslog.conf
@@ -0,0 +1,7 @@
+/**
+ * The SyslogLogger type writes log information to syslog.
+ */
+
+object SyslogLogger "syslog" {
+ severity = "warning"
+}
diff --git a/features-enabled/checker.conf b/features-enabled/checker.conf
new file mode 120000
index 0000000..d51cf79
--- /dev/null
+++ b/features-enabled/checker.conf
@@ -0,0 +1 @@
+../features-available/checker.conf \ No newline at end of file
diff --git a/icinga2.conf b/icinga2.conf
new file mode 100644
index 0000000..79422c5
--- /dev/null
+++ b/icinga2.conf
@@ -0,0 +1,42 @@
+/**
+ * Icinga 2 main configuration file
+ */
+
+/**
+ * The constants.conf defines global constants.
+ */
+include "constants.conf"
+
+/**
+ * The zones.conf defines zones for a cluster setup.
+ */
+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 <itl>
+include <plugins>
+include <plugins-contrib>
+include <manubulon>
+
+/*
+ * This includes the NSClient++ check commands. These command definitions
+ * are required on a master node when a client is used as command endpoint.
+ */
+include <nscp>
+
+/**
+ * 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.
+ *
+ * Only use this for features enabled globally.
+ */
+include "features-enabled/*.conf"
+
+/**
+ * Further configuration is loaded from the zones.d directory.
+ */
diff --git a/zones.conf b/zones.conf
new file mode 100644
index 0000000..ac38641
--- /dev/null
+++ b/zones.conf
@@ -0,0 +1,18 @@
+object Zone "global-templates" {
+ global = true
+}
+
+/**
+ * Master
+ */
+object Endpoint "new-babbage.server.tobiaswiese.net" {
+ host = "new-babbage.server.tobiaswiese.net"
+}
+
+object Zone "master" {
+ endpoints = [ "new-babbage.server.tobiaswiese.net" ]
+}
+
+/**
+ * Agents
+ */