/ansible-collection-icinga

This collection offers an almost complete solution to set up your monitoring with Ansible and Icinga. From setting up the Icinga agent unto automating the deployment of the Icinga director, you can install the necessary tools from a single source.

Primary LanguageJinja

Icinga Collection for Ansible

This Ansible collection contains:

  1. A role to manage the Installation for your Icinga agents

  2. A role to deploy your custom check scripts to your Icinga agents

  3. A role to manage downtimes in your Icinga

  4. The collection to deploy your Icinga master via the Icinga Director module

  5. An extra collection to use the Business Process module

  6. Ansible playbooks to create various objects in Icinga 2 using the director API

Requirements

  • Ansible version: 2.9.10
  • Icinga package repository configured
  • Note: for Redhat based Distributions you need to have install epel package repository too

Installation

If you use an older version, you can install it with Ansible Galaxy:

ansible-galaxy collection install telekom_mms.ansible_collection_icinga

Alternatively put the collection into a requirements.yml file:

---
collections:
  - telekom_mms.ansible_collection_icinga

Documentation

icinga_agent role:

Examples on how to use the role can be found here

icinga_plugins role:

Examples on how to use the role can be found here

icinga_director collection:

Check out the 'Documentation' part for the modules here

icinga_business_process collection:

Check out the 'Documentation' part for this collection here

icinga playbooks:

playbook description Requirements
mms_standard.yml create a timeperiod and service template to use for other checks -
azure_oauth_token.yml get azure oauth token to use in other checks azure_oauth_token.py needs to exist in the PluginDir on your Icinga Server or Agent
check_gitlab_scheduler.yml check gitlab scheduled pipelines check_gitlab_scheduler needs to exist in the PluginDir on your Icinga Server or Agent
check_https.yml check https reachability and certificates -
check_json_azure_restapi_resourcehealth.yml check state of azure resourcehealth check_json.pl needs to exist in the PluginDir on your Icinga Server or Agent
check_json_azure_restapi.yml do a json check against azure restapi (with oauth_token) check_json.pl needs to exist in the PluginDir on your Icinga Server or Agent
check_json.yml do a json check check_json.pl needs to exist in the PluginDir on your Icinga Server or Agent
template_empty_host.yml create a host template for an empty host -

You can use these playbooks in your playbook like this:

- name: Import mms standard playbook to create services that other checks depend on
  ansible.builtin.import_playbook: telekom_mms.ansible_collection_icinga.mms_standard

- name: Import playbook to create azure oauth token check
  ansible.builtin.import_playbook: telekom_mms.ansible_collection_icinga.check_azure_oauth_token

- name: Import playbook to create gitlab_scheduler check
  ansible.builtin.import_playbook: telekom_mms.ansible_collection_icinga.check_gitlab_scheduler

- name: Import playbook to create check_https checks
  ansible.builtin.import_playbook: telekom_mms.ansible_collection_icinga.check_https

Or call them from the command line:

ansible-playbook telekom_mms.ansible_collection_icinga.mms_standard
ansible-playbook telekom_mms.ansible_collection_icinga.check_azure_oauth_token
ansible-playbook telekom_mms.ansible_collection_icinga.check_gitlab_scheduler
ansible-playbook telekom_mms.ansible_collection_icinga.check_https
ansible-playbook telekom_mms.ansible_collection_icinga.check_json
ansible-playbook telekom_mms.ansible_collection_icinga.check_json_azure_restapi
ansible-playbook telekom_mms.ansible_collection_icinga.check_json_azure_restapi_resourcehealth
ansible-playbook telekom_mms.ansible_collection_icinga.template_empty_host

License

GPLv3

Author Information