Como gerar registros e monitorar

Monitoramento de painéis

Painéis de amostra para clusters e monitoramento de métricas de nós estão disponíveis no Centro de gerenciamento.

Guia "Monitoramento".

O botão do Painel de monitoramento do Grafana abre o aplicativo Grafana, hospedado no cluster do administrador. O acesso ao Grafana é controlado com o Management Center. Se você estiver conectado à Central de gerenciamento, nenhum outro login será necessário.

Painéis

Depois de fazer login, uma lista de painéis de amostra fica disponível para demonstração:

Painéis do Grafana

Registros

O botão "Registros do Grafana Loki" abre o Explorador do Grafana, onde registros, incluindo os registros do sistema do Kubernetes, podem ser consultados.

Os rótulos são adicionados aos registros a serem consultados.

Rótulos de registro

Tipo de registro Rótulos
Registros do contêiner
  • cluster=CLUSTER_NAME
  • resources=k8s_container
  • namespace=NAMESPACE_NAME
  • node=NODE_NAME
  • pod=POD_NAME
  • container=CONTAINER_NAME
  • Outros rótulos do Kubernetes
Registros de nó do journald
  • cluster=CLUSTER_NAME
  • resources=k8s_node
  • node=NODE_NAME
  • identifier=SYSLOG_IDENTIFIER
  • machine=MACHINE_ID
Registros de auditoria
  • cluster=CLUSTER_NAME
  • resource=k8s_audit
  • kind=KIND
  • apiVersion=API_VERSION
  • level=LEVEL
  • vert=VERB
  • requestURI=REQUEST_URI

Todos os rótulos do Kubernetes e um rótulo de cluster são incluídos como rótulos de registro.

Amostras de consultas

  • Registros do contêiner

    {cluster="admin", namespace="kube-system", resources="k8s_container", container="kube-apiserver"}
    

    Registros de contêiner de consulta do Grafana

  • Registros de nó do journald

    {cluster="admin", resources="k8s_node"}
    

    Registros do nó de consulta do Grafana

  • Registros de auditoria

    {cluster="admin", resources="k8s_audit"}
    

    Registros de auditoria de consulta do Grafana

Como configurar um StorageClass

PersistentVolumeClaims são solicitados a armazenar as métricas, registros, painéis e alertas. Quando você cria um cluster, ele cria automaticamente um recurso LogMon personalizado. Para substituir o StorageClass padrão, siga estas etapas:

  1. Execute o comando a seguir para abrir o recurso personalizado LogMon em um editor de linha de comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. No recurso personalizado LogMon, atualize storageClassName no campo spec:

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              storageClassName: anthos-system # configure the new storage class here 
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              storageClassName: anthos-system # configure the new storage class here
    
  3. Para salvar as alterações no recurso personalizado LogMon, salve e saia do editor de linha de comando.

Como configurar o tamanho do armazenamento

Quando você cria um cluster, ele cria automaticamente um recurso LogMon personalizado. Para modificar o tamanho do armazenamento para métricas, registros, painéis e alertas, siga estas etapas:

  1. Execute o comando a seguir para abrir o recurso personalizado LogMon em um editor de linha de comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. No recurso personalizado LogMon, atualize storageSize no campo spec:

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              components:
                loki:
                   storageSize: 20Gi # configure the new storage size for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              components:
                alertmanager:
                   storageSize: 1Gi # configure the new storage size for alerts here
                grafana:
                   storageSize: 1Gi # configure the new storage size for dashboards here
                prometheus:
                   storageSize: 20Gi # configure the new storage size for metrics here
    ````
    
  3. Para salvar as alterações no recurso personalizado LogMon, salve e saia do editor de linha de comando.

Como configurar o tempo de retenção

Para configurar o tempo de retenção para registros nos agentes do Prometheus e do Loki, em execução no cluster, siga estas etapas:

  1. Execute o comando a seguir para abrir o recurso personalizado LogMon em um editor de linha de comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  2. No recurso personalizado LogMon, atualize retentionTime no campo spec:

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          default_loki:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for logs here
      system_metrics:
        outputs:
          default_prometheus:
            deployment:
              retentionPolicy:
                retentionTime: 720h # configure the new retention time for metrics here
    
  3. Para salvar as alterações no recurso personalizado LogMon, salve e saia do editor de linha de comando.

Como configurar uma saída de fluent-bit extra

A exportação de registros para outros destinos, além do Loki em execução no cluster, é aceita. Veja a lista de destinos compatíveis. Para configurar o destino de saída de registros extras, siga estas etapas:

  1. Crie um configmap no namespace kube-system com o rótulo logmon: system_logs. A configuração de saída extra tem a mesma sintaxe dos plug-ins de saída fluent-bit e precisa ser adicionada ao arquivo output.conf no campo data. Veja as amostras de arquivos de configuração.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      # The name should match the configmap name specified in step 3.
      name: <customized-system-logs-fluent-bit-output-config>
      # Don't change the namespace
      namespace: kube-system
      labels:
        # This label is required.
        logmon: system_logs
    data:
      # The file name must be output.conf
      output.conf: |
        # Add a customized fluent-bit output plugin configuration here
    
  2. Execute o comando a seguir para abrir o recurso personalizado LogMon em um editor de linha de comando:

    kubectl --kubeconfig=ADMIN_OIDC_KUBECONFIG -n kube-system edit logmon logmon-default
    
  3. No recurso personalizado LogMon, adicione o campo additionalOutput ao campo spec/system_logs/outputs.

    apiVersion: addons.gke.io/v1alpha1
    kind: Logmon
    metadata:
      # Don't change the name
      name: logmon-default
      # Don't change the namespace
      namespace: kube-system
    spec:
      system_logs:
        outputs:
          additionalOutput:
            fluentbitConfigmaps:
            # The name should match the configmap name created in step 1.
            - "<customized-system-logs-fluent-bit-output-config>"
            # Scheme: []v1.VolumeMount. Add volumeMounts if necessary
            volumeMounts:
            - ...
            - ...
            # Scheme: []v1.Volume. Add volumes if necessary
            volumes:
            - ...
            - ...
    
  4. Para salvar as alterações no recurso personalizado LogMon, salve e saia do editor de linha de comando.