Настройка монитора Azure для журналов приложений

Давайте рассмотрим гипотетический сценарий, в котором у меня есть две виртуальные машины, каждая из которых запускает отдельное приложение, например, одна работает с внутренней панелью мониторинга (называемой Internal), а другая - с основным сервером (называемым External) для моего приложения.

Оба приложения имеют свои файлы журналов в файле /var/log/application.log на соответствующих машинах. Я хочу иметь возможность настроить Azure Monitor таким образом, чтобы я мог искать журналы внутренних и внешних машин / приложений отдельно.

Я обнаружил, что нет способа связать виртуальную машину с фильтром в Azure Monitor (LogAnalytics --> Advanced --> Data --> Custom Logs --> Add). Он берет только образец файла журнала, путь к файлу журнала и добавляет его в настраиваемые фильтры в разделе Log Log Analytics / VM.

На мой взгляд, это объединит журналы, найденные на обеих машинах, в единый поток и покажет их мне. ИЛИ мне придется назвать файлы журнала internal-application.log и external-application.log, а затем добавить их в два отдельных фильтра и использовать это как критерий различия.

Я попытался заглянуть в документы и поискать в Интернете. Все ответы, похоже, касаются журналов метрик виртуальных машин, а не журналов приложений.

Любой совет или руководство будут большим подспорьем. Я терпеливо искал ответы уже пару недель в свободное время.


person LeoNeo    schedule 10.04.2019    source источник


Ответы (1)


AFAIK в вашем случае, вам не нужно называть файлы журнала, например, «internal-application.log» и «external-application.log», потому что даже если путь к файлу журнала такой же (скажем, «/var/log/application.log» ) на нескольких машинах, тогда найденные журналы объединяются и отображаются в один поток для определенного типа журнала с именем (скажем, xxxxxxx_CL, т.е. это может быть любое имя, которое вы когда-либо давали при загрузке пользовательского журнала), при условии, что журналы будут иметь столбец с именем «Компьютер». Таким образом, вы также можете запрашивать журналы на компьютере.

Примеры запросов:

xxxxxxx_CL | where Computer == "VM1NAME"

xxxxxxx_CL | where Computer == "VM2NAME"

Надеюсь это поможет!!

person KrishnaG-MSFT    schedule 10.04.2019
comment
Привет, Кришна, спасибо за ответ. Однако я не понял этой части (это может быть любое имя, которое вы когда-либо давали при загрузке настраиваемого журнала) при условии, что журналы будут иметь столбец с именем Компьютер. Присутствует ли этот столбец по умолчанию? или есть способ добавить это? Я не вижу никаких настроек для связывания потока журнала xxxxxxx_CL с виртуальной машиной (которая, если я правильно помню, присутствовала в старой панели управления OMS). - person LeoNeo; 10.04.2019
comment
Пробовал, и это сработало. Это единственный способ сделать это? Также, если я перейду на виртуальную машину и нажму «Журналы», я автоматически увижу журналы только для этой ВМ? Потому что это похоже на решение, в котором мне нужно создавать отдельные запросы для каждого такого приложения. У нас много приложений, отсюда вопрос. - person LeoNeo; 10.04.2019
comment
Вопрос1: присутствует ли этот столбец (с именем «Компьютер») по умолчанию? - ›Мой ответ: да. Вопрос 2: Это единственный способ сделать это? - ›Мой ответ: AFAIK, это лучший и предпочтительный способ сделать это. Могут быть и другие настраиваемые способы с использованием Azure Automation DSC, модулей Runbook для автоматизации Azure, приложений логики, приложений-функций и т. Д. Вопрос 3. Если я перейду на виртуальную машину и нажму «Журналы», я автоматически увижу журналы только для этой виртуальной машины? - ›Мой ответ: да. При условии, что виртуальная машина должна быть подключена к рабочей области Log Analytics, в которой вы настроили настраиваемую настройку журнала. Надеюсь это поможет! - person KrishnaG-MSFT; 12.04.2019
comment
@ KrishnaG-MSFT Большое спасибо за все ответы. - person LeoNeo; 14.04.2019