Integrating CitoEngine with 3rd party tools¶
CitoEngine can be easily integrated with existing monitoring systems. All integration scripts mentioned here can be found at integerations tools repository.
Nagios¶
QuickStart¶
- Define an event in
CitoEngine UI -> Events -> Define an event
- Add a custom Nagios variable called
_CITOEVENTID
in the service definition as shown below:
define service {
service_description Total Processes
_CITOEVENTID 666
check_command check_local_procs!250!400!RSZDT
contact_groups +admins
use local-service
}
- Add the
citoengine
user to your notification group, in this example we will add the contact to the groupadmins
:
define contactgroup {
contactgroup_name admins
alias Nagios Administrators
members bofh,citoengine
}
Note
Same logic applies for host definitions.
- Copy
citoengine.cfg
to your nagios’ directory and include it innagios.cfg
. - Edit the
citoengine.cfg
file and replace the server and port to their actual values. - Copy
event_publisher.py
script to/usr/local/bin/
and make it executable.
Bulk update of service definitions¶
If you have a lot of service definitions then the above steps may prove very tedious. To help you around this we an use a helper script called cito_config_parser.py
.
This script runs in two modes, one where it parses an existing service definition file and other where it updates the service definition file with the relevant event_id’s
exported from CitoEngine. Here is how you can do it:
- Parse the existing service definition file:
cito_config_parser.py --type nagios -c services.cfg --parse --out my-services.txt
- Copy the output of
my-services.txt
intoCitoEngine -> Tools -> Add events in bulk
- Select your Team, Severity, Category, etc and hit submit.
- The next page shows you a list of forms for each service definition you pasted above. Go through it carefully, modify it and hit submit.
5. Go to CitoEngine UI -> Events
, select your Team check the Export CSV checkbox and hit search. The UI will give a CSV file of all your team’s events.
Save this locally and have a quick look at it to confirm everything is in order.
- Generate the new services config using the following command:
cito_config_parser.py --type nagios -c services.cfg --events-file events.csv --generate --out new_services.cfg
Note
Do not run the --generate
command on a previously configured services.cfg which already has _CITOEVENTID added. Always use the original service definition file.
Note
Sensu support will be released shortly.
LDAP Authentication¶
To enable LDAP authentication, simply uncomment the lines in file app/settings/ldap_auth.py
. This file contains the sample LDAP bindings for
Active Directory. You can modify the bindings based on your LDAP settings.
JIRA Integration¶
With release of version 1.1.0, we can now create JIRA tickets from the incident view page.
Edit the citoengine.conf and set
JIRA_ENABLED
to True
Set the JIRA_USER
, JIRA_PASSWORD
and the JIRA_FQDN
(FQDN should not end with a trailing slash /
).
JIRA_PROJECTS
, JIRA_ISSUE_TYPES
and JIRA_COMPONENTS
can be single valued or comma separated list of values.
JIRA_VERIFY_SSL
to False if you are using a self-signed certificate or getting any certificate validation errors.
Note
JIRA values are case-sensitive, so make sure you double check the names before adding them.