Spec-Zone.ru › Ansible

Модуль community.zabbix.zabbix_map – Создание/обновление/удаление карт Zabbix

Примечание

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

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

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

Для использования в playbook укажите: 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

строка

Пароль Basic Auth

http_login_user

строка

Логин Basic Auth

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

Авторы

  • Антоний Алексеев (@Akint)

Ссылки на сборник

  • Отслеживание проблем
  • Главная страница
  • Репозиторий (источники)

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

Spec-Zone.ru

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