diff options
| author | Tobias Wiese <tobias@tobiaswiese.com> | 2020-05-10 22:26:29 +0200 |
|---|---|---|
| committer | Tobias Wiese <tobias@tobiaswiese.com> | 2020-05-10 22:26:29 +0200 |
| commit | 1f358c5572bd1f847478b314bcd3e9378655ec92 (patch) | |
| tree | e877d59c21fff46b0671f5a591d479c158e2fde2 | |
basic configuration
Provides a basic inital configuration.
Signed-off-by: Tobias Wiese <tobias@tobiaswiese.com>
| -rw-r--r-- | constants.conf | 31 | ||||
| -rw-r--r-- | features-available/api.conf | 10 | ||||
| -rw-r--r-- | features-available/checker.conf | 5 | ||||
| -rw-r--r-- | features-available/command.conf | 6 | ||||
| -rw-r--r-- | features-available/compatlog.conf | 6 | ||||
| -rw-r--r-- | features-available/debuglog.conf | 10 | ||||
| -rw-r--r-- | features-available/elasticsearch.conf | 8 | ||||
| -rw-r--r-- | features-available/gelf.conf | 10 | ||||
| -rw-r--r-- | features-available/graphite.conf | 9 | ||||
| -rw-r--r-- | features-available/icingadb.conf | 5 | ||||
| -rw-r--r-- | features-available/ido-mysql.conf | 11 | ||||
| -rw-r--r-- | features-available/ido-pgsql.conf | 11 | ||||
| -rw-r--r-- | features-available/influxdb.conf | 25 | ||||
| -rw-r--r-- | features-available/livestatus.conf | 5 | ||||
| -rw-r--r-- | features-available/mainlog.conf | 8 | ||||
| -rw-r--r-- | features-available/notification.conf | 5 | ||||
| -rw-r--r-- | features-available/opentsdb.conf | 25 | ||||
| -rw-r--r-- | features-available/perfdata.conf | 6 | ||||
| -rw-r--r-- | features-available/statusdata.conf | 7 | ||||
| -rw-r--r-- | features-available/syslog.conf | 7 | ||||
| l--------- | features-enabled/checker.conf | 1 | ||||
| -rw-r--r-- | icinga2.conf | 42 | ||||
| -rw-r--r-- | zones.conf | 18 |
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 + */ |
