Spec-Zone.ru › Ansible

community.zabbix.zabbix_action модуль — Создание/Удаление/Изменение действий Zabbix

Примечание

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

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

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

Для использования в плейбуке укажите: community.zabbix.zabbix_action.

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

Обзор

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

Требования

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

  • python >= 3.9
END_OF_DOCUMENT_MARKER

Параметры

Параметр

Комментарии

acknowledge_operations

aliases: update_operations

list / elements=dictionary

Список операций подтверждения.

Операции подтверждения действий известны как операции обновления, начиная с Zabbix 4.0.

Suboptions совпадают с параметрами для operations.

Default: []

command

string

Команда для выполнения.

command_type

string

Тип команды операции.

Choices:

  • "custom_script"
  • "ipmi"
  • "ssh"
  • "telnet"
  • "global_script"

execute_on

string

Целевой объект, на котором будет выполнена команда операции пользовательского скрипта.

Choices:

  • "agent"
  • "server"
  • "proxy"

media_type

string

Тип носителя, который будет использоваться для отправки сообщения.

Может использоваться с type=send_message или type=notify_all_involved внутри acknowledge_operations.

Установите значение all для всех типов носителей

Default: "all"

op_message

string

Текст сообщения операции.

Если op_message и subject не определены, будет использоваться «сообщение по умолчанию» из типа носителя

password

string

Пароль, используемый для аутентификации.

Требуется, когда ssh_auth_type=password или command_type=telnet.

Может использоваться, когда type=remote_command.

port

integer

Номер порта, используемый для аутентификации.

Может использоваться, когда command_type in [ssh, telnet] и type=remote_command.

run_on_groups

list / elements=string

Группы хостов, на которых будут выполняться удаленные команды.

Требуется, когда type=remote_command и run_on_hosts не установлен.

run_on_hosts

list / elements=string

Хосты, на которых будут выполняться удаленные команды.

Требуется, когда type=remote_command и run_on_groups не установлен.

Если установлено значение 0, команда будет выполнена на текущем хосте.

script_name

string

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

Требуется, когда command_type=global_script.

Может использоваться, когда type=remote_command.

send_to_groups

list / elements=string

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

send_to_users

list / elements=string

Пользователи (имена пользователей или псевдонимы), которым будут отправляться сообщения.

ssh_auth_type

string

Метод аутентификации, используемый для команд SSH.

Требуется, когда type=remote_command и command_type=ssh.

Choices:

  • "password"
  • "public_key"

ssh_privatekey_file

string

Имя файла закрытого ключа, используемого для команд SSH с аутентификацией открытым ключом.

Требуется, когда ssh_auth_type=public_key.

Может использоваться, когда type=remote_command.

ssh_publickey_file

string

Имя файла открытого ключа, используемого для команд SSH с аутентификацией открытым ключом.

Требуется, когда ssh_auth_type=public_key.

Может использоваться, когда type=remote_command.

Тема сообщения

строка

Тема сообщения об операции.

Если op_message и subject не определены, будет использоваться «стандартное сообщение» из типа носителя.

Тип

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

Тип операции.

Варианты:

  • "send_message"
  • "remote_command"
  • "notify_all_involved"

Имя пользователя

строка

Имя пользователя, используемое для аутентификации.

Обязательно, когда ssh_auth_type в [public_key, password] или command_type=telnet.

Может использоваться, когда type=remote_command.

Условия

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

Список условий для фильтрации результатов.

Дополнительную информацию о подвариантах этого параметра см. в документации Zabbix API https://www.zabbix.com/documentation/5.0/manual/api/reference/action/object#action_filter_condition

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

formulaid

строка

Произвольный уникальный идентификатор, используемый для ссылки на условие из пользовательского выражения.

Может содержать только заглавные буквы.

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

Оператор

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

Оператор условия.

Когда type задан как time_period, варианты — in, not in.

Варианты:

  • "equals"
  • "="
  • "does not equal"
  • "<>"
  • "contains"
  • "like"
  • "does not contain"
  • "not like"
  • "in"
  • "is greater than or equals"
  • ">="
  • "is less than or equals"
  • "<="
  • "not in"
  • "matches"
  • "does not match"
  • "Yes"
  • "No"

Тип

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

Тип (метка) условия.

