我正在尝试为公共IP分配给NIC时创建搜索查询,然后创建一个警报。我可以找到识别作业的部分,但我需要使用"引号和#34;在我的搜索中,但我不能......
我的查询:
AzureActivity
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains "<>"
在#34;包含&#34;中,我需要使用从属性JSON中提取的以下JSON(我发现在没有属性包含的情况下进行搜索):
\"provisioningState\":\"Succeeded"\
然而,我知道我不能使用&#34;引号“#34;在已经倒置的逗号区域内。有没有办法允许我把它放在里面,也许有某种取消或包围?
答案 0 :(得分:0)
您可以使用@进行转义 - 请参阅此处: https://docs.loganalytics.io/docs/Language-Reference/Data-types/string
或者,可能更好的是,您可以使用extractjson(或parsejson)函数 https://docs.loganalytics.io/docs/Language-Reference/Scalar-functions/extractjson()
答案 1 :(得分:0)
由于@Oleg Ananiev提交的链接,我找到了我的解决方案。
AzureActivity
| sort by TimeGenerated desc nulls last
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains '\\"provisioningState\\":\\"Succeeded\\"'
答案 2 :(得分:0)
使用parse_json读取JSON格式的嵌套属性的更好方法。例如,如果您想读取ProvisioningState属性的值,只需执行以下查询
| where parse_json(Properties).provisioningState == 'Succeeded'
请告诉我是否有帮助!