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

#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 Большое спасибо за все ответы.