community.general.nagios (0.1.4) — module

Perform common tasks in Nagios related to downtime and notifications.

Authors: Tim Bielawa (@tbielawa)

Install collection

Install with ansible-galaxy collection install community.general:==0.1.4


Add to requirements.yml

  collections:
    - name: community.general
      version: 0.1.4

Description

The C(nagios) module has two basic functions: scheduling downtime and toggling alerts for services or hosts.

All actions require the I(host) parameter to be given explicitly. In playbooks you can use the C({{inventory_hostname}}) variable to refer to the host the playbook is currently running on.

You can specify multiple services at once by separating them with commas, .e.g., C(services=httpd,nfs,puppet).

When specifying what service to handle there is a special service value, I(host), which will handle alerts/downtime for the I(host itself), e.g., C(service=host). This keyword may not be given with other services at the same time. I(Setting alerts/downtime for a host does not affect alerts/downtime for any of the services running on it.) To schedule downtime for all services on particular host use keyword "all", e.g., C(service=all).

When using the C(nagios) module you will need to specify your Nagios server using the C(delegate_to) parameter.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Set 30 minutes of apache downtime
  nagios:
    action: downtime
    minutes: 30
    service: httpd
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Schedule an hour of HOST downtime
  nagios:
    action: downtime
    minutes: 60
    service: host
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Schedule an hour of HOST downtime starting at 2019-04-23T02:00:00+00:00
  nagios:
    action: downtime
    start: 1555984800
    minutes: 60
    service: host
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Schedule an hour of HOST downtime, with a comment describing the reason
  nagios:
    action: downtime
    minutes: 60
    service: host
    host: '{{ inventory_hostname }}'
    comment: Rebuilding machine
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Schedule downtime for ALL services on HOST
  nagios:
    action: downtime
    minutes: 45
    service: all
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Schedule downtime for a few services
  nagios:
    action: downtime
    services: frob,foobar,qeuz
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Set 30 minutes downtime for all services in servicegroup foo
  nagios:
    action: servicegroup_service_downtime
    minutes: 30
    servicegroup: foo
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Set 30 minutes downtime for all host in servicegroup foo
  nagios:
    action: servicegroup_host_downtime
    minutes: 30
    servicegroup: foo
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete all downtime for a given host
  nagios:
    action: delete_downtime
    host: '{{ inventory_hostname }}'
    service: all
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete all downtime for HOST with a particular comment
  nagios:
    action: delete_downtime
    host: '{{ inventory_hostname }}'
    service: host
    comment: Planned maintenance
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Enable SMART disk alerts
  nagios:
    action: enable_alerts
    service: smart
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Disable httpd and nfs alerts
  nagios:
    action: disable_alerts
    service: httpd,nfs
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Disable HOST alerts
  nagios:
    action: disable_alerts
    service: host
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Silence ALL alerts
  nagios:
    action: silence
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Unsilence all alerts
  nagios:
    action: unsilence
    host: '{{ inventory_hostname }}'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Shut up nagios
  nagios:
    action: silence_nagios
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Annoy me negios
  nagios:
    action: unsilence_nagios
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Command something
  nagios:
    action: command
    command: DISABLE_FAILURE_PREDICTION

Inputs

    
host:
    description:
    - Host to operate on in Nagios.

start:
    description:
    - When downtime should start, in time_t format (epoch seconds).
    version_added: 0.2.0
    version_added_collection: community.general

action:
    choices:
    - downtime
    - delete_downtime
    - enable_alerts
    - disable_alerts
    - silence
    - unsilence
    - silence_nagios
    - unsilence_nagios
    - command
    - servicegroup_service_downtime
    - servicegroup_host_downtime
    description:
    - Action to take.
    - servicegroup options were added in 2.0.
    - delete_downtime options were added in 2.2.
    required: true

author:
    default: Ansible
    description:
    - Author to leave downtime comments as. Only usable with the C(downtime) action.

cmdfile:
    default: auto-detected
    description:
    - Path to the nagios I(command file) (FIFO pipe). Only required if auto-detection
      fails.

command:
    description:
    - The raw command to send to nagios, which should not include the submitted time header
      or the line-feed B(Required) option when using the C(command) action.
    required: true

comment:
    default: Scheduling downtime
    description:
    - Comment for C(downtime) action.

minutes:
    default: 30
    description:
    - Minutes to schedule downtime for.
    - Only usable with the C(downtime) action.
    type: int

services:
    aliases:
    - service
    description:
    - What to manage downtime/alerts for. Separate multiple services with commas. C(service)
      is an alias for C(services). B(Required) option when using the C(downtime), C(enable_alerts),
      and C(disable_alerts) actions.
    required: true

servicegroup:
    description:
    - The Servicegroup we want to set downtimes/alerts for. B(Required) option when using
      the C(servicegroup_service_downtime) amd C(servicegroup_host_downtime).