Возможные значения, когда event_source=trigger:

  • host_group
  • host
  • trigger
  • trigger_name
  • trigger_severity
  • time_period
  • host_template
  • maintenance_status известно в Zabbix 4.0 и выше как «Проблема подавлена»
  • event_tag
  • event_tag_value

Возможные значения, когда event_source=discovery:

  • host_IP
  • discovered_service_type
  • discovered_service_port
  • discovery_status
  • uptime_or_downtime_duration
  • received_value
  • discovery_rule
  • discovery_check
  • proxy
  • discovery_object

Возможные значения, когда event_source=auto_registration:

  • proxy
  • host_name
  • host_metadata

Возможные значения, когда event_source=internal:

  • host_group
  • host
  • host_template
  • event_type

Значение

строка

Значение для сравнения.

Когда type=discovery_status, варианты:

  • up
  • down
  • discovered
  • lost

Когда type=discovery_object, варианты:

  • host
  • service

Когда type=event_type, варианты:

  • item in not supported state
  • item in normal state
  • LLD rule in not supported state
  • LLD rule in normal state
  • trigger in unknown state
  • trigger in normal state

Когда type=trigger_severity, варианты (регистронезависимые):

  • not classified
  • information
  • warning
  • average
  • high
  • disaster

Независимо от изменения отображаемых названий в Zabbix. По умолчанию not classified при отсутствии значения.

Помимо вышеперечисленных вариантов, это обычно либо имя объекта, либо строка для сравнения.

значение2

строка

Дополнительное значение для сравнения.

Требуется для действий по триггеру, когда условие type=event_tag_value.

esc_period

строка

Длительность шага операции по умолчанию. Должна быть больше 60 секунд.

Принимает секунды, единицы измерения времени с суффиксом и пользовательские макросы со Zabbix 3.4.

Обязательно при state=present.

eval_type

строка

Метод оценки фильтра.

По умолчанию andor если условий меньше 2 или если formula не указана.

По умолчанию custom_expression если formula указана.

Варианты:

  • "andor"
  • "and"
  • "or"
  • "custom_expression"

event_source

строка

Тип событий, с которыми будет работать действие.

Обязательно при state=present.

Варианты:

  • "trigger"
  • "discovery"
  • "auto_registration"
  • "internal"

formula

строка

Пользовательское выражение для оценки условий с пользовательским выражением.

Выражение должно содержать ID, ссылающиеся на каждое условие по его formulaid.

Используемые в выражении ID должны точно соответствовать определённым в conditions. Ни одно условие не должно оставаться неиспользуемым или пропущенным.

Требуется при eval_type=custom_expression.

Используйте последовательные ID, начинающиеся с «A». Если используются не последовательные ID, Zabbix переиндексирует их. Это заставит каждый модуль заметить разницу в ID и обновить действие.

http_login_password

string

Пароль Basic Auth

http_login_user

string

Логин Basic Auth

name

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

Название действия

notify_if_canceled

boolean

Уведомлять при отмене эскалации.

Можно использовать, когда event_source=trigger.

Варианты:

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

operations

list / элементы=словарь

Список операций действия

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

command

string

Команда для выполнения.

Требуется, когда type=remote_command и command_type!=global_script.

command_type

string

Тип команды операции.

Требуется, когда type=remote_command.

Варианты:

  • "custom_script"
  • "ipmi"
  • "ssh"
  • "telnet"
  • "global_script"

esc_period

string

Длительность шага эскалации в секундах.

Должна быть больше 60 секунд.

Принимает секунды, единицы измерения времени с суффиксом и пользовательские макросы.

Если установлено 0 или 0s, будет использоваться значение по умолчанию для периода эскалации действия.

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

esc_step_from

integer

Шаг для начала эскалации.

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

esc_step_to

integer

Шаг для окончания эскалации.

Укажите 0 для бесконечного.

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

execute_on

string

Цель, на которой будет выполнена команда пользовательского скрипта.

Требуется, когда type=remote_command и command_type=custom_script.

Варианты:

  • "agent"
  • "server"
  • "proxy"

host_groups

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

Список групп хостов, к которым должен быть добавлен хост.

Требуется, когда type=add_to_host_group или type=remove_from_host_group.

inventory

string

Режим инвентаризации хоста.

Требуется, когда type=set_host_inventory_mode.

Варианты:

  • "manual"
  • "automatic"

