Zabbix API 上的正则表达式?
Regex on Zabbix API?
在花了几个小时阅读 Zabbix Api 的文档后,我还没有找到一种方法来使用多个可能的值来按键 search
。
因此,使用此代码:
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"hostids": " 10355",
"search": {
"key_": "[in_*|out_*]"
},
"sortfield": "name"
},
"auth": "15729708df1f5936f6ea840ae1b41cb6",
"id": 0
}
我正在尝试获取每个 item
哪个键是 in_<anything>
OR out_<anything>
所以,输出将是以下组合所有与接口相关的项目。相反,我得到这个:
{"jsonrpc":"2.0","result":[],"id":0}
我知道可以使用 filter
而不是 search
但是,根据我的阅读,当您需要完全匹配时会使用它,但事实并非如此。
Zabbix API(以及其他地方的过滤)不支持正则表达式。在某些版本中,您可以传递通配符,但这并不能解决您当前的问题。您将不得不执行两个单独的 API 查询。
要回答此处评论中的问题,可以使用 excludeSearch
参数否定搜索 - 有关详细信息,请参阅 API documentation。
为此,您需要输入此键 searchWildcardsEnabled
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"hostids": " 10355",
"searchWildcardsEnabled": "true",
"search": {
"key_": "[in_*|out_*]"
},
"sortfield": "name"
},
"auth": "15729708df1f5936f6ea840ae1b41cb6",
"id": 0
}
我认为您应该考虑使用 searchByAny
parameter 来查找符合任何 search
条件的项目。这是您应该尝试的正确 json :
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"hostids": " 10355",
"searchWildcardsEnabled": "true",
"search": {
"key_": [
"in_*",
"out_*"
]
},
"sortfield": "name"
},
"auth": "15729708df1f5936f6ea840ae1b41cb6",
"id": 1
}
在花了几个小时阅读 Zabbix Api 的文档后,我还没有找到一种方法来使用多个可能的值来按键 search
。
因此,使用此代码:
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"hostids": " 10355",
"search": {
"key_": "[in_*|out_*]"
},
"sortfield": "name"
},
"auth": "15729708df1f5936f6ea840ae1b41cb6",
"id": 0
}
我正在尝试获取每个 item
哪个键是 in_<anything>
OR out_<anything>
所以,输出将是以下组合所有与接口相关的项目。相反,我得到这个:
{"jsonrpc":"2.0","result":[],"id":0}
我知道可以使用 filter
而不是 search
但是,根据我的阅读,当您需要完全匹配时会使用它,但事实并非如此。
Zabbix API(以及其他地方的过滤)不支持正则表达式。在某些版本中,您可以传递通配符,但这并不能解决您当前的问题。您将不得不执行两个单独的 API 查询。
要回答此处评论中的问题,可以使用 excludeSearch
参数否定搜索 - 有关详细信息,请参阅 API documentation。
为此,您需要输入此键 searchWildcardsEnabled
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"hostids": " 10355",
"searchWildcardsEnabled": "true",
"search": {
"key_": "[in_*|out_*]"
},
"sortfield": "name"
},
"auth": "15729708df1f5936f6ea840ae1b41cb6",
"id": 0
}
我认为您应该考虑使用 searchByAny
parameter 来查找符合任何 search
条件的项目。这是您应该尝试的正确 json :
{
"jsonrpc": "2.0",
"method": "item.get",
"params": {
"output": "extend",
"hostids": " 10355",
"searchWildcardsEnabled": "true",
"search": {
"key_": [
"in_*",
"out_*"
]
},
"sortfield": "name"
},
"auth": "15729708df1f5936f6ea840ae1b41cb6",
"id": 1
}