Моя компания начинает использовать AKS для своих приложений, и, очевидно, одна из целей состоит в том, чтобы взять журналы из приложения, отправить их в OMS и сделать их доступными для поиска. Я установил агент OMS, который поставляется с «флажком» мониторинга состояния AKS, который, по сути, устанавливает агент на каждом узле и отправляет журналы в OMS.
Стандартное ведение журнала Kubernetes рекомендует отправлять журналы на STDOUT
и STDERR
, что подходит для базовых типов ведения журнала, но наши приложения занимают несколько строк для одного журнала, и в пределах одного приложения будет несколько приложений. вывод одного и того же контейнера; 3 приложения в одном контейнере, отправляемые прямо на STDOUT/ERR
... не совсем идеальная ситуация для просеивания.
В данный момент я прикрепил учетную запись хранилища Azure к контейнеру и направил в нее журналы, смонтировав хранилище файлов Azure как каталог /var/log/
, что прекрасно, поскольку мы можем разделить журналы на разные файлы журналов. После этого в качестве руководства; https://medium.com/@diegomrtnzg/monitoring-your-log-files-with-kubernetes-in-azure-b2a92e674947
Я также поручил OMS читать из пользовательского каталога журналов, используя эти инструкции; https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-data-sources-custom-logs
Однако с тех пор я обнаружил, что это не сработает. Я предполагаю, что это потому, что агент не знает о каждой файловой системе контейнеров и смотрит только на STDOUT/ERR
.
Я также знаю, что мы можем использовать синтаксический анализ в Log Analytics в наших поисковых запросах, чтобы найти нужные журналы, но я бы предпочел, чтобы это уже было сделано с помощью пользовательского ввода журналов, и это не очень полезно, если журнал охватывает пара строк, разбитых (как упомянуто выше); https://blogs.msdn.microsoft.com/ukhybridcloud/2017/09/19/azure-log-analytics-using-the-parse-operator/
Я знаю, что мы не можем заставить OMS извлекать логи из учетной записи хранения; https://feedback.azure.com/forums/267889-log-analytics/suggestions/7928931-collect-data-from-custom-containers-in-storage-acc
Вопрос
Итак, наконец ... возникает мой вопрос. Я надеюсь, что мы не единственные, кто попал в эту ситуацию и можем помочь мне посоветовать, как лучше всего действовать.
Как получить полные, структурированные, многострочные файлы журнала из 3 приложений (или более), находящихся в 1 контейнере AKS, в OMS, который был проанализирован, а не в разбитых сегментах?
Любая помощь по этому вопросу будет принята с благодарностью.