Аналитика журнала - Как использовать "кавычки" в поисковом запросе
Я пытаюсь создать поисковый запрос, когда общедоступный IP-адрес назначен сетевой карте, а затем создать предупреждение от этого. Я могу найти часть, которая определяет назначение, но мне нужно использовать "кавычки" в моем поиске, но я не могу...
Мой запрос:
AzureActivity
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains "<>"
Внутри этого "содержит" мне нужно использовать следующий JSON, извлеченный из свойств JSON (который я обнаружил, выполняя поиск без Properties Contains):
\"provisioningState\":\"Succeeded"\
Однако я знаю, что не могу использовать "кавычки" внутри уже кавычки. Есть ли способ, позволяющий мне поместить это внутрь, возможно, с какой-то отменой или заключением в скобки?
3 ответа
Я нашел свое решение, благодаря ссылкам, предоставленным @Oleg Ananiev.
AzureActivity
| sort by TimeGenerated desc nulls last
| where OperationName == "Microsoft.Network/networkInterfaces/write" and ActivityStatus == "Started"
| where Properties contains '\\"provisioningState\\":\\"Succeeded\\"'
Лучший способ чтения вложенного свойства в формате JSON с использованием parse_json. Например, если вы хотите прочитать значение свойства provisioningState, просто выполните следующий запрос
| where parse_json(Properties).provisioningState == 'Succeeded'
Пожалуйста, дайте мне знать, если это поможет!
Вы можете использовать @ для выхода - см. Здесь: https://docs.loganalytics.io/docs/Language-Reference/Data-types/string
или, что еще лучше, вы можете использовать функции extractjson (или parsejson) https://docs.loganalytics.io/docs/Language-Reference/Scalar-functions/extractjson()