Spec-Zone.ru › Ansible

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

Примечание

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

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

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

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

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

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

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

Требования

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

  • python >= 3.9

Параметры

Параметр

Комментарии

acknowledge_operations

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

list / элементы=dictionary

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

Начиная с Zabbix 4.0 операции подтверждения действий называются операциями обновления.

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 не заданы, будет использовано «сообщение по умолчанию» для типа носителя

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 / элементы=string

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

Обязательно, если задано type=remote_command и не задано run_on_hosts.

run_on_hosts

list / элементы=string

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

Обязательно, если задано type=remote_command и не задано run_on_groups.

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

script_name

string

Имя скрипта для команд глобального скрипта.

Обязательно, если задано command_type=global_script.

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

send_to_groups

list / элементы=string

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

send_to_users

list / элементы=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 не заданы, будет использовано «сообщение по умолчанию» для типа носителя

type

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

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

Варианты:

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

username

string

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

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

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

conditions

list / элементы=dictionary

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

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

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

formulaid

string

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

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

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

operator

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

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

Если для 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"

type

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

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

Возможные значения, если задано 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

value

string

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

Если задано 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.

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

value2

string

Вторичное значение для сравнения.

Обязательно для действий триггера, если для условия задано type=event_tag_value.

esc_period

string

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

Принимает значение в секундах, единицу времени с суффиксом и пользовательский макрос начиная с => Zabbix 3.4

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

eval_type

string

Метод оценки условий фильтра.

По умолчанию используется andor, если условий меньше двух или если не указано formula.

Если указано formula, по умолчанию используется custom_expression.

Варианты:

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

event_source

string

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

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

Варианты:

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

formula

string

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

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

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

Обязательно, если задано eval_type=custom_expression.

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

http_login_password

string

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

http_login_user

string

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

name

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

Имя действия

notify_if_canceled

boolean

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

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

Варианты:

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

operations

list / элементы=dictionary

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

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

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 / элементы=string

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

Обязательно, если задано 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 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.

Варианты:

  • "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 не заданы, будет использовано «сообщение по умолчанию» для типа носителя

tags

list / elements=dictionary

Теги узла для добавления должны иметь заданное свойство tag.

Свойство value необязательно. Также поддерживается удаление.

Поддерживается, если operationtype имеет значение add host tags или remove host tags.

tag

string

Имя тега

value

string

Значение тега (необязательно)

templates

list / elements=string

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

Обязательно, если type=link_to_template или type=unlink_from_template.

type

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

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

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

- send_message

- remote_command

- notify_all_involved

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

add_host_tags и remove_host_tags доступны начиная с Zabbix 7.0.

Варианты:

  • "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"
  • "add_host_tags"
  • "remove_host_tags"

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 версии >= 7.0

Варианты:

  • 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 не заданы, будет использовано «сообщение по умолчанию» для типа носителя

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.

Варианты:

  • "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 не заданы, будет использовано «сообщение по умолчанию» для типа носителя

type

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

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

Варианты:

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

username

string

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

Обязательно, если ssh_auth_type in [public_key, password] или command_type=telnet.

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

state

string

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

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

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

Варианты:

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

status

string

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

Варианты:

  • "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

string

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

Возвращается: success

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

Авторы

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

Ссылки коллекции

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

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

Spec-Zone.ru

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