WWW.ICINGA.ORG 
Icinga Web 2 
...more than just another front-end 
Icinga Camp 
San Francisco 2014 
25th Sept. - Team Icinga
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
OVERVIEW Features 
• Bunch of slides showing existing module prototypes 
• Some details about Icinga Web 2 module internals 
• Short live demo 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
WARNING Features 
• These are just prototypes 
• Some of them will never be released 
• Others are running in production since several months 
• You have to be patient 
• We will be VERY busy preparing the Icinga Web 2.0 release 
for the next few weeks 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
FEEDBACK WAFeNatTurEesD 
• Many of our developers are from Europe 
• Icinga is here to stay. We want to get it better and better! 
• Help us understand your cloudy work-flows 
• We want to be an important member of your tool chain 
• Icinga is 100% Open Source. No appliance, no enterprise 
version. Most of us live from doing consultancy, 
customisations, trainings 
• If you want a priority lane for your feature request you can 
buy us 
• We also accept beer. 
Icinga Camp San Francisco 2014
Performance data
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
Features 
define host { 
name host-with-graph-template 
register 0 
icon_image s.gif' width='0' height='0' border='0'></a><a 
href='/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' 
class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv= 
$SERVICEDESC$'><img width='20' height='20' src='/nagios/ 
images/logos/Stats2.png' border='0 
} 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Good old times :) Features 
• Right now we have a generic grapher hook 
• Different graphers may provide different capabilities 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• First sample implementaFtieoant: uPrNePs4Nagios 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• PNP4Nagios? Features 
• Oldschool RRD files? 
• YES!! 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Graphite? Sure: Features 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Plans for next year: inGraFpeha t2u.xres 
• Choose Graphite or SQL backend 
• A bunch of default templates 
• Click & store your own ones 
Icinga Camp San Francisco 2014
Trouble Tickets
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Same game, a generic “tFicekaettu” rheosok 
• Implementations need to match a pattern and provide a link 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• generictts is a very simFpelea itmuprelesmentation 
• Creates links in comments, acknowledgements and 
downtimes: 
• Works also for history lists 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• rt – RequestTracker integFreaatitounres 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• We want more! Features 
• Notifications can generate, update and resolve issue tickets 
• Lot's of custom implementations out there 
• A generic incident-tracking module? 
Icinga Camp San Francisco 2014
Just hosts and services?
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Usually a check plugin haFse:atures 
– an exit code 
– text output 
– performance data 
• What if you need more details? 
• Structure? 
• Persist state and track changes? 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• First example: Features 
SSH 
icingacli ssh hosts scan 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
Features 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Define what you consideFr etoa tbuer “essecure” 
• Re-scan regularly or on-demand 
• A single check to watch all of them... 
• ...or just a filtered subset 
• Track key changes... 
• ...and authorise them. Manually - if you want. 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• I want to do the same wiFthe aStSuLr ceesrtificates 
• Ever wanted to know where you are using a specific wildcard 
certificate? 
• Certificates signed by a specific CA? 
• Go through the whole STARTTLS handshaking process when 
monitoring your services? 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Using Puppet exported reFseoautruceres sfor Host keys? 
icingaweb::ssh::known_hosts { '/etc/ssh/known_hosts': } 
# Filtered by domain, only ecdsa keys: 
icingaweb::ssh::known_hosts { '/etc/ssh/known_hosts': 
Icinga Camp San Francisco 2014 
filter => { 
domain => [ 'internal.tld', 'somewhere.io' ], 
type => 'ecdsa', 
} 
} 
# Deploy for a specific user: 
icingaweb::ssh::known_hosts { '/root/.ssh/known_hosts': 
filter => { 
ip => '10.17.0.0/16' 
} 
}
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Puppet. Just a playgrounFd eraigthutr neosw: 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Switches? Features 
• STP? 
• Half duplex? 
• Traffic? 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
Features 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Do you remember that laFnegautaugree csalled Java? 
• They have great interfaces for monitoring 
• Usually dev people don't care and ops people don't know 
about 
• They named it JMX 
• Forget about check_jmx, deploy and use Jolokia 
• Try check_jmx4perl 
• Use jconsole to find out more... 
• ...or walk the tree with Jolokia 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
Features 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Monitor Business ProcessFeesa!tures 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• We wrote and write custoFmea mtuordeusles for specific needs 
Icinga Camp San Francisco 2014
Build your own modules!
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
WHY SHOULDF eIa tDurOes SO? 
• We believe in Open Source Software 
• We want to integrate all the tools we like 
• We want to make it easy for others to include Icinga in their 
projects 
• You can bootstrap Icinga Web 2 in an embedded mode 
• You will be allowed to run your module in a standalone mode 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• You get a fast and secureF ewaetbu irnetesrface 
• No more CSS/JS loading after you see the login page 
• Shipped in 50ms 
• DOM ready in 100-150ms 
• ~70kB total (including jQuery and additional modules) 
• Subsequent requests are even faster 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Module structure Features 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Let's start with simple stFueff:a itmuaregess 
• icingacamp/public/img/nice-image.png 
→ <baseurl>/img/icingacamp/nice-image.png 
• We worked very hard to implement animated GIF file 
support 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Use your own CSS: <moduFleeaptautrhe>s/public/module.less 
• Just one file. Want more? 
• Not directly accessible through web browser 
• We ship ALL your CSS in css/icinga.css or css/icinga.min.css 
• Fully transparent (optional) caching 
• Automagic Etag handling based on source file names, sizes 
and modification times 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Don't worry, you're not gFoeinagt utor edsestroy anything: 
• Do whatever you want in 
your CSS file 
• It will be transformed in a 
safe way, you cannot break 
other modules 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• LESS? Less is more! httpF:/e/leastsucrsess.org/ 
• BUT: keep it SIMPLE! 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Enjoy responsiveness in Faen aetausrye wsay 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• You don't have to care abFoeuatt JuarveasScript 
• But you can if you want to 
• We try to make things easy for module writers 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• There is a translation moFdeualetures 
• Documentation for developers and translators inside 
• Nice toolchain 
Icinga Camp San Francisco 2014
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
• Write tests – in case youF feeealt yuorue sneed them 
Icinga Camp San Francisco 2014
LIVE DEMO
THANK YOU!
DEV. WIKI. BLOG. DOC. | WWW.ICINGA.ORG 
QUESTIONS & ANSWERS 
Thomas Gelf - Icinga Camp San Francisco 2014 
Web + Blog www.icinga.org 
Docs docs.icinga.org 
Development dev.icinga.org 
Sourcecode git.icinga.org 
Releases github.com/Icinga 
Wiki wiki.icinga.org 
IRC #icinga on FreeNode 
Mailing lists lists.icinga.org 
Support support.icinga.org 
Twitter twitter.com/icinga 
Facebook facebook.com/icinga 
…….. Everywhere! 
? 
Questions & Answers

