[comment]: # translation:outdated

[comment]: # ({b243934a-2709706a})
# 创建

[comment]: # ({/b243934a-2709706a})

[comment]: # ({fb5e557f-bb15db7c})
### 说明

`object discoveryrule.create(object/array lldRules)`

此方法允许创建新的LLD规则。

[comment]: # ({/fb5e557f-bb15db7c})

[comment]: # ({b9f771b9-1c165cc1})
### 参数

`(object/array)` 要创建的LLD规则。

除了[标准LLD规则属性](objec# lld_rule)之外，该方法还接受以下参数。

|属性                类|描述|<|
|-------------------------|------|-|
|filter|object|LLD规则LLD规则的[过滤对象](/zh/manual/api/reference/discoveryrule/object#lld_rule_filter)。|
|preprocessing|array|LLD规则[预处理选项](/zh/manual/api/reference/discoveryrule/object#lld_rule_preprocessing)。|
|lld\_macro\_paths|array|LLD规则[预处理选项](/zh/manual/api/reference/discoveryrule/object#lld_macro_path)。|
|overrides|array|LLD规则[覆盖选项](/zh/manual/api/reference/discoveryrule/object#lld_rule_overrides)。|

[comment]: # ({/b9f771b9-1c165cc1})

[comment]: # ({618217bb-08a72633})
### 返回值

`(object)`
在`itemids`属性下返回一个包含IDs的被创建的LLD规则。返回的IDs的顺序与传递的LLD规则顺序相匹配。

[comment]: # ({/618217bb-08a72633})

[comment]: # ({4811a99c-b41637d2})
### 示例

[comment]: # ({/4811a99c-b41637d2})

[comment]: # ({73e7476a-c30fe277})
#### 新建LLD规则

创建Zabbix agent
LLD规则去发现以已装入的文件系统。发现监控项（items）将被每30s被更新一次。

请求:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.create",
    "params": {
        "name": "Mounted filesystem discovery",
        "key_": "vfs.fs.discovery",
        "hostid": "10197",
        "type": "0",
        "interfaceid": "112",
        "delay": "30s"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

响应:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "27665"
        ]
    },
    "id": 1
}
```

[comment]: # ({/73e7476a-c30fe277})

[comment]: # ({073d4960-45a77a7c})
#### 使用一个过滤器

创建有由一套删选条件的得到的LLD规则。这些条件将使用逻辑“和”运算符将条件组合在一起。

请求:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.create",
    "params": {
        "name": "Filtered LLD rule",
        "key_": "lld",
        "hostid": "10116",
        "type": "0",
        "interfaceid": "13",
        "delay": "30s",
        "filter": {
            "evaltype": 1,
            "conditions": [
                {
                    "macro": "{#MACRO1}",
                    "value": "@regex1"
                },
                {
                    "macro": "{#MACRO2}",
                    "value": "@regex2"
                },
                {
                    "macro": "{#MACRO3}",
                    "value": "@regex3"
                }
            ]
        }
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

响应:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "27665"
        ]
    },
    "id": 1
}
```

[comment]: # ({/073d4960-45a77a7c})

[comment]: # ({b227826a-a201a7a1})
#### 使用自定义表达式的筛选器

创建一个带有过滤器的LLD规则，该过滤器将使用自定义表达式来计算条件。LLD规则必须只发现“{\#MACRO1}”宏值同时匹配正则表达式“regex1”和“regex2”的对象，“{\#MACRO2}”宏值同时匹配“regex3”或“regex4”的对象。公式id“A”、“B”、“C”和“D”是任意选择的。

请求:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.create",
    "params": {
        "name": "Filtered LLD rule",
        "key_": "lld",
        "hostid": "10116",
        "type": "0",
        "interfaceid": "13",
        "delay": "30s",
        "filter": {
            "evaltype": 3,
            "formula": "(A and B) and (C or D)",
            "conditions": [
                {
                    "macro": "{#MACRO1}",
                    "value": "@regex1",
                    "formulaid": "A"
                },
                {
                    "macro": "{#MACRO1}",
                    "value": "@regex2",
                    "formulaid": "B"
                },
                {
                    "macro": "{#MACRO2}",
                    "value": "@regex3",
                    "formulaid": "C"
                },
                {
                    "macro": "{#MACRO2}",
                    "value": "@regex4",
                    "formulaid": "D"
                }
            ]
        }
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

响应:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "27665"
        ]
    },
    "id": 1
}
```

[comment]: # ({/b227826a-a201a7a1})

[comment]: # ({4a35982b-32af137e})
#### 使用自定义查询字段和报头

创建具有自定义查询字段和标题的LLD规则。

请求:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.create",
    "params": {
        "hostid": "10257",
        "interfaceid": "5",
        "type": "19",
        "name": "API HTTP agent",
        "key_": "api_discovery_rule",
        "value_type": "3",
        "delay": "5s",
        "url": "http://127.0.0.1?discoverer.php",
        "query_fields": [
            {
                "mode": "json"
            },
            {
                "elements":"2"
            }
        ],
        "headers": {
            "X-Type": "api",
            "Authorization": "Bearer mF_A.B5f-2.1JcM"
        },
        "allow_traps": "1",
        "trapper_hosts": "127.0.0.1",
        "id": 35,
        "auth": "d678e0b85688ce578ff061bd29a20d3b",
    }
}
```

响应:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "28336"
        ]
    },
    "id": 35
}
```

[comment]: # ({/4a35982b-32af137e})

[comment]: # ({c253ab55-001d915b})
### 参见

-   [LLD规则过滤器](object#lld_rule_filter)

[comment]: # ({/c253ab55-001d915b})

[comment]: # ({3775c0ef-2ba2c85c})
### 来源

CDiscoveryRule::create() in
*frontends/php/include/classes/api/services/CDiscoveryRule.php*.

[comment]: # ({/3775c0ef-2ba2c85c})

[comment]: # ({39fcfff5-39fcfff5})
#### Creating a LLD rule with overrides

Request:

``` {.java}
{
    "jsonrpc": "2.0",
    "method": "discoveryrule.create",
    "params": {
        "name": "Discover database host",
        "key_": "lld.with.overrides",
        "hostid": "10001",
        "type": 0,
        "value_type": 3,
        "delay": "60s",
        "interfaceid": "1155",
        "overrides": [
            {
                "name": "Discover MySQL host",
                "step": "1",
                "stop": "1",
                "filter": {
                    "evaltype": "2",
                    "conditions": [
                        {
                            "macro": "{#UNIT.NAME}",
                            "operator": "8",
                            "value": "^mysqld\\.service$"
                        },
                        {
                            "macro": "{#UNIT.NAME}",
                            "operator": "8",
                            "value": "^mariadb\\.service$"
                        }
                    ]
                },
                "operations": [
                    {
                        "operationobject": "3",
                        "operator": "2",
                        "value": "Database host",
                        "opstatus": {
                            "status": "0"
                        },
                        "optemplate": [
                            {
                                "templateid": "10170"
                            }
                        ]
                    }
                ]
            },
            {
                "name": "Discover PostgreSQL host",
                "step": "2",
                "stop": "1",
                "filter": {
                    "evaltype": "0",
                    "conditions": [
                        {
                            "macro": "{#UNIT.NAME}",
                            "operator": "8",
                            "value": "^postgresql\\.service$"
                        }
                    ]
                },
                "operations": [
                    {
                        "operationobject": "3",
                        "operator": "2",
                        "value": "Database host",
                        "opstatus": {
                            "status": "0"
                        },
                        "optemplate": [
                            {
                                "templateid": "10263"
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "id": 1
}
```

Response:

``` {.java}
{
    "jsonrpc": "2.0",
    "result": {
        "itemids": [
            "30980"
        ]
    },
    "id": 1
}
```

[comment]: # ({/39fcfff5-39fcfff5})

[comment]: # ({f40c8a6e-f40c8a6e})
### See also

-   [LLD rule filter](object#lld_rule_filter)
-   [LLD macro paths](object#lld_macro_path)
-   [LLD rule preprocessing](object#lld_rule_preprocessing)

[comment]: # ({/f40c8a6e-f40c8a6e})

[comment]: # ({73c4009f-73c4009f})
### Source

CDiscoveryRule::create() in
*ui/include/classes/api/services/CDiscoveryRule.php*.

[comment]: # ({/73c4009f-73c4009f})
