community / community.general / 0.1.1 / module / zabbix_action Create/Delete/Update Zabbix actions Authors: Ruben Tsirunyan (@rubentsirunyan), Ruben Harutyunov (@K-DOT) preview | supported by communitycommunity.general.zabbix_action (0.1.1) — module
Install with ansible-galaxy collection install community.general:==0.1.1
collections: - name: community.general version: 0.1.1
This module allows you to create, modify and delete Zabbix actions.
# 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 esc_period: 60 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'
# 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 esc_period: 1m 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' command_type: custom_script execute_on: server run_on_hosts: - 0
# 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 esc_period: 1h 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'
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. - Use sequential IDs that start at "A". If non-sequential IDs are used, Zabbix re-indexes them. This makes each module run notice the difference in IDs and update the action. timeout: default: 10 description: - The timeout of API request (seconds). type: int 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/4.0/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 - matches - does not match - 'Yes' - 'No' description: - Condition operator. - When I(type) is set to C(time_period), the choices are C(in), C(not in). - C(matches), C(does not match), C(Yes) and C(No) condition operators work only with >= Zabbix 4.0 type: description: - Type (label) of the condition. - 'Possible values when I(event_source=trigger):' - ' - C(host_group)' - ' - C(host)' - ' - C(trigger)' - ' - C(trigger_name)' - ' - C(trigger_severity)' - ' - C(time_period)' - ' - C(host_template)' - ' - C(application)' - ' - C(maintenance_status)' - ' - C(event_tag)' - ' - C(event_tag_value)' - 'Possible values when I(event_source=discovery):' - ' - C(host_IP)' - ' - C(discovered_service_type)' - ' - C(discovered_service_port)' - ' - C(discovery_status)' - ' - C(uptime_or_downtime_duration)' - ' - C(received_value)' - ' - C(discovery_rule)' - ' - C(discovery_check)' - ' - C(proxy)' - ' - C(discovery_object)' - 'Possible values when I(event_source=auto_registration):' - ' - C(proxy)' - ' - C(host_name)' - ' - C(host_metadata)' - 'Possible values when I(event_source=internal):' - ' - C(host_group)' - ' - C(host)' - ' - C(host_template)' - ' - C(application)' - ' - C(event_type)' value: description: - Value to compare with. - 'When I(type=discovery_status), the choices are:' - ' - C(up)' - ' - C(down)' - ' - C(discovered)' - ' - C(lost)' - 'When I(type=discovery_object), the choices are:' - ' - C(host)' - ' - C(service)' - 'When I(type=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=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: description: - Default operation step duration. Must be greater than 60 seconds. - Accepts only seconds in int for <= Zabbix 3.2 - Accepts seconds, time unit with suffix and user macro since => Zabbix 3.4 - Required when C(state=present). required: false login_user: description: - Zabbix user name. required: true type: str 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 only seconds in int for <= Zabbix 3.2 - Accepts seconds, time unit with suffix and user macro since => Zabbix 3.4 - 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 server_url: aliases: - url description: - URL of Zabbix server, with protocol (http or https). C(url) is an alias for C(server_url). required: true type: str event_source: choices: - trigger - discovery - auto_registration - internal description: - Type of events that the action will handle. - Required when C(state=present). required: false login_password: description: - Zabbix user password. required: true type: str validate_certs: default: true description: - If set to False, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates. type: bool default_message: description: - Problem message default text. default_subject: description: - Problem message default subject. http_login_user: description: - Basic Auth login type: str http_login_password: description: - Basic Auth password 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
msg: description: The result of the operation returned: success sample: 'Action Deleted: Register webservers, ID: 0001' type: str