...
Icinga 2 sends alerts to Jira Service Management with detailed information. Jira Service Management acts as a dispatcher for Icinga2 Icinga 2 alerts, determines the right people to notify based on on-call schedules– notifies via email, phone calls, text messages (SMS) and iPhone & Android push notifications, and escalates alerts until they are acknowledged or closed.
Jira Service Management automatically connects to Icinga 2, gets performance data from Graphite for the host/service and attaches it to the alert.
Jira Service Management posts alert updates to Icinga 2, for example, acknowledging the alert will automatically ack the alert in Icinga 2, alert comments are reflected to Icinga 2 etc.
...
Jira Edge Connector (abbreviated as JEC) is a prerequisite for configuring the outgoing authentication of Icinga 2 integration. You can combinedly use JEC and Icinga 2 scripts to update alerts on Icinga 2. With this setup, you can deploy your own script, modify the ones provided, or run customized actions on Icinga 2. Download the latest version of the Icinga2 package from this repository.
...
Expand |
---|
title | Configuration parameters |
---|
|
Configuration parameter | Description | Mandatory? | Location |
---|
apiKey | Copy the URL from the integration configuration page in Jira Service Management. send2jsm uses this key to authenticate to Jira Service Management. API key is also used to identify the right integration configuration that should be used to process alerts. | Yes | /home/jsm/jec/conf/jec-config.json | baseUrl | Change this field according to your Jira Service Management environment (For example: EU, sandbox) | No | /home/jsm/jec/conf/jec-config.json | responders | The default responder. This field is used to specify which responders should be notified for Icinga 2 alerts. You can modify it to route alerts to different teams or schedules in Jira Service Management. This field is required if you haven’t set responders in the integration configuration page. | No | /home/jsm/jec/conf/integration.conf | tags | Tags of the alert that created in Jira Service Management. | No | /home/jsm/jec/conf/integration.conf | icinga_server | The Icinga 2 server in Jira Service Management and only required when there are multiple Icinga 2 servers. This is used by Jira Service Management when sending actions run by users (acknowledge, close, etc.) back to your Icinga 2 servers via JEC. | No | /home/jsm/jec/conf/integration.conf | logPath | The full path of the log file (Default: /var/log/jec/send2jsm.log) | No | /home/jsm/jec/conf/integration.conf | icinga2jsm.http.proxy.enabled | To enable or disable the external proxy configuration. Default: false | No | /home/jsm/jec/conf/integration.conf | icinga2jsm.http.proxy.host | Host of the proxy | No | /home/jsm/jec/conf/integration.conf | icinga2jsm.http.proxy.port | Port of the proxy | No | /home/jsm/jec/conf/integration.conf | icinga2jsm.http.proxy.scheme | The proxy connection protocol. It may be http or https, depending on your proxy servers. Default: http | No | /home/jsm/jec/conf/integration.conf | icinga2jsm.http.proxy.username | The username for proxy authentication | No | /home/jsm/jec/conf/integration.conf | icinga2jsm.http.proxy.password | The password for proxy authentication | No | /home/jsm/jec/conf/integration.conf |
|
...
Expand |
---|
title | Method 2: Configure by using Golang flags |
---|
|
Configure by entering flags into the command definition in the /etc/icinga2/features-available/jsm.conf file. Use -apiKey flag for your apiKey and -is flag for the icinga_server name. If there are no multiple Icinga 2 servers in use, you don't have to define the Icinga2 Icinga 2 server. Using flags overwrites all the other configuration methods mentioned earlier. To send additional custom arguments define them as key-value-pairs in the arguments dictionary. Since Icinga 2 shuffles the arguments, use the order property to make sure that the custom arguments are placed at the end of the list. Example: Code Block |
---|
"-spd" = "$service.perfdata$"
"customargument1" = {
value = "$customargument1$"
order = 1
} |
Parse custom arguments by adding {{_payload.customArgName}} to the input fields as needed. Learn more about dynamic fields. |
...
Select the Send Alert Actions To Icinga 2 checkbox on the integration configuration page. You can combinedly use JEC and Icinga 2 scripts to update alerts on Icinga 2. With this setup, you can deploy your own script, modify the ones provided, or run customized actions on Icinga 2.
To run actions in Icinga 2, JEC gets the configuration parameters from the configuration file, config.json (found at /home/jsm/jec/conf/jec-config.json).
...
The downloaded package includes the JEC utility (found in /usr/local/bin) and the script that JEC needs to run (found in /home/jsm/jec/scripts). Be sure to run JEC after configuring it. Learn more about running JEC documentation.
Info |
---|
The Icinga 2 integration package does not support SSL v1.0. If your Icinga Server 2 server has SSL v1.0, upgrade your SSL server. |
...
The source for the executable send2jsm is found in /usr/bin/ and send2jsm.go, in /home/jsm/jec/scripts respectively, and is also available in this repository. To change the behavior of the executable, edit send2jsm.go and build it by using the following command: go build send2jsm.go
...
Expand |
---|
title | 1. Icinga alerts are not getting created in Jira Service Management |
---|
|
Run the following test command from the shell and check if a test alert is created in Jira Service Management: Code Block |
---|
/home/jsm/jec/scripts/send2jsm -entityType=host -t=PROBLEM -hs=DOWN -hn=test_host
|
If you get a "Trace/breakpoint trap" error, the send2jsm plugin isn't compatible with the server distribution. Rebuild send2jsm.go according to the specific server environment as described in the “Source and recompiling send2jsm” section in this article. If the alert is created in Jira Service Management, the integration is configured correctly. Icinga 2 is probably not notifying the Jira Service Management contact for alerts. Check your Icinga 2 alert notifications log. If the alert is not created in Jira Service Management, check the logs at /var/log/jec/send2jsm.log. Look for the following errors in the log file: If you see "RestException[Could not authenticate.]" in the logs, Jira Service Management couldn't identify the API key. Check if the API key is set correctly per the steps outlined in the “Configure the Jira Service Management plugin in Icinga 2” section of this article. If a "Could not execute this action with apiKey of [Icinga2] integration" error is seen in the logs, the wrong integration package may have been downloaded. Make sure the downloaded Icinga 2 integration package is correct. If unsure of the problem, set the plugin's log level to debug and try again. Contact us and share the logs.
If there is no /var/log/jec/send2jsm.log file or there are no logs in it, check the following: Check if the Icinga user has permission to write to /var/log/jec directory. The installation package should automatically do this for you. If you face issues, run the following command:
chown -R icinga:jsm /var/log/jec Check the Icinga 2 server logs at /var/log/icinga2/icinga2.log. See if there are error logs regarding send2jsm . Contact us with the logs as needed.
Set send2jsm plugin's log level to DEBUGSet the send2jsm plugin's log level to DEBUG. Open the /home/jsm/jec/conf/integration.conffile and change the line send2jsm.logger=warning to icinga2jsm.logger=debug . |
...
Expand |
---|
title | 4. Error in perf_data.png generation in icinga 2 |
---|
|
If you're receiving an error while embedding perfData graphite into HTML, your Icinga2 Icinga 2 version is using perfData.png instead of perf_data.png for the graphite name. To fix the issue, update the python script as follows: Code Block |
---|
From:
buf += """<div class="img"><img src="perf_data.png"></div>"""
To:
buf += """<div class="img"><img src="perfData.png"></div>""" |
|
...