#azure #logging #azure-monitoring
#azure #ведение журнала #azure-мониторинг
Вопрос:
Давайте рассмотрим гипотетический сценарий, в котором у меня есть две виртуальные машины, каждая из которых запускает отдельное приложение, например, одна запускает внутреннюю панель мониторинга (называемую внутренней), а другая запускает главный сервер (называемый внешним) для моего приложения.
Оба приложения имеют свои файлы журналов в /var/log/application .файл журнала на их соответствующих компьютерах. Я хочу иметь возможность настроить Azure Monitor таким образом, чтобы я мог искать журналы внутренних и внешних компьютеров / приложений отдельно.
Я обнаружил, что нет способа связать виртуальную машину с фильтром в Azure Monitor (LogAnalytics --> Advanced --> Data --> Custom Logs --> Add)
. Он берет только образец файла журнала, путь к файлу журнала и добавляет его в пользовательские фильтры в Log
разделе Log Analytics / VM.
На мой взгляд, это позволит объединить журналы, найденные на обеих машинах, в один поток и показать их мне. ИЛИ мне нужно будет назвать файлы журналов internal-application.log
external-application.log
, а затем добавить их в два отдельных фильтра и использовать это в качестве дифференцирующего критерия.
Я попытался просмотреть документы и выполнить поиск в Интернете. Похоже, что все ответы касаются журналов показателей виртуальных машин, а не журналов приложений.
Ответ №1:
AFAIK в вашем случае вам не нужно называть файлы журналов, скажем, как ‘internal-application.журнал ‘ и ‘внешнее-приложение.log’потому что, даже если путь к файлу журнала один и тот же (скажем, ‘/var/log/application.log’) на нескольких компьютерах, найденные журналы объединяются и отображаются в один поток для определенного типа журнала с именем (скажем, xxxxxxx_CL т.Е. Это может быть любое имя, которое вы когда-либо указывали, показагрузка пользовательского журнала) при условии, что в журналах будет столбец с именем «Компьютер». Таким образом, вы также можете запрашивать журналы на основе компьютера.
Примеры запросов:
xxxxxxx_CL | where Computer == "VM1NAME"
xxxxxxx_CL | where Computer == "VM2NAME"
Надеюсь, это поможет!!
Комментарии:
1. Привет, Кришна, спасибо за ответ. Однако я не понял эту часть ` это может быть любое имя, которое вы когда-либо указывали при загрузке пользовательского журнала) при условии, что в журналах будет столбец с именем «Компьютер». ` Присутствует ли этот столбец по умолчанию? или есть способ, которым я могу его добавить? Я не вижу никаких настроек для привязки потока
xxxxxxx_CL
журналов к виртуальной машине (которая, если я правильно помню, присутствовала на более старой панели управления OMS).2. Попробовал, и это сработало. Это единственный способ сделать это? Также, если я перейду на виртуальную машину и нажму на Журналы, я автоматически увижу журналы только для этой виртуальной машины? Потому что это похоже на решение, в котором мне нужно создавать отдельные запросы для каждого такого приложения. У нас много приложений, отсюда и вопрос.
3. Вопрос1: присутствует ли этот столбец (с именем «Компьютер») по умолчанию? -> Мой ответ: Да. Вопрос2: Это единственный способ сделать это? -> Мой ответ: AFAIK, это лучший и предпочтительный способ сделать это. Могут быть и другие пользовательские способы, использующие Azure Automation DSC, Azure Automation Runbooks, приложения логики, функциональные приложения и т. Д. Вопрос3: Если я перейду на виртуальную машину и нажму на Журналы, я автоматически увижу журналы только для этой виртуальной машины? -> Мой ответ: Да. При условии, что виртуальная машина должна быть подключена к рабочей области Log Analytics, где вы настроили пользовательскую настройку журнала. Надеюсь, это поможет!
4. @ KrishnaG-MSFT Большое спасибо за все ответы.