media_type

string

Тип носителя, который будет использован для отправки сообщения.

Можно использовать с type=send_message или type=notify_all_involved внутри acknowledge_operations.

Установите all для всех типов носителей

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

op_message

string

Текст сообщения операции.

Если op_message и subject не определены, будет использовано «сообщение по умолчанию» из типа носителя

operation_condition

string

Объект условия операции действия определяет условие, которое должно быть выполнено для выполнения текущей операции.

Варианты:

  • "acknowledged"
  • "not_acknowledged"

password

string

Пароль, используемый для аутентификации.

Требуется, когда ssh_auth_type=password или command_type=telnet.

Можно использовать, когда type=remote_command.

port

integer

Номер порта, используемый для аутентификации.

Можно использовать, когда command_type в [ssh, telnet] и type=remote_command.

run_on_groups

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

Группы хостов для запуска команд на удаленных хостах.

Требуется, когда type=remote_command и run_on_hosts не установлено.

run_on_hosts

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

Хосты для запуска удаленных команд.

Требуется, когда type=remote_command и run_on_groups не установлено.

Если установлено 0, команда будет выполнена на текущем хосте.

script_name

string

Имя скрипта, используемого для глобальных команд скрипта.

Требуется, когда command_type=global_script.

Может быть использовано, когда type=remote_command.

send_to_groups

list / elements=string

Пользовательские группы для отправки сообщений.

send_to_users

list / elements=string

Пользователи (имена пользователей или псевдонимы) для отправки сообщений.

ssh_auth_type

string

Метод аутентификации, используемый для команд SSH.

Требуется, когда type=remote_command и command_type=ssh.

Варианты:

  • "password"
  • "public_key"

ssh_privatekey_file

string

Имя файла приватного ключа, используемого для команд SSH с аутентификацией по открытому ключу.

Требуется, когда ssh_auth_type=public_key.

Может быть использовано, когда type=remote_command.

ssh_publickey_file

string

Имя файла открытого ключа, используемого для команд SSH с аутентификацией по открытому ключу.

Требуется, когда ssh_auth_type=public_key.

Может быть использовано, когда type=remote_command.

subject

string

Тема сообщения об операции.

Если op_message и subject не определены, будет использоваться «сообщение по умолчанию» из типа медиа.

templates

list / elements=string

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

Требуется, когда type=link_to_template или type=unlink_from_template.

type

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

Тип операции.

Допустимые значения при установке типа для recovery_operations и acknowledge_operations:

  • send_message
  • remote_command
  • notify_all_involved

Выбор notify_all_involved поддерживается только в recovery_operations и acknowledge_operations.

Варианты:

  • "send_message"
  • "remote_command"
  • "add_host"
  • "remove_host"
  • "add_to_host_group"
  • "remove_from_host_group"
  • "link_to_template"
  • "unlink_from_template"
  • "enable_host"
  • "disable_host"
  • "set_host_inventory_mode"
  • "notify_all_involved"

username

string

Имя пользователя, используемое для аутентификации.

Требуется, когда ssh_auth_type in [public_key, password] или command_type=telnet.

Может быть использовано, когда type=remote_command.

pause_in_maintenance

boolean

Стоит ли приостанавливать эскалацию во время периодов технического обслуживания?

Может быть использовано, когда event_source=trigger.

Варианты:

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

pause_symptoms

boolean

Стоит ли приостановить эскалацию, если событие является событием-симптомом?

Поддерживается, если event_source установлено в trigger

Работает только с >= Zabbix 6.4

Варианты:

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

recovery_operations

list / elements=dictionary

Список операций восстановления.

Suboptions такие же, как для operations.

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

command

string

Команда для выполнения.

command_type

string

Тип команды операции.

Варианты:

  • "custom_script"
  • "ipmi"
  • "ssh"
  • "telnet"
  • "global_script"

execute_on

string

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

Варианты:

  • "agent"
  • "server"
  • "proxy"

media_type

string

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

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

Установлено в all для всех типов медиа.

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

op_message

string

Текст сообщения об операции.

Если op_message и subject не определены, будет использоваться «сообщение по умолчанию» из типа медиа.

пароль

строка

Пароль, используемый для аутентификации.

Требуется, когда ssh_auth_type=пароль или command_type=telnet.

Может использоваться, когда type=remote_command.

