SlideShare a Scribd company logo
Extending IcingaWeb2 with
Modules
powerful, smart and easily created
Nicolas Schneider, Icinga Camp Milan 2023
2
Agenda
1 About me
2 About Rise
3 How?
4 Checkreports
5 Impersonate
6 Teamdashboard
7 Customdashboard
8 PluginDocBuilder
9 Scaffoldbuilder
10 Enhancement of Map
11 Demo
12 Links
© RISE
3
 Nicolas Schneider aka moreamazingnick
 Work in monitoring since 2021
 Studied Medical Computer Science (B.Sc.)
 AmazingNick was already in use on GitHub
About me
© RISE
4
Research Industrial Systems Engineering (RISE)
at a quick glance
Key figures
• Created as a spin-off of the TU Vienna in 1988
• Active in architecture, safety engineering &
software development
• Specialists in IT infrastructure Design and IT integration
• Top experts in IT architecture, IT strategy, IT security,
usability, transportation IT, banking systems, system
performance, health information systems, e-ID, gov tech,
digitalization strategies, IIoT
Locations
• Company headquarter in Austria (Vienna & Schwechat)
• Offices in several countries
RISE Konnektor
© RISE
www.rise-world.com
How is IcingaWeb2 extensible?
6
 Modules with own functionality
 Inherit from existing classes or “reuse” the code
 Change behavior
 IcingaWeb2 provides Hook
 HostActionsHook
 Modules can provide Hooks
 DataTypeHook (Icinga Director)
 ReportHook (Reporting)
 CLI actions
 Themes
How is IcingaWeb2 extensible?
© RISE
Checkreports
8
 CheckResult
 Update-Report
 Regularly
 Scheduler
 Portable format
 Pdf
 These are already features of the
reporting module
 Using ReportHook
Checkreports
© RISE
9
 Why can’t I use a Notification plugin
 Triggered by state change
 Or external scheduling needed
 No pdf
Checkreports
© RISE
10
 Path
 Smooth as it is based on idoreports
 IDO implementation first
 Access the check result instead of the SLA
 Challenges
 Icingadb
 Plugin Output was sometimes not the same?
 Added the last Execution Time
 Plugin Output was outdated
 $query->
 setResultSetClass(VolatileStateResults::class);
Checkreports
© RISE
Impersonate
12
 Other Applications have that too
 Debugging
 Disabled Dashboards
 Restrictions
 Icinga Community Call
Impersonate
© RISE
13
 Path
 Copy LoginController
 Copy LoginForm
 Copy views
 Remove password field
 Remove some styles
 Remove every check 
 Open Questions
 Domain awareness
 Open a ticket if it doesn’t work
Impersonate
© RISE
Dashboards
15
 Icinga is working on something
 Enhanced Dashboards #3809
 You can use this till it’s ready
 It shows how extensible IcingaWeb2 is
Dashboards
© RISE
Teamdashboards
17
 Inspired by enforceddashboards
 by Thomas Gelf
 Community issue
 Sharing Dashboards create an overflow
 Global Dashboards using configuration.php causes overflow too
 Having a “virtual” or real user
 Map Dashboard to other users
 Keep your own Dashboards
 Manage via Roles
 Rename “users” in the menu
 Pro Tipp
 Use Impersonate module to change the
other Dashboard
Teamdashboards
© RISE
18
 Path
 Using Scaffoldbuilder (Ini-Repository)
 Copy Dashboard.php
 Copy DashboardController.php
 Copy views
 Allow to set a user
 Adapt some urls
 Remove unused code
 Using Roles / Permissions
 Open Questions
 Do you need Current Incidents too?
 Current Incidents
 Muted
 Overdue
Teamdashboards
© RISE
Customdashboards
20
 Inspired by teamdashboards
 It’s a community issue, post in the forum
 Community issue
 Sharing Dashboards create an overflow
 Global Dashboards using configuration.php causes overflow too
 Create Dashboards manually
 Pane name
 URL
 Map it to other users
 Keep your own Dashboards
 Manage via Roles
 Change the name in the menu
 Change the icon
 Change the position
 Add entries via CLI
Customdashboards
© RISE
PluginDocBuilder
22
 Build a documentation module based on your check plugins
 Use a Template
 Use Icinga Director information
 Include good Documentation like
 icinga-powershell-plugins
 icinga-powershell-mssql
 icinga-itl
 Combine everything
PluginDocBuilder
© RISE
23
 Path
 Using Scaffoldbuilder (Ini-Repository)
 Download releases from GitHub
 Extract & combine
 Already amazing
 Access Icinga Director Command Fields
 Extract information
 Fill out my documentation template
 Key Questions
 Is it ready yet?
 No
 Is it on GitHub yet?
 No
 Can you show it to us?
 YES
