Join AnsibleFest at Red Hat Summit!

community.zabbix.zabbix_connector module – Create/Delete/Update Zabbix connectors

Note

This module is part of the community.zabbix collection (version 3.3.0).

You might already have this collection installed if you are using the ansible package. It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install community.zabbix. You need further requirements to be able to use this module, see Requirements for details.

To use it in a playbook, specify: community.zabbix.zabbix_connector.

New in community.zabbix 3.3.0

Synopsis

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

Requirements

The below requirements are needed on the host that executes this module.

  • python >= 3.9

Parameters

Parameter

Comments

attempt_interval

integer

Parameter introduced in Zabbix 7.0

Interval between attempts in seconds (value between 0 and 10).

auth_type

string

HTTP authentication method used by the connector.

Choices:

  • "none"

  • "basic"

  • "ntlm"

  • "kerberos"

  • "digest"

  • "bearer"

data_type

string

Type of data being streamed.

Choices:

  • "item_values"

  • "events"

description

string

Description of the connector.

enabled

boolean

Whether the connector is enabled.

(mapped to the status property of the connector object in the Zabbix API)

Choices:

  • false

  • true

http_login_password

string

Basic Auth password

http_login_user

string

Basic Auth login

http_proxy

string

HTTP(S) proxy used by the connector.

item_value_types

list / elements=string

Parameter introduced in Zabbix 7.0

List of value types to stream.

Each element should be one of all, all+bin, numeric_float, character, log, numeric_unsigned, text or binary.

all represents all types except binary (default).

all+bin represents all types, binary included.

max_attempts

integer

Maximum number of attempts.

max_records

integer

Maximum number of records sent in one message.

max_senders

integer

Number of sender processes used by the connector.

name

string / required

Name of the connector.

password

string

Password to authenticate the connector with the receiver.

Supported only if auth_type is one of basic, ntlm, kerberos or digest.

ssl_cert_file

string

Public SSL key file path for client authentication.

ssl_key_file

string

Private SSL key file path for client authentication.

ssl_key_password

string

Password of the private SSL key file.

state

string

State of the connector.

On present, it will create a connector if it does not exist or update the connector if the associated data is different.

On absent, it will remove the connector if it exists.

Choices:

  • "present" ← (default)

  • "absent"

tags

list / elements=dictionary

List of tags to filter streamed data.

operator

string

Conditional operator used to filter .

Choices:

  • "equals"

  • "does not equal"

  • "contains"

  • "does not contain"

  • "exists"

  • "does not exist"

tag

string / required

Name of the tag.

value

string

Value of the tag compared.

tags_eval_type

string

Tag filter evaluation method.

Choices:

  • "and/or"

  • "or"

timeout

integer

Message sending timeout in seconds (value between 1 and 60).

token

string

Bearer token to authenticate the connector with the receiver.

Required when auth_type=bearer.

url

string

URL of the receiver used by the connector.

username

string

Username to authenticate the connector with the receiver.

Supported only if auth_type is one of basic, ntlm, kerberos or digest.

verify_host

boolean

Whether the connector should verify the receiver’s hostname against the certificate’s CN or SAN fields.

Choices:

  • false

  • true

verify_peer

boolean

Whether the connector should verify the receiver’s certificate.

Choices:

  • false

  • true

Examples

# If you want to use Username and Password to be authenticated by Zabbix Server
- name: Set credentials to access Zabbix Server API
  ansible.builtin.set_fact:
    ansible_user: Admin
    ansible_httpapi_pass: zabbix

# If you want to use API token to be authenticated by Zabbix Server
# https://www.zabbix.com/documentation/current/en/manual/web_interface/frontend_sections/administration/general#api-tokens
- name: Set API token
  ansible.builtin.set_fact:
    ansible_zabbix_auth_key: 8ec0d52432c15c91fcafe9888500cf9a607f44091ab554dbee860f6b44fac895

- name: Create or update a connector
  # set task level variables as we change ansible_connection plugin here
  vars:
    ansible_network_os: community.zabbix.zabbix
    ansible_connection: httpapi
    ansible_httpapi_port: 443
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_zabbix_url_path: "zabbixeu"  # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
    ansible_host: zabbix-example-fqdn.org
  community.zabbix.zabbix_proxy:
    name: My app connector
    description: Connector to send item values to My app
    state: present
    enabled: true
    data_type: item_values
    url: https://my-app.example.com/api/zabbix-stream
    auth_type: bearer
    token: "{{ my_app_bearer_token }}"
    value_types:
      - numeric_float
      - character
      - numeric_unsigned
      - text
    tags_eval_type: and/or
    tags:
      - tag: to-my-app
        operator: exists
      - tag: privacy
        operator: does not equal
        value: hidden

- name: Delete a connector
  # set task level variables as we change ansible_connection plugin here
  vars:
    ansible_network_os: community.zabbix.zabbix
    ansible_connection: httpapi
    ansible_httpapi_port: 443
    ansible_httpapi_use_ssl: true
    ansible_httpapi_validate_certs: false
    ansible_zabbix_url_path: "zabbixeu"  # If Zabbix WebUI runs on non-default (zabbix) path ,e.g. http://<FQDN>/zabbixeu
    ansible_host: zabbix-example-fqdn.org
  community.zabbix.zabbix_proxy:
    name: My app connector
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

msg

string

Text result of the operation.

Returned: always

Sample: "Successfully updated connector 'My app connector' (id: 2)"

result

dictionary

JSON result of the Zabbix API call

Returned: success

Sample: {"connectorids": ["2"]}

Authors

  • Loric Vandentempel (@loricvdt)