Spec-Zone.ru › Ansible

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

Примечание

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

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

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

Для использования в книге задач укажите: community.zabbix.zabbix_mediatype.

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

Описание

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

Требования

Ниже перечислены требования, необходимые на хосте, на котором выполняется этот модуль.

  • python >= 3.9

Параметры

Параметр

Комментарии

attempt_interval

строка

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

Возможный диапазон — 0—1 час.

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

content_type

строка

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

Формат сообщения.

Варианты:

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

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

строка

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

http_login_user

строка

Логин аутентификации Basic.

max_attempts

целое число

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

Возможный диапазон — 0—10.

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

max_sessions

целое число

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

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

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

message_templates

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

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

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

body

строка

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

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

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

eventsource

строка

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

Требуется при использовании recovery.

Варианты:

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

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

string

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

Требуется при type=script.

script_params

list / elements=string

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

Требуется при type=script.

smtp_authentication

boolean

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

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

Варианты:

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

smtp_email

string

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

Требуется при type=email.

smtp_helo

string

SMTP HELO.

Требуется при type=email.

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

smtp_security

string

Уровень безопасности подключения SMTP.

Варианты:

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

smtp_server

string

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

Требуется при type=email.

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

smtp_server_port

integer

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

Требуется при type=email.

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

smtp_verify_host

boolean

Проверка хоста SSL для SMTP.

Может быть указано при smtp_security=STARTTLS или smtp_security=SSL/TLS

Варианты:

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

smtp_verify_peer

boolean

Проверка сервера SSL для SMTP.

Может быть указано при smtp_security=STARTTLS или smtp_security=SSL/TLS

Варианты:

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

state

string

Желаемое состояние типа медиа.

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

При absent, будет удален тип медиа, если он существует.

Варианты:

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

status

string

Включен ли тип медиа.

Варианты:

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

type

string / обязательно

Тип типа медиа.

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

Варианты:

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

username

string

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

Требуется при type=jabber или type=ez_texting.

Требуется при type=email и smtp_authentication=true.

webhook_params

list / elements=dictionary

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

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

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

name

string / обязательно

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

value

string

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

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

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

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

webhook_script

string

Требуется при type=webhook.

Код JavaScript, который выполнит операцию вебхука.

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

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

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

END_OF_DOCUMENT_MARKER

webhook_timeout

string

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

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

Возможные значения: от 1 до 60 секунд.

По умолчанию: "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}"

Авторы

  • Рубен Цырунян (@rubentsirunyan)

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

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

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

Spec-Zone.ru

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