Отправка содержимого файла (журнала) контейнера Kubernets (AKS) в пространство журнала Azure

Мы запускаем в Azure кластер Kubernets (AKS). Теперь у нас есть некий Docker-контейнер, который записывает важные для нас файлы журналов, поэтому нам нравится хранить их в пространстве журналов Azure. Собирается то же пространство, что и логи консоли.

К сожалению, мы не можем изменить программное обеспечение для записи на консоль. Есть ли способы смонтировать файл журнала и отправить его в пространство журнала Azure?

С наилучшими пожеланиями Т

Вы можете использовать агент Azure Log Analytics для сбора журналов из контейнеров Docker и отправки их в пространство журналов Azure. Агент можно установить на компьютер с Linux или Windows, и он может собирать журналы из различных источников, включая контейнеры Docker.

Venkat V 07.06.2024 10:20

Вместо этого рассмотрите возможность задать вопросы системному администратору на serverfault.com. Stack Overflow предназначен для вопросов по программированию.

Jonas 07.06.2024 20:29
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
2
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете отправить содержимое файла журнала контейнера k8s в рабочую область Azure Log Analytics. Создайте свое рабочее пространство, в моем случае это myLogAnalyticsWorkspace. Включить мониторинг кластера

az aks enable-addons --resource-group arkorg --name test --addons monitoring --workspace-resource-id /subscriptions/abcd-efg-hijk-lmnop-qrst/resourceGroups/arkorg/providers/Microsoft.OperationalInsights/workspaces/myLogAnalyticsWorkspace

Создайте ConfigMap в пространстве имен kube-system, чтобы указать журналы, которые вы хотите собирать из файлов журналов вашего контейнера.

apiVersion: v1
kind: ConfigMap
metadata:
  name: container-azm-ms-agentconfig
  namespace: kube-system
data:
  schema-version: v1
  config-version: ver1
  logs: |
    [
      {
        "file": "/var/log/nginx/access.log",
        "log-group": "nginx_access_logs",
        "interval": 60
      },
      {
        "file": "/var/log/nginx/error.log",
        "log-group": "nginx_error_logs",
        "interval": 60
      }
    ]

и применить

kubectl apply -f custom-log-configmap.yaml

custom-log-configmap

Измените YAML-файл развертывания соответствующим образом, чтобы обеспечить доступность каталога файлов журнала в вашем контейнере для агента мониторинга.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
        volumeMounts:
        - name: log-volume
          mountPath: /var/log/nginx
      volumes:
      - name: log-volume
        emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
    - host: localhost
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: nginx-service
                port:
                  number: 80

проверьте то же самое

kubectl exec -it nginx-deployment-69bf4f8b9-vds6d -- sh

mount

ссылка-

спасибо за Ваш ответ. Мне нужно время, чтобы проверить это. Вернусь и дам отзыв!

user286974 10.06.2024 15:51

Я нашел другое решение своей проблемы. Но данный ответ выглядит правильным. Большое спасибо!

user286974 12.07.2024 13:47

Другие вопросы по теме

Похожие вопросы

Настройки почтового ящика учетной записи MS Graph, автоматическая пересылка почты (C#)
Фабрика данных Azure: преобразование Exists не работает должным образом при сравнении двух таблиц
Переменная cicd yaml Azure dev ops для appSettings, многострочная ошибка, вызывающая ошибку
Фабрика данных Azure не позволит функции Azure инициировать запуск с использованием управляемого идентификатора
Как решить проблему: невозможно создать экземпляр — yii\di\NotInstantiableException в Azure?
Скрытые ссылки Terraform для приложения-функции Azure
Используйте фабрику данных Azure для динамического создания новых столбцов
Пользовательский анализатор вложенного свойства в службе поиска показывает ошибку в Azure
Как решить проблему «ManagedIdentityCredential.GetToken не удалось получить токен доступа». при использовании Azure ServiceBusTrigger и управляемого удостоверения?
Создайте веб-книгу, чтобы получать уведомления, создавать и обновлять пользователей на портале Azure