action.create

Описание

object action.create(объект/массив actions)

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

Этот метод доступен только типам пользователей Администратор и Супер-администратор. Разрешение на использование данного метода можно отозвать в настройках роли пользователя. Дополнительную информацию см. в разделе Роли пользователей

Параметры

(object/array) Действия для создания.

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

Параметр Тип Описание
filter object Объект фильтра действия для действия.
operations array Операции действия для создания для действия.
recovery_operations array Операции восстановления действия для создания для действия.
update_operations array Операции обновления действия для создания для действия.

Возвращаемые значения

(object) Возвращает объект, который содержит ID созданных действий под свойством actionids. Порядок возвращаемых ID соответствует порядку переданных действий.

Примеры

Создание действия триггера

Создать действие триггера, которое начнется, как только триггер (со словом «память» в названии) с хоста «10084» перейдет в состояние ПРОБЛЕМА. Действие будет иметь 4 настроенные операции. Первая и немедленная операция отправит сообщение всем пользователям в группе пользователей «7» через тип носителя «1». Если событие не будет устранено в течение 30 минут, вторая операция запустит script "5" (скрипт с областью действия "Операция действия") на всех хостах группы «2». Если событие устранено, операция восстановления уведомит всех пользователей, получивших сообщения о проблеме. Если событие обновлено, операция подтверждения/обновления уведомит (с настраиваемой темой и сообщением) всех пользователей, получивших какие-либо сообщения о проблеме.

Запрос:

{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Trigger action",
        "eventsource": 0,
        "esc_period": "30m",
        "filter": {
            "evaltype": 0,
            "conditions": [
                {
                    "conditiontype": 1,
                    "operator": 0,
                    "value": "10084"
                },
                {
                    "conditiontype": 3,
                    "operator": 2,
                    "value": "memory"
                }
            ]
        },
        "operations": [
            {
                "operationtype": 0,
                "esc_step_from": 1,
                "esc_step_to": 1,
                "opmessage_grp": [
                    {
                        "usrgrpid": "7"
                    }
                ],
                "opmessage": {
                    "default_msg": 1,
                    "mediatypeid": "1"
                }
            },
            {
                "operationtype": 1,
                "esc_step_from": 2,
                "esc_step_to": 2,
                "opconditions": [
                    {
                        "conditiontype": 14,
                        "operator": 0,
                        "value": "0"
                    }
                ],
                "opcommand_grp": [
                    {
                        "groupid": "2"
                    }
                ],
                "opcommand": {
                    "scriptid": "5"
                }
            }
        ],
        "recovery_operations": [
            {
                "operationtype": "11",
                "opmessage": {
                    "default_msg": 1
                }
            }
        ],
        "update_operations": [
            {
                "operationtype": "12",
                "opmessage": {
                    "default_msg": 0,
                    "message": "Custom update operation message body",
                    "subject": "Custom update operation message subject"
                }
            }
        ]
    },
    "id": 1
}

Ответ:

{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            "17"
        ]
    },
    "id": 1
}

Создание действия обнаружения

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

Запрос:

{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Discovery action",
        "eventsource": 1,
        "filter": {
            "evaltype": 0,
            "conditions": [
                {
                    "conditiontype": 21,
                    "operator": 0,
                    "value": "1"
                },
                {
                    "conditiontype": 10,
                    "operator": 0,
                    "value": "2"
                }
            ]
        },
        "operations": [
            {
                "operationtype": 6,
                "optemplate": [
                    {
                        "templateid": "10001"
                    }
                ]
            }
        ]
    },
    "id": 1
}

Response:

{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            "18"
        ]
    },
    "id": 1
}

Использование пользовательского фильтра выражений

Создать действие триггера, использующее пользовательское выражение "A и (B или C)" для оценки условий действия. Как только триггер с уровнем серьезности выше или равным "Предупреждение" с хоста "10084" или хоста "10106" переходит в состояние ПРОБЛЕМА, действие отправит сообщение всем пользователям в группе пользователей "7" через тип носителя "1". Идентификаторы формул "A", "B" и "C" были выбраны произвольно.

Запрос:

{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Trigger action",
        "eventsource": 0,
        "esc_period": "15m",
        "filter": {
            "evaltype": 3,
            "formula": "A and (B or C)",
            "conditions": [
                {
                    "conditiontype": 4,
                    "operator": 5,
                    "value": "2",
                    "formulaid": "A"
                },
                {
                    "conditiontype": 1,
                    "operator": 0,
                    "value": "10084",
                    "formulaid": "B"
                },
                {
                    "conditiontype": 1,
                    "operator": 0,
                    "value": "10106",
                    "formulaid": "C"
                }
            ]
        },
        "operations": [
            {
                "operationtype": 0,
                "esc_step_from": 1,
                "esc_step_to": 1,
                "opmessage_grp": [
                    {
                        "usrgrpid": "7"
                    }
                ],
                "opmessage": {
                    "default_msg": 1,
                    "mediatypeid": "1"
                }
            }
        ]
    },
    "id": 1
}

Ответ:

{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            "18"
        ]
    },
    "id": 1
}

Создание правила автоматической регистрации агента

Создать действие авторегистрации, которое добавляет хост в группу хостов «2», если имя хоста содержит «SRV» или метаданные содержат "AlmaLinux".

Запрос:

{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Register Linux servers",
        "eventsource": "2",
        "filter": {
            "evaltype": "2",
            "conditions": [
                {
                    "conditiontype": "22",
                    "operator": "2",
                    "value": "SRV"
                },
                {
                    "conditiontype": "24",
                    "operator": "2",
                    "value": "AlmaLinux"
                }
            ]
        },
        "operations": [
            {
                "operationtype": "4",
                "opgroup": [
                    {
                        "groupid": "2"
                    }
                ]
            }
        ]
    },
    "id": 1
}

Ответ:

{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            19
        ]
    },
    "id": 1
}

Создание правила авторегистрации агента с тегами узла сети

Создайте действие авторегистрации, которое добавляет узел сети в группу узлов сети "2" и добавляет два тега узла сети.

Запрос:

{
    "jsonrpc": "2.0",
    "method": "action.create",
    "params": {
        "name": "Register Linux servers with tags",
        "eventsource": "2",
        "operations": [
            {
                "operationtype": "4",
                "opgroup": [
                    {
                        "groupid": "2"
                    }
                ]
            },
            {
                "operationtype": "13",
                "optag": [
                    {
                        "tag": "location",
                        "value": "office"
                    },
                    {
                        "tag": "city",
                        "value": "Riga"
                    }
                ]
            }
        ]
    },
    "id": 1
}

Ответ:

{
    "jsonrpc": "2.0",
    "result": {
        "actionids": [
            20
        ]
    },
    "id": 1
}

См. также

Источник

CAction::create() в ui/include/classes/api/services/CAction.php.