[Icinga-devel] Icinga 2 Development Week 17/14

Michael Friedrich michael.friedrich at gmail.com
Mon Apr 28 14:34:41 CEST 2014


Summary for Icinga 2 Development Week 17/14:

Target version: 0.0.10

Work done:

* Performance: Use fewer threads by default #6053
* Status: Add version and uptime to 'icinga' check task #6064
* DB IDO: Add missing servicedependencies table attributes #5745
* Config: Add apply ping{4,6} to generic-host example config again #6056
* Config: Add action_url, notes_url, notes for {Host,Service}Group 
object #6057

--------------------------------------------------------------

* Config: Add assign where/ignore where for groups #5910

object Host "localhost" {
   import "generic-host"

   address = "127.0.0.1"
   address6 = "::1"

   vars.os = "Linux"
}

object HostGroup "linux-servers" {
   display_name = "Linux Servers"

   assign where host.vars.os == "Linux"
}

apply Service "ping4" {
   import "generic-service"

   check_command = "ping4"

   assign where "generic-host" in host.templates
   ignore where !host.address
}

apply Service "ping6" {
   import "generic-service"

   check_command = "ping6"

   assign where "generic-host" in host.templates
   ignore where !host.address6
}

object ServiceGroup "ping" {
   display_name = "Ping Checks"

   assign where match("ping*", service.name)
}

--------------------------------------------------------------

* Cluster: Spanning tree like communication #5467

Implement loop detection for cluster links.


       [A]
      /   \
     /     \
    /       \
[B]________[C]

- A wants to send a message to B
- A knows about 2 ways using links from heartbeat messages:

A -> B
A -> C -> B

- Optional: endpoint metric. Not set in this example, all endpoints have 
an equal metric.

- A -> B: metric sum = 1
- A -> C -> B: metric sum = 1 + 1 = 2

- A choses A -> B as primary link, blocks A -> C link

Failure scenario:

- A -> B link is broken
- A unblocks link to C
- A sends message using A -> C -> B

Metric scenario:

- B has metric 10 as seen from endpoint A
- A always choses A -> C -> B (metric 1+1=2) as primary route


--------------------------------------------------------------

* Config: Command argument conditionals #5933

Additionally to a command line as string or array conditional arguments 
may be defined.
This is helpful if parameters are omitted, or optional, and shall reduce 
the amount of different check command objects.

Current implementation draft:

object CheckCommand "http" {
     import "plugin-check-command",

     command = PluginDir + "/check_http"

     arguments = {
         "-H" = {
             value = "$http_vhost$"
             optional = true
         }
         "-I" = "$http_address$"
         "-u" = {
             value = "$http_uri$"
             optional = true
         }
         "-p" = {
             value = "$http_port$"
             optional = true
         }
         "-S" = {
             set_if = "$http_ssl$"
         }
         "-w" = {
             value = "$http_warn_time$"
             optional = true
         }
         "-c" = {
             value = "$http_critical_time$"
             optional = true
         }
     }

     vars.http_address = "$address$"
     vars.http_ssl = false
}

--------------------------------------------------------------

Ongoing:

* export notifications in interfaces #5899
* experimental config features #5454

* Revamp migration script #5821

Part of the Icinga CLI (Icinga Web 2) parsing v1 config, dumping v2 
config helped with 'apply' rules and other recent config changes.

* Documentation Updates
* Tests, tests, tests & bug fixes



-- 
DI (FH) Michael Friedrich

michael.friedrich at gmail.com  || icinga open source monitoring
https://twitter.com/dnsmichi || lead core developer
dnsmichi at jabber.ccc.de       || https://www.icinga.org/team
irc.freenode.net/icinga      || dnsmichi


More information about the icinga-devel mailing list