Аналитика журнала - Как использовать "кавычки" в поисковом запросе

Я пытаюсь создать поисковый запрос, когда общедоступный 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()

Другие вопросы по тегам