Icinga Web 2 is more - Module magic at Icinga Camp San Francisco

  • 1.
    WWW.ICINGA.ORG Icinga Web2 ...more than just another front-end Icinga Camp San Francisco 2014 25th Sept. - Team Icinga
  • 2.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG OVERVIEW Features • Bunch of slides showing existing module prototypes • Some details about Icinga Web 2 module internals • Short live demo Icinga Camp San Francisco 2014
  • 3.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG WARNING Features • These are just prototypes • Some of them will never be released • Others are running in production since several months • You have to be patient • We will be VERY busy preparing the Icinga Web 2.0 release for the next few weeks Icinga Camp San Francisco 2014
  • 4.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG FEEDBACK WAFeNatTurEesD • Many of our developers are from Europe • Icinga is here to stay. We want to get it better and better! • Help us understand your cloudy work-flows • We want to be an important member of your tool chain • Icinga is 100% Open Source. No appliance, no enterprise version. Most of us live from doing consultancy, customisations, trainings • If you want a priority lane for your feature request you can buy us • We also accept beer. Icinga Camp San Francisco 2014
  • 5.
  • 6.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG Features define host { name host-with-graph-template register 0 icon_image s.gif' width='0' height='0' border='0'></a><a href='/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv= $SERVICEDESC$'><img width='20' height='20' src='/nagios/ images/logos/Stats2.png' border='0 } Icinga Camp San Francisco 2014
  • 7.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Good old times :) Features • Right now we have a generic grapher hook • Different graphers may provide different capabilities Icinga Camp San Francisco 2014
  • 8.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • First sample implementaFtieoant: uPrNePs4Nagios Icinga Camp San Francisco 2014
  • 9.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG
  • 10.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • PNP4Nagios? Features • Oldschool RRD files? • YES!! Icinga Camp San Francisco 2014
  • 11.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Graphite? Sure: Features Icinga Camp San Francisco 2014
  • 12.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Plans for next year: inGraFpeha t2u.xres • Choose Graphite or SQL backend • A bunch of default templates • Click & store your own ones Icinga Camp San Francisco 2014
  • 13.
  • 14.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Same game, a generic “tFicekaettu” rheosok • Implementations need to match a pattern and provide a link Icinga Camp San Francisco 2014
  • 15.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • generictts is a very simFpelea itmuprelesmentation • Creates links in comments, acknowledgements and downtimes: • Works also for history lists Icinga Camp San Francisco 2014
  • 16.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • rt – RequestTracker integFreaatitounres Icinga Camp San Francisco 2014
  • 17.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • We want more! Features • Notifications can generate, update and resolve issue tickets • Lot's of custom implementations out there • A generic incident-tracking module? Icinga Camp San Francisco 2014
  • 18.
    Just hosts andservices?
  • 19.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Usually a check plugin haFse:atures – an exit code – text output – performance data • What if you need more details? • Structure? • Persist state and track changes? Icinga Camp San Francisco 2014
  • 20.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • First example: Features SSH icingacli ssh hosts scan Icinga Camp San Francisco 2014
  • 21.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG Features Icinga Camp San Francisco 2014
  • 22.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Define what you consideFr etoa tbuer “essecure” • Re-scan regularly or on-demand • A single check to watch all of them... • ...or just a filtered subset • Track key changes... • ...and authorise them. Manually - if you want. Icinga Camp San Francisco 2014
  • 23.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • I want to do the same wiFthe aStSuLr ceesrtificates • Ever wanted to know where you are using a specific wildcard certificate? • Certificates signed by a specific CA? • Go through the whole STARTTLS handshaking process when monitoring your services? Icinga Camp San Francisco 2014
  • 24.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Using Puppet exported reFseoautruceres sfor Host keys? icingaweb::ssh::known_hosts { '/etc/ssh/known_hosts': } # Filtered by domain, only ecdsa keys: icingaweb::ssh::known_hosts { '/etc/ssh/known_hosts': Icinga Camp San Francisco 2014 filter => { domain => [ 'internal.tld', 'somewhere.io' ], type => 'ecdsa', } } # Deploy for a specific user: icingaweb::ssh::known_hosts { '/root/.ssh/known_hosts': filter => { ip => '10.17.0.0/16' } }
  • 25.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Puppet. Just a playgrounFd eraigthutr neosw: Icinga Camp San Francisco 2014
  • 26.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Switches? Features • STP? • Half duplex? • Traffic? Icinga Camp San Francisco 2014
  • 27.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG Features Icinga Camp San Francisco 2014
  • 28.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Do you remember that laFnegautaugree csalled Java? • They have great interfaces for monitoring • Usually dev people don't care and ops people don't know about • They named it JMX • Forget about check_jmx, deploy and use Jolokia • Try check_jmx4perl • Use jconsole to find out more... • ...or walk the tree with Jolokia Icinga Camp San Francisco 2014
  • 29.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG Features Icinga Camp San Francisco 2014
  • 30.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Monitor Business ProcessFeesa!tures Icinga Camp San Francisco 2014
  • 31.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • We wrote and write custoFmea mtuordeusles for specific needs Icinga Camp San Francisco 2014
  • 32.
  • 33.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG WHY SHOULDF eIa tDurOes SO? • We believe in Open Source Software • We want to integrate all the tools we like • We want to make it easy for others to include Icinga in their projects • You can bootstrap Icinga Web 2 in an embedded mode • You will be allowed to run your module in a standalone mode Icinga Camp San Francisco 2014
  • 34.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • You get a fast and secureF ewaetbu irnetesrface • No more CSS/JS loading after you see the login page • Shipped in 50ms • DOM ready in 100-150ms • ~70kB total (including jQuery and additional modules) • Subsequent requests are even faster Icinga Camp San Francisco 2014
  • 35.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Module structure Features Icinga Camp San Francisco 2014
  • 36.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Let's start with simple stFueff:a itmuaregess • icingacamp/public/img/nice-image.png → <baseurl>/img/icingacamp/nice-image.png • We worked very hard to implement animated GIF file support Icinga Camp San Francisco 2014
  • 37.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Use your own CSS: <moduFleeaptautrhe>s/public/module.less • Just one file. Want more? • Not directly accessible through web browser • We ship ALL your CSS in css/icinga.css or css/icinga.min.css • Fully transparent (optional) caching • Automagic Etag handling based on source file names, sizes and modification times Icinga Camp San Francisco 2014
  • 38.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Don't worry, you're not gFoeinagt utor edsestroy anything: • Do whatever you want in your CSS file • It will be transformed in a safe way, you cannot break other modules Icinga Camp San Francisco 2014
  • 39.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • LESS? Less is more! httpF:/e/leastsucrsess.org/ • BUT: keep it SIMPLE! Icinga Camp San Francisco 2014
  • 40.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Enjoy responsiveness in Faen aetausrye wsay Icinga Camp San Francisco 2014
  • 41.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • You don't have to care abFoeuatt JuarveasScript • But you can if you want to • We try to make things easy for module writers Icinga Camp San Francisco 2014
  • 42.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • There is a translation moFdeualetures • Documentation for developers and translators inside • Nice toolchain Icinga Camp San Francisco 2014
  • 43.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG • Write tests – in case youF feeealt yuorue sneed them Icinga Camp San Francisco 2014
  • 44.
  • 45.
  • 46.
    DEV. WIKI. BLOG.DOC. | WWW.ICINGA.ORG QUESTIONS & ANSWERS Thomas Gelf - Icinga Camp San Francisco 2014 Web + Blog www.icinga.org Docs docs.icinga.org Development dev.icinga.org Sourcecode git.icinga.org Releases github.com/Icinga Wiki wiki.icinga.org IRC #icinga on FreeNode Mailing lists lists.icinga.org Support support.icinga.org Twitter twitter.com/icinga Facebook facebook.com/icinga …….. Everywhere! ? Questions & Answers