PluginDocBuilder
© RISE
Scaffoldbuilder
25
 Create module based on almost any name
 Get all directories ready
 Having a basic IndexController
 Blank Page Syndrome
 Having a first menu item
 Get the Namespaces right for reference implementation
 Get all the important config files
 Get multiple IniRepositories
 Get a ModuleConfig (ini file)
 Get a generic documentation
 Fill it out
 Don’t start from scratch
Scaffoldbuilder
© RISE
Map
27
 By Nicolai Buchwitz
 Based on latest master
 Adapted search
 Updated mapDatatype
 Add the Ini-Repository for other
“default maps”
 Provide permissions for these maps
icingaweb2-module-map
Confidential © RISE
DEMO
29
Where to get it? => GitHub
 RISE-GMBH
 Everything else
© RISE
 Moreamazingnick
 Scaffoldbuilder
30
Porto Alegre
Bangalore
Dubai
North Africa
Paris
Bern
Berlin
Vienna
© RISE
THANK YOU
Research Industrial Systems Engineering (RISE)
Forschungs-, Entwicklungs- und Großprojektberatung GmbH
Concorde Business Park F
2320 Schwechat, Austria
Mail welcome@rise-world.com
Tel +43 1 9049007-0
Fax +43 1 5057473
Web www.rise-world.com
Contact
Extending Icinga Web with Modules: powerful, smart and easily created - Icinga Camp Milan 2023

More Related Content

PDF
OSMC 2023 | Extending Icinga Web with Modules: powerful, smart and easily cre...
PPTX
Building 12 factor apps with ASP.NET Core, Сергій Калинець
PDF
DevOps LA Meetup Intro to Habitat
PPTX
Best Practices for Moving to Drupal 9
PDF
Clean Architecture
PDF
Clean architecture with asp.net core
PPTX
Whats new in visual studio 2017
PDF
Best Practices for Moving to Drupal 9
OSMC 2023 | Extending Icinga Web with Modules: powerful, smart and easily cre...
Building 12 factor apps with ASP.NET Core, Сергій Калинець
DevOps LA Meetup Intro to Habitat
Best Practices for Moving to Drupal 9
Clean Architecture
Clean architecture with asp.net core
Whats new in visual studio 2017
Best Practices for Moving to Drupal 9

Similar to Extending Icinga Web with Modules: powerful, smart and easily created - Icinga Camp Milan 2023 (20)

PPTX
RightScale Webinar: Best Practices: Software Development Strategies Using Win...
PDF
Amazing vue.js projects that are open source and free.
PDF
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
PPTX
Increasing productivity using visual studio 2017
PDF
What is Headless and headless 101 at Acquia.pdf
PPTX
What is Headless and headless 101 at Acquia
PDF
What's new in Gradle 4.0
PPTX
INT Inc | Benefits of a Microservices Architecture
PDF
RHTE 2016 - Get your App Dev on in the Cloud
PDF
Universidade Aberta.pdfffsffdsddsggggsgsdddd
PPTX
SUG Bangalore - Kick Off Session
PDF
Customer FX Technical Reference Sheet
PPTX
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
PPTX
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
PDF
Code One 2018 maven
PDF
2013-03-07 indie developer toolkit
PPTX
Devops PPT in cloud technology in cloud computing.pptx
PDF
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
PPTX
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
PDF
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
RightScale Webinar: Best Practices: Software Development Strategies Using Win...
Amazing vue.js projects that are open source and free.
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
Increasing productivity using visual studio 2017
What is Headless and headless 101 at Acquia.pdf
What is Headless and headless 101 at Acquia
What's new in Gradle 4.0
INT Inc | Benefits of a Microservices Architecture
RHTE 2016 - Get your App Dev on in the Cloud
Universidade Aberta.pdfffsffdsddsggggsgsdddd
SUG Bangalore - Kick Off Session
Customer FX Technical Reference Sheet
Microservices & Serverless Architecture Principles Applied - Cisco Live Orlan...
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Code One 2018 maven
2013-03-07 indie developer toolkit
Devops PPT in cloud technology in cloud computing.pptx
Configuration as Dependency: Managing Drupal 8 Configuration with git and Com...
Integrated, Automated Video Room Systems - Webex Devices - Cisco Live Orlando...
Tech Talk: DevOps at LeanIX @ Startup Camp Berlin
Ad

More from Icinga (20)

