Spec-Zone.ru › Ansible

Модуль community.zabbix.zabbix_mediatype — создание/обновление/удаление типов носителей Zabbix

Примечание

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

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

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

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

  • Краткое описание
  • Требования
  • Параметры
  • Примеры

Краткое описание

  • Этот модуль позволяет создавать, изменять и удалять типы носителей Zabbix.

Требования

Указанные ниже компоненты должны быть установлены на узле, на котором выполняется модуль.

  • python >= 3.9

Параметры

Параметр

Комментарии

attempt_interval

строка

Интервал между повторными попытками.

Допустимый диапазон: 0–1h.

По умолчанию: "10s"

description

строка

Описание типа носителя.

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

event_menu

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

Можно использовать, если type=webhook.

Добавляет в меню событий пункт со ссылкой на созданную внешнюю заявку.

Варианты:

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

event_menu_name

строка

Обязателен, если event_menu=true.

Название пункта меню событий.

event_menu_url

строка

Обязателен, если event_menu=true.

URL-адрес, связанный с пунктом меню событий.

gsm_modem

строка

Имя последовательного устройства GSM-модема.

Обязателен, если type=sms.

http_login_password

строка

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

http_login_user

строка

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

max_attempts

целое число

Максимальное количество попыток отправки оповещения.

Допустимый диапазон: 0–10.

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

max_sessions

целое число

Максимальное количество оповещений, обрабатываемых параллельно.

Допустимое значение — 1, если type=sms, и 0–100 в остальных случаях.

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

message_format

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

строка

Можно использовать, если type=email.

Варианты:

  • "plaintext"
  • "html" ← (по умолчанию)

message_templates

список / элементы=словарь

Шаблоны сообщений уведомлений по умолчанию для типов событий.

По умолчанию: []

body

строка

Текст сообщения по умолчанию.

Может содержать макросы.

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

eventsource

строка

Источник события.

Обязателен, если используется recovery.

Варианты:

  • "triggers"
  • "discovery"
  • "autoregistration"
  • "internal"
  • "services"

recovery

строка

Режим операции.

Обязателен, если используется eventsource.

Варианты:

  • "operations"
  • "recovery_operations"
  • "update_operations"

subject

строка

Тема сообщения по умолчанию.

Может содержать макросы; длина ограничена 255 символами.

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

message_text_limit

строка

Ограничение длины текста сообщения.

Обязателен, если type=ez_texting.

160 символов для США и 136 символов для Канады.

Варианты:

  • "USA"
  • "Canada"

name

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

Название типа носителя.

password

строка

Пароль для аутентификации.

Обязателен, если type=jabber или type=ez_texting.

Обязателен, если type=email и smtp_authentication=true.

process_tags

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

Можно использовать, если type=webhook.

Обрабатывать значения свойств возвращённого JSON как теги.

Эти теги добавляются к уже существующим (если есть) тегам проблемного события в Zabbix.

Варианты:

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

script_name

строка

Имя выполняемого скрипта.

Обязателен, если type=script.

script_params

список / элементы=строка

Список параметров скрипта.

Обязателен, если type=script.

smtp_authentication

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

Включить или отключить аутентификацию SMTP с использованием имени пользователя и пароля.

Если задано значение true, необходимо указать username и password.

Варианты:

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

smtp_email

строка

Адрес электронной почты, с которого будут отправляться уведомления.

Обязателен, если type=email.

smtp_helo

строка

Команда SMTP HELO.

Обязателен, если type=email.

По умолчанию: "localhost"

smtp_security

строка

Уровень защиты соединения SMTP.

Варианты:

  • "None"
  • "STARTTLS"
  • "SSL/TLS"

smtp_server

строка

Узел SMTP-сервера.

Обязателен, если type=email.

По умолчанию: "localhost"

smtp_server_port

целое число

Порт SMTP-сервера.

Обязателен, если type=email.

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

smtp_verify_host

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

Проверка имени узла SSL для SMTP.

Можно указать, если smtp_security=STARTTLS или smtp_security=SSL/TLS

Варианты:

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

smtp_verify_peer

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

Проверка SSL-сертификата узла для SMTP.

Можно указать, если smtp_security=STARTTLS или smtp_security=SSL/TLS

Варианты:

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

state

строка

Требуемое состояние типа носителя.

При значении present модуль создаст тип носителя, если он не существует, или обновит его, если связанные с ним данные отличаются.

При значении absent модуль удалит тип носителя, если он существует.

