From 79b3afbcfb76f0000e78710aabbd3e72d6dce0c3 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Mon, 31 Mar 2014 10:14:45 +0200 Subject: [PATCH] Update documentation. Refs #5870 --- ...iguration-tools.md => 2.6-config-tools.md} | 1 + ...ng-icinga-2.md => 2.7-running-icinga-2.md} | 0 doc/4.5-best-practice.md | 197 ------------------ doc/9-vagrant-demo-vm.md | 48 ++--- 4 files changed, 16 insertions(+), 230 deletions(-) rename doc/{4.4-configuration-tools.md => 2.6-config-tools.md} (99%) rename doc/{2.6-running-icinga-2.md => 2.7-running-icinga-2.md} (100%) delete mode 100644 doc/4.5-best-practice.md diff --git a/doc/4.4-configuration-tools.md b/doc/2.6-config-tools.md similarity index 99% rename from doc/4.4-configuration-tools.md rename to doc/2.6-config-tools.md index 99b09a08a..3d55ae65d 100644 --- a/doc/4.4-configuration-tools.md +++ b/doc/2.6-config-tools.md @@ -9,3 +9,4 @@ touch with their developers. If you're looking for puppet manifests, chef cookbooks, ansible recipes, etc - we're happy to integrate them upstream, so please get in touch using [https://support.icinga.org](https://support.icinga.org) :-) + diff --git a/doc/2.6-running-icinga-2.md b/doc/2.7-running-icinga-2.md similarity index 100% rename from doc/2.6-running-icinga-2.md rename to doc/2.7-running-icinga-2.md diff --git a/doc/4.5-best-practice.md b/doc/4.5-best-practice.md deleted file mode 100644 index 841202b5b..000000000 --- a/doc/4.5-best-practice.md +++ /dev/null @@ -1,197 +0,0 @@ -## Configuration Best Practice - -### Configuration File and Directory Structure - -Icinga 2 does not care how you name your files and/or directories as long as -you include them in the [icinga2.conf](#icinga2-conf) file. - -By default, the `conf.d` directory is included recursively looking for files -which match the pattern `*.conf`. - -If you're putting/generating your configuration structure in there, you do not -need to touch the [icinga2.conf](#icinga2-conf) file. This becomes useful with -external addons not having write permissions to this file such as LConf. - -Example: - - include_recursive "conf.d" "*.conf" - -Below `conf.d` you're free to choose. An example based on host objects with -inline services in `conf.d/hosts` and their templates below `conf.d/services/` -would be: - - conf.d/ - services/ - templates.conf - hosts/ - hosts.conf - -If your setup consists of location based monitoring, you could reflect that with -your configuration directory tree and files: - - conf.d/ - germany/ - nuremberg/ - hosts.conf - osmc.conf - berlin/ - hosts.conf - osdc.conf - austria/ - linz/ - hosts.conf - vienna/ - hosts.conf - -If you're planning to create a [cluster](#cluster) setup with Icinga 2 and your -configuration master should deploy specific configuration parts to slave nodes, -it's reasonable not to confuse it with configuration below `conf.d`. Rather -create a dedicated directory and put all nodes into their own directories: - - include_recursive "cluster" "*.conf" - - cluster/ - node1/ - node2/ - node99/ - -If you are preferring to control what several parties drop into the configuration -pool (for example different departments with their own standalone configuration), -you can still deactivate the `conf.d` inclusion and use your own strategy. - -Example: - - include_recursive "dep1" "*.conf" - include_recursive "dep2" "*.conf" - include_recursive "dep3" "*.conf" - include_recursive "remotecust" "*.conf" - include_recursive "cmdb" "*.conf" - -> **Note** -> -> You can omit the file pattern `"*.conf"` because that's the Icinga 2 default already. - -### Use Templates - -Templates are the key to minimize configuration overhead, and share widely -used attributes among objects inheriting their values. And if one template -does not fit everyone, split it into two. - -Or rather inherit that template into a new template, and override/disable -unwanted values. - - template Service "generic-service-disable-notifications" { - import "generic-service", - - notifications["mail-icingaadmin"] = null - } - -### Inline Objects using Templates - -While it is reasonable to create single objects by your preferred configuration -tool, using templates and the `apply` keyword will save you a lot of typing extra work. - -For instance, you can still create a host object, then a service object linking -to it, after that a notification object referencing the service object, and last -but not least defining scheduled downtime objects linked to services. - - object Host "localhost" { - display_name = "The best host there is", - - groups = [ "all-hosts" ], - - host_dependencies = [ "router" ], - } - - object Service "localhost-ping4" { - host = "localhost", - short_name = "ping4", - - display_name = "localhost ping4", - - check_command = "ping4", - - check_interval = 60s, - retry_interval = 15s, - - servicegroups = [ "all-services" ], - } - - object Notification "localhost-ping4-notification" { - host = "localhost", - service = "ping4", - - notification_command = "mail-service-notification", - - users = [ "user1", "user2" ] - } - - object ScheduledDowntime "some-downtime" { - host = "localhost", - service = "ping4", - - author = "icingaadmin", - comment = "Some comment", - - fixed = false, - duration = 30m, - - ranges = { - "sunday" = "02:00-03:00" - } - } - -By doing that everytime for such a series of linked objects, your configuration -will get bloated and unreadable. You've already read that [using templates](#best-practice-use-templates) -will help here. - -Using the `apply` keyword you can create services, notifications, scheduled downtimes and dependencies -for an arbitrary number of hosts and services respectively: - - apply Notification "mail-notification" { - notification_command = "mail-service-notification", - users = [ "user1", "user2" ] - - assign where "generic-service" in service.templates - } - - apply ScheduledDowntime "backup-downtime" { - author = "icingaadmin", - comment = "Some comment", - - fixed = false, - duration = 30m, - - ranges = { - "sunday" = "02:00-03:00" - } - - assign where "generic-service" in service.templates - } - - template Service "generic-service" { - max_check_attempts = 3, - check_interval = 5m, - retry_interval = 1m, - enable_perfdata = true, - } - - apply Service "ping4" { - import "generic-service", - - check_command = "ping4", - - assign where "linux-server" in host.templates - } - - template Host "linux-server" { - groups = [ "all-hosts" ], - - check = "ping4" - } - - object Host "localhost" { - import "linux-server", - - display_name = "The best host there is", - } diff --git a/doc/9-vagrant-demo-vm.md b/doc/9-vagrant-demo-vm.md index 62f5428a2..9564aa76c 100644 --- a/doc/9-vagrant-demo-vm.md +++ b/doc/9-vagrant-demo-vm.md @@ -13,9 +13,9 @@ following command: > **Note** > -> Vagrant and VirtualBox are available for various distributions. Please note -> that Vagrant version `1.0.x` is not supported. At least version `1.2.x` is -> required to be installed (for example from [http://downloads.vagrantup.com](http://downloads.vagrantup.com)). +> [Vagrant](http://www.vagrantup.com/) and [VirtualBox](https://www.virtualbox.org/wiki/Downloads) +> are available for various distributions. Please note that Vagrant version `1.0.x` is not +> supported. At least version `1.2.x` is required. The Vagrant VM is based on CentOS 6.4 and uses the official Icinga 2 RPM packages from `packages.icinga.org`. The check plugins are installed from @@ -23,46 +23,28 @@ EPEL providing RPMs with sources from the Monitoring Plugins project. SSH login is available using `vagrant ssh`. -## Vagrant Demo GUIs +## Demo GUIs In addition to installing Icinga 2 the Vagrant puppet modules also install the Icinga 1.x Classic UI and Icinga Web. GUI | Url | Credentials ----------------|----------------------------------------------------------------------|------------------------ - Classic UI | [http://localhost:8080/icinga](http://localhost:8080/icinga) | icingaadmin/icingaadmin - Icinga Web | [http://localhost:8080/icinga-web](http://localhost:8080/icinga-web) | root/password + Classic UI | [http://localhost:8080/icinga](http://localhost:8080/icinga) | icingaadmin / icingaadmin + Icinga Web | [http://localhost:8080/icinga-web](http://localhost:8080/icinga-web) | root / password -## Vagrant on Windows +## SSH Access -You need to install [VirtualBox](#https://www.virtualbox.org/wiki/Downloads) -next to [Vagrant for Windows](#http://www.vagrantup.com/downloads.html). For SSH access -you need to install [Git for Windows](#http://git-scm.com/download/win) too. +You can access the Vagrant VM using SSH: -Either download and extract the Icinga 2 tarball (or git archive) or clone the -git repository using your preferred git gui. + $ vagrant ssh -Open the Windows command prompt (cmd+R) and change the directory to your -Icinga 2 directory containing the `Vagrantfile` file and start the Vagrant box. +Alternatively you can use your favorite SSH client: - c:> cd C:\Users\admin\icinga2 - c:> vagrant up - -> **Note** -> -> If SSH access is not working, you may need to add the Git binary path to the system path. - - c:> set PATH=%PATH%;C:\Program Files (x86)\Git\bin - c:> vagrant ssh - -For manual SSH access using [Putty](#http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) -you'll need the following default credentials: - - Name |Value + Name | Value ----------------|---------------- - hostname | 127.0.0.1 - port | 2222 - connection type | ssh - username | vagrant - password | vagrant \ No newline at end of file + Host | 127.0.0.1 + Port | 2222 + Username | vagrant + Password | vagrant \ No newline at end of file -- 2.40.0