PDF
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
PDF
Infrastructure Monitoring for Cloud Native Enterprises - Icinga Camp Milan 2023
PDF
Incident management: Best industry practices your team should know - Icinga C...
PDF
Monitoring Cooling Units in a pharmaceutical GxP regulated environment - Icin...
PDF
SNMP Monitoring at scale - Icinga Camp Milan 2023
PPTX
Monitoring Kubernetes with Icinga - Icinga Camp Milan 2023
PPTX
Current State of Icinga - Icinga Camp Milan 2023
PDF
Efficient IT operations using monitoring systems and standardized tools - Ici...
PPTX
Tornado Complex Event Processing Framework for Icinga - Icinga Camp Zurich 2019
PDF
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
PDF
Moving from Icinga 1 to Icinga 2 + Director - Icinga Camp Zurich 2019
PDF
Icinga Director and vSphereDB - how they play together - Icinga Camp Zurich 2019
PDF
Current State of Icinga - Icinga Camp Zurich 2019
PDF
NetEye 4 based on Icinga 2 - Icinga Camp Milan 2019
PDF
Integrating Icinga 2 and ntopng - Icinga Camp Milan 2019
PDF
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
PPTX
Current State of Icinga - Icinga Camp Milan 2019
PPTX
Best of Icinga Modules - Icinga Camp Milan 2019
PPTX
hallenges of Monitoring Big Infrastructure - Icinga Camp Milan 2019
PPTX
Discover the real user experience with Alyvix - Icinga Camp Milan 2019
Upgrading Incident Management with Icinga - Icinga Camp Milan 2023
Infrastructure Monitoring for Cloud Native Enterprises - Icinga Camp Milan 2023
Incident management: Best industry practices your team should know - Icinga C...
Monitoring Cooling Units in a pharmaceutical GxP regulated environment - Icin...
SNMP Monitoring at scale - Icinga Camp Milan 2023
Monitoring Kubernetes with Icinga - Icinga Camp Milan 2023
Current State of Icinga - Icinga Camp Milan 2023
Efficient IT operations using monitoring systems and standardized tools - Ici...
Tornado Complex Event Processing Framework for Icinga - Icinga Camp Zurich 2019
Signalilo: Visualizing Prometheus alerts in Icinga2 - Icinga Camp Zurich 2019
Moving from Icinga 1 to Icinga 2 + Director - Icinga Camp Zurich 2019
Icinga Director and vSphereDB - how they play together - Icinga Camp Zurich 2019
Current State of Icinga - Icinga Camp Zurich 2019
NetEye 4 based on Icinga 2 - Icinga Camp Milan 2019
Integrating Icinga 2 and ntopng - Icinga Camp Milan 2019
DevOps monitoring: Best Practices using OpenShift combined with Icinga & Big ...
Current State of Icinga - Icinga Camp Milan 2019
Best of Icinga Modules - Icinga Camp Milan 2019
hallenges of Monitoring Big Infrastructure - Icinga Camp Milan 2019
Discover the real user experience with Alyvix - Icinga Camp Milan 2019
Ad

Recently uploaded (20)

PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Introduction to Artificial Intelligence
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
history of c programming in notes for students .pptx
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Digital Strategies for Manufacturing Companies
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
top salesforce developer skills in 2025.pdf
PDF
System and Network Administraation Chapter 3
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
medical staffing services at VALiNTRY
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Design an Analysis of Algorithms I-SECS-1021-03
Introduction to Artificial Intelligence
Softaken Excel to vCard Converter Software.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Upgrade and Innovation Strategies for SAP ERP Customers
Odoo Companies in India – Driving Business Transformation.pdf
history of c programming in notes for students .pptx
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Digital Strategies for Manufacturing Companies
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
top salesforce developer skills in 2025.pdf
System and Network Administraation Chapter 3
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
medical staffing services at VALiNTRY
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Design an Analysis of Algorithms II-SECS-1021-03
Reimagine Home Health with the Power of Agentic AI​
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx

