ansible.builtin.zabbix_action (v2.8.13) — module

Create/Delete/Update Zabbix actions

| "added in version" 2.8 of ansible.builtin"

Authors: Ruben Tsirunyan (@rubentsirunyan), Ruben Harutyunov (@K-DOT)

preview | supported by community

Install Ansible via pip

Install with pip install ansible==2.8.13

Description

This module allows you to create, modify and delete Zabbix actions.


Requirements

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Trigger action with only one condition
- name: Deploy trigger action
  zabbix_action:
    server_url: "http://zabbix.example.com/zabbix/"
    login_user: Admin
    login_password: secret
    name: "Send alerts to Admin"
    event_source: 'trigger'
    state: present
    status: enabled
    conditions:
      - type: 'trigger_severity'
        operator: '>='
        value: 'Information'
    operations:
      - type: send_message
        subject: "Something bad is happening"
        message: "Come on, guys do something"
        media_type: 'Email'
        send_to_users:
          - 'Admin'
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Trigger action with multiple conditions and operations
- name: Deploy trigger action
  zabbix_action:
    server_url: "http://zabbix.example.com/zabbix/"
    login_user: Admin
    login_password: secret
    name: "Send alerts to Admin"
    event_source: 'trigger'
    state: present
    status: enabled
    conditions:
      - type: 'trigger_name'
        operator: 'like'
        value: 'Zabbix agent is unreachable'
        formulaid: A
      - type: 'trigger_severity'
        operator: '>='
        value: 'disaster'
        formulaid: B
    formula: A or B
    operations:
      - type: send_message
        media_type: 'Email'
        send_to_users:
          - 'Admin'
      - type: remote_command
        command: 'systemctl restart zabbix-agent'
        run_on_hosts:
          - 0
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
# Trigger action with recovery and acknowledge operations
- name: Deploy trigger action
  zabbix_action:
    server_url: "http://zabbix.example.com/zabbix/"
    login_user: Admin
    login_password: secret
    name: "Send alerts to Admin"
    event_source: 'trigger'
    state: present
    status: enabled
    conditions:
      - type: 'trigger_severity'
        operator: '>='
        value: 'Information'
    operations:
      - type: send_message
        subject: "Something bad is happening"
        message: "Come on, guys do something"
        media_type: 'Email'
        send_to_users:
          - 'Admin'
    recovery_operations:
      - type: send_message
        subject: "Host is down"
        message: "Come on, guys do something"
        media_type: 'Email'
        send_to_users:
          - 'Admin'
    acknowledge_operations:
      - type: send_message
        media_type: 'Email'
        send_to_users:
          - 'Admin'

Inputs

    
name:
    description:
    - Name of the action
    required: true

state:
    choices:
    - present
    - absent
    default: present
    description:
    - State of the action.
    - On C(present), it will create an action if it does not exist or update the action
      if the associated data is different.
    - On C(absent), it will remove the action if it exists.

status:
    choices:
    - enabled
    - disabled
    default: enabled
    description:
    - Status of the action.

formula:
    description:
    - User-defined expression to be used for evaluating conditions of filters with a custom
      expression.
    - The expression must contain IDs that reference specific filter conditions by its
      formulaid.
    - The IDs used in the expression must exactly match the ones defined in the filter
      conditions. No condition can remain unused or omitted.
    - Required for custom expression filters.

eval_type:
    choices:
    - andor
    - and
    - or
    - custom_expression
    description:
    - Filter condition evaluation method.
    - Defaults to C(andor) if conditions are less then 2 or if I(formula) is not specified.
    - Defaults to C(custom_expression) when formula is specified.

