community.zabbix.zabbix_proxy module – Create/delete/get/update Zabbix proxies

Note

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

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_proxy.

Synopsis

  • This module allows you to create, modify, get and delete Zabbix proxy entries.

Requirements

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

  • python >= 3.9

Parameters

Parameter

Comments

address

string

Parameter introduced in Zabbix 7.0.

IP address or DNS name to connect to.

Required if the Zabbix proxy operating mode is passive

allowed_addresses

string

Parameter introduced in Zabbix 7.0.

Comma-delimited IP addresses or DNS names of active Zabbix proxy.

ca_cert

aliases: tls_issuer

string

Certificate issuer.

custom_timeouts

integer

Parameter introduced in Zabbix 7.0.

Whether to override global item timeouts on the proxy level.

0 - use global settings; 1 - override timeouts.

Choices:

  • 0 ← (default)

  • 1

description

string

Description of the proxy.

http_login_password

string

Basic Auth password

http_login_user

string

Basic Auth login

interface

dictionary

Deprecated for Zabbix version >= 7.0.

Dictionary with params for the interface when proxy is in passive mode.

For more information, review proxy interface documentation at

https://www.zabbix.com/documentation/current/en/manual/api/reference/proxy/object#proxy-interface.

Default: {}

dns

string

DNS name of the proxy interface.

Required if useip=0.

Default: ""

ip

string

IP address used by proxy interface.

Required if useip=1.

Default: ""

port

string

Port used by proxy interface.

Default: "10051"

useip

integer

Connect to proxy interface with IP address instead of DNS name.

0 (don’t use ip), 1 (use ip).

Choices:

  • 0 ← (default)

  • 1

local_address

string

Parameter introduced in Zabbix 7.0.

Address for active agents. IP address or DNS name to connect to.

Required if proxy_groupid is not 0

local_port

string

Parameter introduced in Zabbix 7.0.

Local proxy port number to connect to.

Supported if proxy_groupid is not 0

Default: "10051"

operating_mode

string

Parameter introduced in Zabbix 7.0.

Type of proxy.

Choices:

  • "active" ← (default)

  • "passive"

port

string

Parameter introduced in Zabbix 7.0.

Port number to connect to.

supported if the Zabbix proxy operating mode is passive.

Default: "10051"

proxy_address

string

Deprecated for Zabbix version >= 7.0.

Comma-delimited list of IP/CIDR addresses or DNS names to accept active proxy requests from.

Requires status=active.

proxy_group

string

Parameter introduced in Zabbix 7.0.

Proxy group name.

proxy_name

string / required

Name of the proxy in Zabbix.

state

string

State of the proxy.

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

On absent will remove a proxy if it exists.

Choices:

  • "present" ← (default)

  • "absent"

status

string

Deprecated for Zabbix version >= 7.0.

Type of proxy. (4 - active, 5 - passive)

Choices:

  • "active" ← (default)

  • "passive"

timeout_browser

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on browser type checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_db_monitor

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on DB checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_external_check

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on external checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_http_agent

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on HTTPagent checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_script

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on script type checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_simple_check

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on simple checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_snmp_agent

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on SNMP agent checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_ssh_agent

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on SSH checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_telnet_agent

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on Telnet checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Required if if custom_timeouts is set to 1.

timeout_zabbix_agent

string

Parameter introduced in Zabbix 7.0.

Spend no more than this number of seconds on Zabbix agent checks processing.

Accepts seconds or time unit with suffix (e.g., 30s, 1m).

Possible values range: 1-600s.

Rired if if custom_timeouts is set to 1.

tls_accept

string

Connections from proxy.

Choices:

  • "no_encryption" ← (default)

  • "PSK"

  • "certificate"

tls_connect

string

Connections to proxy.

Choices:

  • "no_encryption" ← (default)

  • "PSK"

  • "certificate"

tls_psk

string

The preshared key, at least 32 hex digits. Required if either tls_connect or tls_accept has PSK enabled.

tls_psk_identity

string

PSK identity. Required if either tls_connect or tls_accept has PSK enabled.

tls_subject

string

Certificate subject.

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 proxy with proxy type active (Zabbix version < 7.0)
  # 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:
    proxy_name: ExampleProxy
    description: ExampleProxy
    status: active
    state: present
    proxy_address: ExampleProxy.local

- name: Create a new passive proxy using only its IP (Zabbix version < 7.0)
  # 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:
    proxy_name: ExampleProxy
    description: ExampleProxy
    status: passive
    state: present
    interface:
      useip: 1
      ip: 10.1.1.2
      port: 10051

- name: Create a new passive proxy using only its DNS (Zabbix version < 7.0)
  # 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:
    proxy_name: ExampleProxy
    description: ExampleProxy
    status: passive
    state: present
    interface:
      dns: proxy.example.com
      port: 10051

- name: Create or update a proxy with proxy type active (Zabbix version >= 7.0)
  # 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:
    proxy_name: ExampleProxy
    description: ExampleProxy
    operating_mode: operating_mode
    state: present
    allowed_addresses: ExampleProxy.local

- name: Create a new passive proxy using only its IP (Zabbix version >= 7.0)
  # 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:
    proxy_name: ExampleProxy
    description: ExampleProxy
    operating_mode: passive
    state: present
    address: 10.1.1.2
    port: 10051

- name: Create a new passive proxy using only its DNS (Zabbix version >= 7.0)
  # 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:
    proxy_name: ExampleProxy
    description: ExampleProxy
    operating_mode: passive
    state: present
    address: proxy.example.com
    port: 10051

Authors

  • Alen Komic (@akomic)