Extending Icinga Web with Modules: powerful, smart and easily created - Icinga Camp Milan 2023

  • 1. Extending IcingaWeb2 with Modules powerful, smart and easily created Nicolas Schneider, Icinga Camp Milan 2023
  • 2. 2 Agenda 1 About me 2 About Rise 3 How? 4 Checkreports 5 Impersonate 6 Teamdashboard 7 Customdashboard 8 PluginDocBuilder 9 Scaffoldbuilder 10 Enhancement of Map 11 Demo 12 Links © RISE
  • 3. 3  Nicolas Schneider aka moreamazingnick  Work in monitoring since 2021  Studied Medical Computer Science (B.Sc.)  AmazingNick was already in use on GitHub About me © RISE
  • 4. 4 Research Industrial Systems Engineering (RISE) at a quick glance Key figures • Created as a spin-off of the TU Vienna in 1988 • Active in architecture, safety engineering & software development • Specialists in IT infrastructure Design and IT integration • Top experts in IT architecture, IT strategy, IT security, usability, transportation IT, banking systems, system performance, health information systems, e-ID, gov tech, digitalization strategies, IIoT Locations • Company headquarter in Austria (Vienna & Schwechat) • Offices in several countries RISE Konnektor © RISE www.rise-world.com
  • 5. How is IcingaWeb2 extensible?
  • 6. 6  Modules with own functionality  Inherit from existing classes or “reuse” the code  Change behavior  IcingaWeb2 provides Hook  HostActionsHook  Modules can provide Hooks  DataTypeHook (Icinga Director)  ReportHook (Reporting)  CLI actions  Themes How is IcingaWeb2 extensible? © RISE
  • 8. 8  CheckResult  Update-Report  Regularly  Scheduler  Portable format  Pdf  These are already features of the reporting module  Using ReportHook Checkreports © RISE
  • 9. 9  Why can’t I use a Notification plugin  Triggered by state change  Or external scheduling needed  No pdf Checkreports © RISE
  • 10. 10  Path  Smooth as it is based on idoreports  IDO implementation first  Access the check result instead of the SLA  Challenges  Icingadb  Plugin Output was sometimes not the same?  Added the last Execution Time  Plugin Output was outdated  $query->  setResultSetClass(VolatileStateResults::class); Checkreports © RISE
  • 12. 12  Other Applications have that too  Debugging  Disabled Dashboards  Restrictions  Icinga Community Call Impersonate © RISE
  • 13. 13  Path  Copy LoginController  Copy LoginForm  Copy views  Remove password field  Remove some styles  Remove every check   Open Questions  Domain awareness  Open a ticket if it doesn’t work Impersonate © RISE
  • 15. 15  Icinga is working on something  Enhanced Dashboards #3809  You can use this till it’s ready  It shows how extensible IcingaWeb2 is Dashboards © RISE
  • 17. 17  Inspired by enforceddashboards  by Thomas Gelf  Community issue  Sharing Dashboards create an overflow  Global Dashboards using configuration.php causes overflow too  Having a “virtual” or real user  Map Dashboard to other users  Keep your own Dashboards  Manage via Roles  Rename “users” in the menu  Pro Tipp  Use Impersonate module to change the other Dashboard Teamdashboards © RISE
  • 18. 18  Path  Using Scaffoldbuilder (Ini-Repository)  Copy Dashboard.php  Copy DashboardController.php  Copy views  Allow to set a user  Adapt some urls  Remove unused code  Using Roles / Permissions  Open Questions  Do you need Current Incidents too?  Current Incidents  Muted  Overdue Teamdashboards © RISE
  • 20. 20  Inspired by teamdashboards  It’s a community issue, post in the forum  Community issue  Sharing Dashboards create an overflow  Global Dashboards using configuration.php causes overflow too  Create Dashboards manually  Pane name  URL  Map it to other users  Keep your own Dashboards  Manage via Roles  Change the name in the menu  Change the icon  Change the position  Add entries via CLI Customdashboards © RISE
  • 22. 22  Build a documentation module based on your check plugins  Use a Template  Use Icinga Director information  Include good Documentation like  icinga-powershell-plugins  icinga-powershell-mssql  icinga-itl  Combine everything PluginDocBuilder © RISE
  • 23. 23  Path  Using Scaffoldbuilder (Ini-Repository)  Download releases from GitHub  Extract & combine  Already amazing  Access Icinga Director Command Fields  Extract information  Fill out my documentation template  Key Questions  Is it ready yet?  No  Is it on GitHub yet?  No  Can you show it to us?  YES PluginDocBuilder © RISE
  • 25. 25  Create module based on almost any name  Get all directories ready  Having a basic IndexController  Blank Page Syndrome  Having a first menu item  Get the Namespaces right for reference implementation  Get all the important config files  Get multiple IniRepositories  Get a ModuleConfig (ini file)  Get a generic documentation  Fill it out  Don’t start from scratch Scaffoldbuilder © RISE
  • 26. Map
  • 27. 27  By Nicolai Buchwitz  Based on latest master  Adapted search  Updated mapDatatype  Add the Ini-Repository for other “default maps”  Provide permissions for these maps icingaweb2-module-map Confidential © RISE
  • 28. DEMO
  • 29. 29 Where to get it? => GitHub  RISE-GMBH  Everything else © RISE  Moreamazingnick  Scaffoldbuilder
  • 30. 30 Porto Alegre Bangalore Dubai North Africa Paris Bern Berlin Vienna © RISE THANK YOU Research Industrial Systems Engineering (RISE) Forschungs-, Entwicklungs- und Großprojektberatung GmbH Concorde Business Park F 2320 Schwechat, Austria Mail welcome@rise-world.com Tel +43 1 9049007-0 Fax +43 1 5057473 Web www.rise-world.com Contact