#ICINGACAMP| 13th of May 2017
Icinga Director
New config tool?
Motivation for a config tool
• Make config easy for the end user
• Offer interfaces to other tools
• Avoid writing config files
• Import config from everywhere
The hard parts
• Support for a config DSL
• Enable anyone to use it
• Keep it simple
• Don’t restrict the user too much
Kickstart
Requirements
• Icinga 2 with API and credentials
• Icinga Web 2 with PHP
• MySQL/PostgreSQL database
Installing the module
• Just put the module in place
• Enable it
• Preconfigure Icinga 2 Zones
Director Kickstart
• Creates database schema
• Connects to Icinga 2 API
• Imports Icinga 2 core data
CommandsEndpointsZones
Basics
Templates
• How to monitor X
• Check Command + settings
• Zone + Agent usage
• Defining fields + variables
Host / Service
• Imports a template
• Set variables and details
• Extra info about the object
Hosts
Custom Data
Data Fields
• Command configuration (vars)
• Custom data for hosts and services
• Provide vars for filtering, context, meta
data, responsibilities
Data Lists
• Data source for fields
• Restrict data selection
• Query data from elsewhere
Services
Worth mentioning
• Host and Service groups, assign or
direct
• Service Sets, assign a bunch of services
• Notifications by assign
• User and Groups
• Timeperiods
Deployment
• Keep track of changes
• Render Icinga 2 configuration
• Store configuration history
• Push configuration to the Icinga 2 API
• Verify deployment status
Big Data
Import
• Retrieve data from external resources
• Convert data into relational view
• Store the data locally
Databases
• MySQL
• PostgreSQL
• MSSQL
• Oracle
LDAP, AD
Want all servers
from your
Active Directory
being monitored
automatically?
Strange or incorrect values?
You can fix them with modifiers:
Resolve the IP address?
The SID is stored in binary format!
Modifiers
Use them
Add your own
Send Pull Request
Files: CSV, JSON, XML, YAML
AWS
Load
Balancers
EC2 Instances
Scaling
Groups
Puppet DB
Hosts with facts
Custom services
from exported
resources
Sync will actually update data
• Creates objects from an import source
• Defines how to map values
• Import Sync Deploy
Be careful
what you
sync
Integrations
• REST API for object management
• Icingacli as command line tool
• Schedule imports, sync jobs,
deployment tasks
Custom Integrations and Hooks
• Import sources
Implement your own data source
• Property modifiers
Resolve / mangle data
• Data types
Your custom meta data
Next?
From the Roadmap
• Packages for major distributions
• Puppet module support
• Scheduled Downtimes
• Dependencies
Check it out
https://github.com/Icinga
icingaweb2-module-director
icingaweb2-module-aws
icingaweb2-module-puppetdb
icingaweb2-module-fileshipper
Play around with my Vagrant demo
https://github.com/Icinga
vagrant-director-demo
Give us feedback about Director!
www.icinga.com
github.com/Icinga
exchange.icinga.com
Thank You!
icinga
icinga
icinga