community.zabbix.zabbix_service module – Create/update/delete Zabbix service
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_service.
Synopsis
- Create/update/delete Zabbix service. 
Requirements
The below requirements are needed on the host that executes this module.
- python >= 3.9 
Parameters
| Parameter | Comments | 
|---|---|
| Status calculation rule. Only applicable if child services exists. -  -  -  Choices: 
 | |
| Child services to be linked to the service. | |
| Description of the service. | |
| Basic Auth password | |
| Basic Auth login | |
| Name of Zabbix service | |
| Parent services to be linked to the service. | |
| Problem tags to be created for the service. | |
| Mapping condition operator. 
 
 Choices: 
 | |
| Problem tag name. | |
| Problem tag value. Default:  | |
| Status propagation value. Must be set together with propagation_rule. 
 
 
 
 
 Required with  Default:  | |
| Status propagation value. Must be set together with propagation_rule. Possible values when propagation_rule=as_is or ignore: -  Possible values when propagation_rule=increase or decrease: -  -  -  -  -  Possible values when propagation_rule=fixed: -  -  -  -  -  -  -  Required with  | |
| Position of the service used for sorting. | |
| State: present - create/update service; absent - delete service. Choices: 
 | |
| Status rules for the service. | |
| Limit status. 
 
 
 
 
 
 
 | |
| Limit value: N, N% or W Possible values: 1-100000 for N and W, 1-100 for N% | |
| New status value. 
 
 
 
 
 
 | |
| Condition for setting (New status) status. 
 
 
 
 
 
 
 
 | |
| Service tags to be created for the service. | |
| Service tag name. | |
| Service tag value. | |
| Service weight. Default:  | 
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
# Creates a new Zabbix service
- name: Create Zabbix service monitoring Apache2 in DCs in Toronto area
  # set task level variables
  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_service:
    name: "apache2 service Toronto"
    description: Apache2 services in Toronto area
    sortorder: 0
    propagation_rule: increase
    propagation_value: warning
    weight: 1
    state: present
    tags:
      - tag: zabbix_service
        value: apache2
      - tag: area
        value: Toronto
    problem_tags:
      - tag: service_name
        value: httpd
      - tag: area
        operator: like
        value: toronto
    status_rules:
      - type: at_least_n_child_services_have_status_or_above
        limit_value: 4242
        limit_status: ok
        new_status: average
- name: Create Zabbix service monitoring all Apache2 services
  # 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_service:
    name: apache2 service
    description: Apache2 services
    tags:
      - tag: zabbix_service
        value: apache2
      - tag: area
        value: global
    children:
      - "apache2 service Toronto"