conditions:
    description:
    - List of dictionaries of conditions to evaluate.
    - For more information about suboptions of this option please check out Zabbix API
      documentation U(https://www.zabbix.com/documentation/3.4/manual/api/reference/action/object#action_filter_condition)
    suboptions:
      formulaid:
        description:
        - Arbitrary unique ID that is used to reference the condition from a custom expression.
        - Can only contain upper-case letters.
        - Required for custom expression filters.
      operator:
        choices:
        - '='
        - <>
        - like
        - not like
        - in
        - '>='
        - <=
        - not in
        description:
        - Condition operator.
        - When I(type) is set to C(time_period), the choices are C(in), C(not in).
      type:
        choices:
        - host_group
        - host
        - trigger
        - trigger_name
        - trigger_severity
        - time_period
        - host_template
        - application
        - maintenance_status
        - event_tag
        - event_tag_value
        - host_IP
        - discovered_service_type
        - discovered_service_port
        - discovery_status
        - uptime_or_downtime_duration
        - received_value
        - discovery_rule
        - discovery_check
        - proxy
        - discovery_object
        - proxy
        - host_name
        - host_metadata
        - host_group
        - host
        - host_template
        - application
        - event_type
        description: Type (label) of the condition.
      value:
        description:
        - Value to compare with.
        - When I(type) is set to C(discovery_status), the choices are C(up), C(down),
          C(discovered), C(lost).
        - When I(type) is set to C(discovery_object), the choices are C(host), C(service).
        - When I(type) is set to C(event_type), the choices are C(item in not supported
          state), C(item in normal state), C(LLD rule in not supported state), C(LLD rule
          in normal state), C(trigger in unknown state), C(trigger in normal state).
        - When I(type) is set to C(trigger_severity), the choices are (case-insensitive)
          C(not classified), C(information), C(warning), C(average), C(high), C(disaster)
          irrespective of user-visible names being changed in Zabbix. Defaults to C(not
          classified) if omitted.
        - Besides the above options, this is usually either the name of the object or
          a string to compare with.
    type: list

esc_period:
    default: '60'
    description:
    - Default operation step duration. Must be greater than 60 seconds. Accepts seconds,
      time unit with suffix and user macro.

operations:
    description:
    - List of action operations
    suboptions:
      command:
        description:
        - Command to run.
        - Required when I(type=remote_command) and I(command_type!=global_script).
      command_type:
        choices:
        - custom_script
        - ipmi
        - ssh
        - telnet
        - global_script
        description:
        - Type of operation command.
        - Required when I(type=remote_command).
      esc_period:
        default: 0s
        description:
        - Duration of an escalation step in seconds.
        - Must be greater than 60 seconds.
        - Accepts seconds, time unit with suffix and user macro.
        - If set to 0 or 0s, the default action escalation period will be used.
      esc_step_from:
        default: 1
        description:
        - Step to start escalation from.
      esc_step_to:
        default: 1
        description:
        - Step to end escalation at.
      execute_on:
        choices:
        - agent
        - server
        - proxy
        description:
        - Target on which the custom script operation command will be executed.
        - Required when I(type=remote_command) and I(command_type=custom_script).
      host_groups:
        description:
        - List of host groups host should be added to.
        - Required when I(type=add_to_host_group) or I(type=remove_from_host_group).
        type: list
      inventory:
        description:
        - Host inventory mode.
        - Required when I(type=set_host_inventory_mode).
      media_type:
        default: all
        description:
        - Media type that will be used to send the message.
        - Set to C(all) for all media types
      message:
        description:
        - Operation message text.
        - Will check the 'default message' and use the text from I(default_message) if
          this and I(default_subject) are not specified
      operation_condition:
        choices:
        - acknowledged
        - not_acknowledged
        description:
        - The action operation condition object defines a condition that must be met to
          perform the current operation.
        type: str
      password:
        description:
        - Password used for authentication.
        - Required when I(type=remote_command) and I(command_type in [ssh, telnet]).
      port:
        description:
        - Port number used for authentication.
        - Required when I(type=remote_command) and I(command_type in [ssh, telnet]).
      run_on_groups:
        description:
        - Host groups to run remote commands on.
        - Required when I(type=remote_command) if I(run_on_hosts) is not set.
      run_on_hosts:
        description:
        - Hosts to run remote commands on.
        - Required when I(type=remote_command) if I(run_on_groups) is not set.
        - If set to 0 the command will be run on the current host.
      script_name:
        description:
        - The name of script used for global script commands.
        - Required when I(type=remote_command) and I(command_type=global_script).
      send_to_groups:
        description:
        - User groups to send messages to.
        type: list
      send_to_users:
        description:
        - Users (usernames or aliases) to send messages to.
        type: list
      ssh_auth_type:
        choices:
        - password
        - public_key
        description:
        - Authentication method used for SSH commands.
        - Required when I(type=remote_command) and I(command_type=ssh).
      ssh_privatekey_file:
        description:
        - Name of the private key file used for SSH commands with public key authentication.
        - Required when I(type=remote_command) and I(command_type=ssh).
      ssh_publickey_file:
        description:
        - Name of the public key file used for SSH commands with public key authentication.
        - Required when I(type=remote_command) and I(command_type=ssh).
      subject:
        description:
        - Operation message subject.
        - Will check the 'default message' and use the text from I(default_subject) if
          this and I(default_subject) are not specified
      templates:
        description:
        - List of templates host should be linked to.
        - Required when I(type=link_to_template) or I(type=unlink_from_template).
        type: list
      type:
        choices:
        - send_message
        - remote_command
        - add_host
        - remove_host
        - add_to_host_group
        - remove_from_host_group
        - link_to_template
        - unlink_from_template
        - enable_host
        - disable_host
        - set_host_inventory_mode
        description:
        - Type of operation.
      username:
        description:
        - User name used for authentication.
        - Required when I(type=remote_command) and I(command_type in [ssh, telnet]).
    type: list

event_source:
    choices:
    - trigger
    - discovery
    - auto_registration
    - internal
    description:
    - Type of events that the action will handle.
    required: true

default_message:
    description:
    - Problem message default text.

default_subject:
    description:
    - Problem message default subject.

http_login_user:
    description:
    - Basic Auth login
    required: false
    type: str

http_login_password:
    description:
    - Basic Auth password
    required: false
    type: str

recovery_operations:
    description:
    - List of recovery operations.
    - C(Suboptions) are the same as for I(operations).
    - Works only with >= Zabbix 3.2
    type: list

pause_in_maintenance:
    default: true
    description:
    - Whether to pause escalation during maintenance periods or not.
    - Can be used when I(event_source=trigger).
    type: bool

acknowledge_operations:
    description:
    - List of acknowledge operations.
    - C(Suboptions) are the same as for I(operations).
    - Works only with >= Zabbix 3.4
    type: list

recovery_default_message:
    description:
    - Recovery message text.
    - Works only with >= Zabbix 3.2

recovery_default_subject:
    description:
    - Recovery message subject.
    - Works only with >= Zabbix 3.2

acknowledge_default_message:
    description:
    - Update operation (known as "Acknowledge operation" before Zabbix 4.0) message text.
    - Works only with >= Zabbix 3.4

acknowledge_default_subject:
    description:
    - Update operation (known as "Acknowledge operation" before Zabbix 4.0) message subject.
    - Works only with >= Zabbix 3.4

Outputs

msg:
  description: The result of the operation
  returned: success
  sample: 'Action Deleted: Register webservers, ID: 0001'
  type: str