Варианты:

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

status

строка

Включён ли тип носителя.

Варианты:

  • "enabled" ← (по умолчанию)
  • "disabled"

type

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

Тип носителя.

Типы носителей jabber и ez_texting работают только с Zabbix версии 4.2 или более ранней.

Варианты:

  • "email"
  • "script"
  • "sms"
  • "webhook"
  • "jabber"
  • "ez_texting"

username

строка

Имя пользователя или идентификатор Jabber.

Обязателен, если type=jabber или type=ez_texting.

Обязателен, если type=email и smtp_authentication=true.

webhook_params

список / элементы=словарь

Можно использовать, если type=webhook.

Переменные веб-перехватчика, передаваемые скрипту веб-перехватчика при выполнении.

По умолчанию: []

name

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

Имя параметра.

value

строка

Значение параметра.

В параметрах поддерживаются все макросы, доступные в уведомлениях о проблемах.

Значения автоматически кодируются для URL. Значения макросов сначала подставляются, а затем автоматически кодируются для URL.

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

webhook_script

строка

Обязателен, если type=webhook.

Код JavaScript для выполнения операции веб-перехватчика.

Этот код имеет доступ ко всем параметрам в webhook_params.

Код может выполнять HTTP-запросы GET, POST, PUT и DELETE, а также управлять HTTP-заголовками и телом запроса.

Код может возвращать статус OK вместе с необязательным списком тегов и их значений либо строку ошибки.

webhook_timeout

строка

Можно использовать, если type=webhook.

Тайм-аут выполнения кода JavaScript в webhook_script.

Допустимые значения: 1–60s.

По умолчанию: "30s"

Примеры

# 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 an email mediatype with SMTP authentication"
  # 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_mediatype:
    name: "Ops email"
    type: "email"
    smtp_server: "example.com"
    smtp_server_port: 2000
    smtp_email: "ops@example.com"
    smtp_authentication: true
    username: "smtp_user"
    password: "smtp_pass"

- name: "Create a script mediatype"
  # 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_mediatype:
    name: "my script"
    type: "script"
    script_name: "my_script.py"
    script_params:
      - "arg1"
      - "arg2"

- name: "Create a jabber mediatype"
  # 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_mediatype:
    name: "My jabber"
    type: "jabber"
    username: "jabber_id"
    password: "jabber_pass"

- name: "Create a SMS mediatype"
  # 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_mediatype:
    name: "My SMS Mediatype"
    type: "sms"
    gsm_modem: "/dev/ttyS0"

- name: "Create a webhook mediatype"
  # 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_mediatype:
    name: "My webhook Mediatype"
    type: "webhook"
    webhook_script: "{{ lookup('file', 'slack.js') }}"
    webhook_params:
      - name: alert_message
        value: "{ALERT.MESSAGE}"
      - name: zabbix_url
        value: "{$ZABBIX.URL}"
    process_tags: true
    event_menu: true
    event_menu_name: "Open in Slack: '{EVENT.TAGS.__channel_name}'"
    event_menu_url: "{EVENT.TAGS.__message_link}"

- name: "Create an email mediatype with message templates"
  # 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_mediatype:
    name: "Ops email"
    type: "email"
    smtp_email: "ops@example.com"
    message_templates:
      - eventsource: triggers
        recovery: operations
        subject: "Problem: {EVENT.NAME}"
        body: "Problem started at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\n"
      - eventsource: triggers
        recovery: recovery_operations
        subject: "Resolved: {EVENT.NAME}"
        body: "Problem resolved at {EVENT.TIME} on {EVENT.DATE}\r\nProblem name: {EVENT.NAME}\r\n"
      - eventsource: triggers
        recovery: update_operations
        subject: "Updated problem: {EVENT.NAME}"
        body: "{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.\r\n"
      - eventsource: discovery
        recovery: operations
        subject: "Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}"
        body: "Discovery rule: {DISCOVERY.RULE.NAME}\r\n\r\nDevice IP: {DISCOVERY.DEVICE.IPADDRESS}"
      - eventsource: autoregistration
        recovery: operations
        subject: "Autoregistration: {HOST.HOST}"
        body: "Host name: {HOST.HOST}\r\nHost IP: {HOST.IP}\r\nAgent port: {HOST.PORT}"

Авторы

  • Ruben Tsirunyan (@rubentsirunyan)

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

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

© 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_mediatype_module.html

Spec-Zone.ru

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