0

我正在尝试为何时将公共 IP 分配给 NIC 创建一个搜索查询,然后创建一个警报。我可以找到标识作业的部分,但我需要在搜索中使用“反逗号”,但我不能......

我的查询:

AzureActivity
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains "<>"

在该“包含”中,我需要使用从属性 JSON 中提取的以下 JSON(我发现在没有 Properties Contains 的情况下进行搜索):

\"provisioningState\":\"Succeeded"\

但是,我知道我不能在已经倒置的逗号区域内使用“倒置逗号”。有没有办法让我把它放进去,也许有某种取消或包围?

4

3 回答 3

0

使用 parse_json 以 JSON 格式读取嵌套属性的更好方法。例如,如果您想读取 ProvisioningState 属性的值,只需执行以下查询

| where parse_json(Properties).provisioningState  == 'Succeeded'

请让我知道这是否有帮助!

于 2018-07-20T18:44:44.800 回答
0

感谢@Oleg Ananiev 提交的链接,我找到了我的解决方案。

AzureActivity
| sort by TimeGenerated desc nulls last
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains '\\"provisioningState\\":\\"Succeeded\\"' 
于 2018-02-01T12:11:30.383 回答
0

您可以使用 @ 进行转义 - 请参见此处: https ://docs.loganalytics.io/docs/Language-Reference/Data-types/string

或者,可能更好的是,您可以使用 extractjson(或 parsejson)函数 https://docs.loganalytics.io/docs/Language-Reference/Scalar-functions/extractjson()

于 2018-02-01T07:42:00.073 回答