HowTo: Connect OTRS with Icinga2 – Part 3
Robert Ullrich27. Apr 2018 | AdministrationBest PracticesConsultingMiscellaneous
Disclaimer:
The practical examples presented in our technical blog (blog.otrs.com) and now in the expert category in our FAQ blog section serve as a source of ideas and documentation to show what is theoretically possible with OTRS in concrete scenarios or sometimes even for more exotic configurations. All configurations presented here were developed under laboratory conditions as a proof of concept.
We can only guarantee testing and implementation of these concepts to be error-free and productive if implemented in a workshop with one of our OTRS consultants. Without this, the responsibility lies with the customer himself. Please note that configurations from older OTRS versions may not work in the newer ones.
Let’s continue with our Icinga2Connector. Last time I showed you how to create a new host in Icinga2 via API. Today I will show you how to delete hosts, if they’re retired. To complete this how-to, you need at first a running OTRS and an Icinga2 system.
Use case for this connector
If you have a Release & Deployment management process in your OTRS system and you want to transmit information automatical to Icinga2. In this small blog article, I’ll show you, how to create a web service between OTRS and Icinga2. I’ll call this integration “Icinga2Connector”.
OTRS Requirements for this HowTo
OTRS Framework
- at least OTRS 6.0.x
OTRS Packages
You need the following Feature Add-Ons :
- OTRSTicketInvoker
(Adds new invoker for TicketCreate and TicketUpdate in the GenericInterface.)
Third Party Software
You need this third-party software:
- XML::Simple
- XML::LibXML
- XML::LibXSLT
DynamicField
- “Icinga2Hostname” of type “TEXT” to specify the name of the new Icinga2 host
- “Icinga2DeleteHost” of type “Dropdown” to make a decision
Web service
In addition, part 1 & part 2 of the Icinga2Connector might be useful. You’ll find the first blog article here and the second blog article here.
Configuring the Invoker “DeleteHost”
Now we’re ready to start the configuration of our next Invoker. Create a new Invoker called “DeleteHost”. Select all the needed data for your outgoing requests and use “XSLT” as mapping for your outgoing data.
For our XSLT mapping we need the following elements:
- the hostname, which should be deleted in Icinga2 (dynamic field “Icinga2Hostname”)
Now you can configure your outgoing XSLT-mapping. If you need a working XSLT-mapping, you can use the following example:
The used “Event trigger” is the last point for this invoker. Just select one and you’re done with the Invoker configuration.
Configuring the Icinga2Connector “Network Transport”
Requester configuration
It’s necessary to configure the network transport for the invoker because we’ve to use the right requests commands towards Icinga2. Otherwise, we’ll receive errors. It’s quite easy as you can see:
As authentication module please use HTTP basic auth and fill in the user credentials of the Icinga2 API user. Afterward just click on “Save and finish”.
Testing the Icinga2Connector
Testing the Requester
Create or take an already existing ticket and trigger the “DeleteHost” invoker. In the Icinga2 WebGUI, the host disappears. ;-)
More information about the Icinga2 API
You can also use other resources which are provided by the Icinga2 API.
Please go to the following website, if you need more information: https://www.icinga.com/docs/icinga2/latest/doc/12-icinga2-api/