При использовании Kubernetes обычно выполняется несколько экземпляров пода. Каждый модуль будет создавать уникальный журнал, доступный в раскрывающемся списке «Селектор журналов» (см. Снимок экрана). Я хочу искать текст только в определенных журналах в консоли Google Cloud Logging. Например, я хотел бы искать текст «Что-то» во всех журналах, имя которых содержит «my-pod-v1». Это возможно?
Искать текст в выбранном наборе журналов с помощью Google Cloud Logging?
Ответы (1)
С узлами Kubernetes 1.0 или ниже лучше всего использовать Advanced Фильтры ". Вы можете включить опцию расширенного фильтра, выбрав раскрывающееся меню в конце строки поиска и выбрав «Преобразовать в расширенный фильтр».
Расширенные фильтры позволяют выполнять сопоставление подстрок в имени журналов с помощью оператора :
, поэтому вы можете использовать запрос расширенного фильтра, например structPayload:Something log:kubernetes.my-pod-v1
, для выбора строк журнала, содержащих текст «Something», из журналов, имя которых начинается с «kubernetes.my». -pod-v1 ". Имейте в виду, что этот запрос, вероятно, будет довольно медленным, но он должен работать.
С узлами в Kubernetes 1.1 или выше этот вид запросов становится значительно проще, потому что журналы Container Engine получают свою собственную иерархию в раскрывающихся списках, а имена журналов представляют собой имя контейнера, а не имя модуля, поэтому все журналы из реплик с одинаковыми контейнер в них можно тривиально сгруппировать, выбрав соответствующее имя журнала.