порт

целое число

Номер порта, используемый для аутентификации.

Может использоваться, когда command_type в [ssh, telnet] и type=remote_command.

run_on_groups

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

Группы хостов, на которых будут выполняться удалённые команды.

Требуется, когда type=remote_command и run_on_hosts не задано.

run_on_hosts

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

Хосты, на которых будут выполняться удалённые команды.

Требуется, когда type=remote_command и run_on_groups не задано.

Если установлено значение 0, команда будет выполнена на текущем хосте.

script_name

строка

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

Требуется, когда command_type=global_script.

Может использоваться, когда type=remote_command.

send_to_groups

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

Пользовательские группы для отправки сообщений.

send_to_users

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

Пользователи (имена пользователей или псевдонимы) для отправки сообщений.

ssh_auth_type

строка

Метод аутентификации, используемый для команд SSH.

Требуется, когда type=remote_command и command_type=ssh.

Варианты:

  • "password"
  • "public_key"

ssh_privatekey_file

строка

Имя файла закрытого ключа, используемого для команд SSH с аутентификацией по открытому ключу.

Требуется, когда ssh_auth_type=public_key.

Может использоваться, когда type=remote_command.

ssh_publickey_file

строка

Имя файла открытого ключа, используемого для команд SSH с аутентификацией по открытому ключу.

Требуется, когда ssh_auth_type=public_key.

Может использоваться, когда type=remote_command.

subject

строка

Тема сообщения об операции.

Если op_message и subject не определены, будет использоваться «сообщение по умолчанию» из типа оповещения.

тип

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

Тип операции.

Варианты:

  • "send_message"
  • "remote_command"
  • "notify_all_involved"

имя пользователя

строка

Имя пользователя, используемое для аутентификации.

Требуется, когда ssh_auth_type в [public_key, пароль] или command_type=telnet.

Может использоваться, когда type=remote_command.

состояние

строка

Состояние действия.

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

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

Варианты:

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

статус

строка

Статус действия.

Варианты:

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

Примеры

# 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

# Trigger action with only one condition
- name: Deploy trigger action
  # 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_action:
    name: "Send alerts to Admin"
    event_source: "trigger"
    state: present
    status: enabled
    esc_period: 60
    conditions:
      - type: "trigger_severity"
        operator: ">="
        value: "Information"
    operations:
      - type: send_message
        subject: "Something bad is happening"
        op_message: "Come on, guys do something"
        media_type: "Email"
        send_to_users:
          - "Admin"

# Trigger action with multiple conditions and operations
- name: Deploy trigger action
  # 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_action:
    name: "Send alerts to Admin"
    event_source: "trigger"
    state: present
    status: enabled
    esc_period: 1m
    conditions:
      - type: "trigger_name"
        operator: "like"
        value: "Zabbix agent is unreachable"
        formulaid: A
      - type: "trigger_severity"
        operator: ">="
        value: "disaster"
        formulaid: B
    formula: A or B
    operations:
      - type: send_message
        media_type: "Email"
        send_to_users:
          - "Admin"
      - type: remote_command
        command: "systemctl restart zabbix-agent"
        command_type: custom_script
        execute_on: server
        run_on_hosts:
          - 0

# Trigger action with recovery and acknowledge operations
- name: Deploy trigger action
  # 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_action:
    name: "Send alerts to Admin"
    event_source: "trigger"
    state: present
    status: enabled
    esc_period: 1h
    conditions:
      - type: "trigger_severity"
        operator: ">="
        value: "Information"
    operations:
      - type: send_message
        subject: "Something bad is happening"
        op_message: "Come on, guys do something"
        media_type: "Email"
        send_to_users:
          - "Admin"
    recovery_operations:
      - type: send_message
        subject: "Host is down"
        op_message: "Come on, guys do something"
        media_type: "Email"
        send_to_users:
          - "Admin"
    acknowledge_operations:
      - type: send_message
        media_type: "Email"
        send_to_users:
          - "Admin"

Значения возврата

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

Ключ

Описание

msg

строка

Результат операции

Возвращаемое значение: успех

Пример: "Action Deleted: Register webservers, ID: 0001"

Авторы

  • Ruben Tsirunyan (@rubentsirunyan)
  • Ruben Harutyunov (@K-DOT)

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

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

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

Spec-Zone.ru

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