Spec-Zone.ru › Ansible

Модуль community.zabbix.zabbix_map — создание, обновление и удаление карт Zabbix

Примечание

Этот модуль входит в коллекцию community.zabbix (версия 4.2.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.

Чтобы установить её, используйте: ansible-galaxy collection install community.zabbix. Для использования этого модуля могут потребоваться дополнительные компоненты. Подробнее см. в разделе Требования.

Чтобы использовать модуль в плейбуке, укажите: community.zabbix.zabbix_map.

  • Обзор
  • Требования
  • Параметры
  • Примеры

Обзор

  • Этот модуль позволяет создавать, изменять и удалять элементы карт Zabbix, используя исполняемые файлы Graphviz и текстовое описание на языке DOT. Узлы графа станут элементами карты, а рёбра — связями между элементами карты. Подробнее см. на страницах https://en.wikipedia.org/wiki/DOT_(graph_description_language) и https://www.graphviz.org/. Модуль создан по мотивам http://blog.zabbix.com/maps-for-the-lazy/.
  • Поддерживаются следующие дополнительные атрибуты узлов: zbx_host содержит имя узла в Zabbix. Используйте этот атрибут, если требуется тип элемента карты host. zbx_group содержит имя группы узлов в Zabbix. Используйте этот атрибут, если требуется тип элемента карты host group. zbx_sysmap содержит имя карты в Zabbix. Используйте этот атрибут, если требуется тип элемента карты map. zbx_label содержит подпись элемента карты. zbx_image содержит имя изображения, используемого для отображения элемента в состоянии по умолчанию. zbx_image_disabled содержит имя изображения, используемого для отображения отключённого элемента карты. zbx_image_maintenance содержит имя изображения, используемого для отображения элемента карты в режиме обслуживания. zbx_image_problem содержит имя изображения, используемого для отображения элемента карты с проблемами. zbx_url содержит URL элемента карты в формате name:url. Можно указать несколько URL, добавив суффикс (например, zbx_url1, zbx_url2).
  • Поддерживаются следующие дополнительные атрибуты связей: zbx_draw_style содержит стиль линии связи. Возможные значения: line, bold, dotted, dashed. zbx_trigger содержит имя триггера, используемого в качестве индикатора связи в формате host_name:trigger_name. Можно указать несколько триггеров, добавив суффикс (например, zbx_trigger1, zbx_trigger2). zbx_trigger_color содержит цвет индикатора, заданный именем цвета CSS3 или шестнадцатеричным кодом, начинающимся с #. zbx_trigger_draw_style содержит стиль отображения индикатора. Возможные значения совпадают со значениями для zbx_draw_style.

Требования

Следующие требования должны быть выполнены на узле, где запускается этот модуль.

  • python >= 3.9
  • pydotplus
  • webcolors
  • Pillow
  • Graphviz

Параметры

Параметр

Комментарии

data

псевдонимы: dot_data

строка

Граф, записанный на языке DOT.

default_image

псевдонимы: image

строка

Имя изображения Zabbix, используемого для отображения элемента, если для него не задан атрибут zbx_image.

expand_problem

логическое значение

Следует ли отображать триггер проблемы для элементов с одной проблемой.

Варианты:

  • false
  • true ← (по умолчанию)

height

целое число

Высота карты.

По умолчанию: 600

highlight

логическое значение

Включено ли выделение значков.

Варианты:

  • false
  • true ← (по умолчанию)

http_login_password

строка

Пароль для базовой аутентификации

http_login_user

строка

Имя пользователя для базовой аутентификации

label_type

строка

Тип подписи элемента карты.

Варианты:

  • "label"
  • "ip"
  • "name" ← (по умолчанию)
  • "status"
  • "nothing"
  • "custom"

margin

целое число

Размер пустого пространства между границами карты и её элементами.

По умолчанию: 40

name

псевдонимы: map_name

строка / обязательный

Имя карты.

state

строка

Состояние карты.

При значении present карта будет создана, если она не существует, или обновлена, если связанные с ней данные отличаются.

При значении absent карта будет удалена, если она существует.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

width

целое число

Ширина карты.

По умолчанию: 800

Примеры

# 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

###
### Example inventory:
# [web]
# web[01:03].example.com ansible_host=127.0.0.1
# [db]
# db.example.com ansible_host=127.0.0.1
# [backup]
# backup.example.com ansible_host=127.0.0.1
###
### Each inventory host is present in Zabbix with a matching name.
###
### Contents of "map.j2":
# digraph G {
#     graph [layout=dot splines=false overlap=scale]
#     INTERNET [zbx_url="Google:https://google.com" zbx_image="Cloud_(96)"]
# {% for web_host in groups.web %}
#     {% set web_loop = loop %}
#     web{{ '%03d' % web_loop.index }} [zbx_host="{{ web_host }}"]
#     INTERNET -> web{{ '%03d' % web_loop.index }} [zbx_trigger="{{ web_host }}:Zabbix agent on {HOST.NAME} is unreachable for 5 minutes"]
#     {% for db_host in groups.db %}
#       {% set db_loop = loop %}
#     web{{ '%03d' % web_loop.index }} -> db{{ '%03d' % db_loop.index }}
#     {% endfor %}
# {% endfor %}
#     { rank=same
# {% for db_host in groups.db %}
#     {% set db_loop = loop %}
#     db{{ '%03d' % db_loop.index }} [zbx_host="{{ db_host }}"]
#     {% for backup_host in groups.backup %}
#         {% set backup_loop = loop %}
#         db{{ '%03d' % db_loop.index }} -> backup{{ '%03d' % backup_loop.index }} [color="blue"]
#     {% endfor %}
# {% endfor %}
# {% for backup_host in groups.backup %}
#     {% set backup_loop = loop %}
#         backup{{ '%03d' % backup_loop.index }} [zbx_host="{{ backup_host }}"]
# {% endfor %}
#     }
# }
###
### Create Zabbix map "Demo Map" made of template "map.j2"
- name: Create Zabbix map
  # 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_map:
    name: Demo map
    state: present
    data: "{{ lookup('template', 'map.j2') }}"
    default_image: Server_(64)
    expand_problem: no
    highlight: no
    label_type: label
  delegate_to: localhost
  run_once: yes

Авторы

  • Antony Alekseyev (@Akint)

Ссылки на коллекцию

  • Отслеживание проблем
  • Домашняя страница
  • Репозиторий (исходный код)

© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/zabbix/zabbix_map_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API