Todos os produtos
Search
Central de documentação

Simple Log Service:Criar e usar o K8s event center

Última atualização: Aug 28, 2026

Os eventos do Kubernetes registram alterações de estado no cluster, como criação, execução e exclusão de pods ou erros de componentes. O K8s event center coleta todos os eventos do cluster Kubernetes em tempo real e oferece recursos de armazenamento, consulta, análise, visualização e alertas. Este tópico descreve o procedimento para criar e usar um K8s event center.

Informações básicas

A arquitetura do Kubernetes baseia-se em uma máquina de estados. Quando o sistema transita entre estados, gera eventos. Transições entre estados normais produzem eventos Normal, enquanto transições entre estados normais e anormais geram eventos Warning.

O ACK (Container Service for Kubernetes) fornece uma solução pronta para uso de monitoramento de eventos em ambientes conteinerizados. Essa solução utiliza o node-problem-detector (NPD), mantido pelo ACK, e seu componente incluído, kube-eventer, para oferecer o monitoramento de eventos.

  • O node-problem-detector (NPD) é uma ferramenta de diagnóstico de nós do Kubernetes. Ele converte anomalias nos nós, como travamentos do docker Engine, travamentos do kernel Linux, exceções de acesso à rede pública e problemas de descritores de arquivos, em eventos de nó. Em conjunto com o kube-eventer, possibilita um sistema de alertas de ciclo fechado para eventos de nó.

  • O kube-eventer é uma ferramenta open source mantida pelo ACK para arquivamento de eventos do Kubernetes. Ele envia eventos do cluster para sistemas externos, como DingTalk, Simple Log service (SLS) e EventBridge, além de oferecer filtragem por nível de evento. Isso permite a coleta em tempo real, alertas direcionados e o arquivamento assíncrono de eventos.

Pré-requisitos

Crie um cluster Kubernetes, como um cluster ACK da Alibaba Cloud ou um cluster ACK Serverless.

Faturamento

O K8s event center é gratuito se as seguintes condições forem atendidas:

  • O período de retenção de dados do Logstore associado ao K8s event center é de 90 dias (valor padrão).

  • O volume de dados gravados no K8s event center é inferior a 256 MB por dia, o que corresponde a aproximadamente 250.000 eventos.

Exemplos:

  • Se você usar o período de retenção de dados padrão de 90 dias e seu cluster Kubernetes gerar 1.000 eventos por dia, o K8s event center será gratuito.

  • Caso defina o período de retenção de dados para 105 dias e seu cluster Kubernetes gere 1.000 eventos por dia, haverá cobrança pelo armazenamento do Logstore após 90 dias. O item faturável é Log Storage . Para mais informações sobre o item faturável Log Storage, consulte Billable items in pay-by-feature mode.

Etapa 1: Implantar kube-eventer e node-problem-detector

ACK

Para clusters ACK, basta implantar o componente ack-node-problem-detector, pois ele integra as funcionalidades de kube-eventer e node-problem-detector. Se você usar um cluster ACK Serverless, implante o componente kube-eventer.

O NPD usa configurações e plug-ins de terceiros para detectar problemas nos nós e gerar eventos correspondentes no cluster. Um cluster Kubernetes também gera seus próprios eventos durante transições de estado, como despejos de pods ou falhas ao baixar imagens. O Kubernetes Event Center do Simple Log service (SLS) centraliza todos os eventos do Kubernetes em tempo real e fornece armazenamento, consulta, análise, visualização e alertas. Para integrar os eventos do seu cluster ao Kubernetes Event Center, siga estas etapas:

  • Caso tenha selecionado Install node-problem-detector and Create Event Center durante a criação do cluster, pule para a Etapa 2 para visualizar o Kubernetes Event Center. Para obter informações sobre como instalar o componente NPD durante a criação do cluster, consulte Criar um cluster gerenciado ACK.

  • Se não tiver selecionado Install node-problem-detector and Create Event Center durante a criação do cluster, siga as etapas abaixo para instalá-lo manualmente.

    1. Faça login no console ACK. No painel de navegação à esquerda, clique em Clusters.

    2. Na página Clusters, clique no nome do cluster desejado. No painel de navegação à esquerda, escolha Operations > Add-ons.

    3. Na aba Logs and Monitoring, localize e instale o ack-node-problem-detector.

Self-managed Kubernetes

  1. Implante o kube-eventer.

    1. Instale o kubectl. Para mais informações, consulte Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.

    2. Crie um arquivo de configuração chamado eventer.yaml com base no modelo a seguir.

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        labels:
          name: kube-eventer
        name: kube-eventer
        namespace: kube-system
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: kube-eventer
        template:
          metadata:
            labels:
              app: kube-eventer
            annotations:
              scheduler.alpha.kubernetes.io/critical-pod: ''
          spec:
            dnsPolicy: ClusterFirstWithHostNet
            serviceAccount: kube-eventer
            containers:
              - image: registry.cn-hangzhou.aliyuncs.com/acs/kube-eventer:v1.2.5-cc7ec54-aliyun
                name: kube-eventer
                command:
                  - "/kube-eventer"
                  - "--source=kubernetes:https://kubernetes.default"
                  ## .send to sls
                  ## --sink=sls:https://{endpoint}?project={project}&logStore=k8s-event&regionId={region-id}&internal=false&accessKeyId={accessKeyId}&accessKeySecret={accessKeySecret}
                  - --sink=sls:https://cn-beijing.log.aliyuncs.com?project=k8s-xxxx&logStore=k8s-event&regionId=cn-beijing&internal=false&accessKeyId=xxx&accessKeySecret=xxx
                env:
                  # If TZ is assigned, set the TZ value as the time zone
                  - name: TZ
                    value: "Asia/Shanghai"
                volumeMounts:
                  - name: localtime
                    mountPath: /etc/localtime
                    readOnly: true
                  - name: zoneinfo
                    mountPath: /usr/share/zoneinfo
                    readOnly: true
                resources:
                  requests:
                    cpu: 10m
                    memory: 50Mi
                  limits:
                    cpu: 500m
                    memory: 250Mi
            volumes:
              - name: localtime
                hostPath:
                  path: /etc/localtime
              - name: zoneinfo
                hostPath:
                  path: /usr/share/zoneinfo
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        name: kube-eventer
      rules:
        - apiGroups:
            - ""
          resources:
            - events
          verbs:
            - get
            - list
            - watch
      ---
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: kube-eventer
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: ClusterRole
        name: kube-eventer
      subjects:
        - kind: ServiceAccount
          name: kube-eventer
          namespace: kube-system
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: kube-eventer
        namespace: kube-system

      Parâmetro

      Tipo

      Obrigatório

      Descrição

      endpoint

      string

      Sim

      O endpoint do Simple Log service. Para mais informações, consulte Endpoints.

      project

      string

      Sim

      O projeto do Simple Log service.

      logStore

      string

      Sim

      O Logstore do Simple Log service.

      internal

      string

      Obrigatório para clusters Kubernetes autogerenciados.

      Para um cluster Kubernetes autogerenciado, defina este parâmetro como false.

      regionId

      string

      Obrigatório para clusters Kubernetes autogerenciados.

      O id da região onde o Simple Log service está localizado. Para mais informações, consulte Endpoints.

      accessKeyId

      string

      Obrigatório para clusters Kubernetes autogerenciados.

      O AccessKey id. Recomendamos usar o par de AccessKeys de um usuário do Resource Access Management (ram). Para mais informações, consulte AccessKey pair.

      accessKeySecret

      string

      Obrigatório para clusters Kubernetes autogerenciados.

      O AccessKey secret. Recomendamos usar o par de AccessKeys de um usuário do Resource Access Management (ram). Para mais informações, consulte AccessKey pair.

    3. Execute o comando a seguir para aplicar a configuração eventer.yaml ao cluster.

      kubectl apply -f eventer.yaml

      Saída esperada:

      deployment.apps/kube-eventer created
      clusterrole.rbac.authorization.k8s.io/kube-eventer created
      clusterrolebinding.rbac.authorization.k8s.io/kube-eventer created
      serviceaccount/kube-eventer created
  2. Implante o node-problem-detector.

Etapa 2: Criar uma instância do K8s event center

Nota

Após criar uma instância do K8s event center, o Simple Log service cria automaticamente um Logstore chamado k8s-event e painéis relacionados no projeto de destino.

  1. Faça login no console do Simple Log service.

  2. Na seção Log Application, clique na aba Intelligent O&M e, em seguida, clique em K8s Event Center.

  3. Na página Event Center Management, clique em Add no canto superior direito.

  4. No painel Create Event Center, configure os parâmetros e clique em Next.

    • Ao selecionar Select Existing Project, escolha um projeto existente na lista suspensa Project para gerenciar os recursos da instância do K8s event center, como o Logstore e os painéis.

    • Se optar por Select Kubernetes Cluster from Container Service for Kubernetes, selecione um cluster K8s existente na lista suspensa K8s Cluster. Com esse método, o Simple Log service cria automaticamente um projeto chamado k8s-log-{cluster-id} para gerenciar os recursos da instância do K8s event center, incluindo Logstore e painéis.

Etapa 3: Usar a instância do K8s event center

Depois de criar uma instância do K8s event center e implantar o kube-eventer e o node-problem-detector, inicie o uso do event center. É possível visualizar o resumo de eventos, consultar detalhes, acompanhar o ciclo de vida dos pods, verificar eventos de nós e de componentes principais, configurar alertas, executar consultas personalizadas e atualizar a versão.

Na página K8s Event Center, localize a instância desejada do K8s event center e clique no ícone k8s事件中心-002 para realizar as operações a seguir.

Ações

Descrição

Visualizar resumo de eventos

A página Event Overview exibe estatísticas resumidas dos eventos principais. As estatísticas incluem o número total de eventos, comparação de eventos de erro entre hoje e ontem, estatísticas de alertas, tendências de eventos de erro e detalhes de OOM de pods.

Nota

As informações de OOM de pod não identificam o pod específico. É possível localizar apenas o nó, o nome do processo e o id do processo onde o evento ocorreu. Execute uma consulta personalizada para encontrar eventos de reinicialização de pods ocorridos próximos ao horário do OOM e ajudar a identificar o pod específico.

Consultar detalhes do evento

A página Event Detail Query mostra os detalhes dos eventos filtrados por diversas dimensões, como tipo de evento, objeto do evento, host, namespace e nome.

Visualizar ciclo de vida do pod

A página Pod Lifecycle apresenta uma linha do tempo gráfica dos eventos no ciclo de vida de um pod. Também é possível filtrar eventos importantes do pod por nível de evento.

Verificar eventos de nó

A página Node Events exibe detalhes dos eventos de nó, como o ciclo de vida do nó e uma lista de eventos.

Analisar eventos de componentes principais

A página Core Component Events mostra detalhes de eventos de componentes principais, como falhas na reinicialização de ECS e modos de URL não implementados.

Configurar alertas

Na página Alert Configuration, configure alertas para o K8s event center. Para mais informações, consulte Set up alerts.

Executar consultas personalizadas

Na página Custom Query, personalize instruções de consulta e análise.

Todos os eventos no K8s event center são armazenados em um Logstore, permitindo o uso de todos os recursos do Logstore, como consultas personalizadas, consumo de eventos, relatórios personalizados e alertas personalizados. Para mais informações, consulte Quick start for query and analysis.

Para acessar o projeto associado à instância do K8s event center, encontre o nome do projeto de uma das seguintes formas:

  • Localize o nome do projeto na URL da página Custom Query. A URL segue o formato https://sls.console.alibabacloud.com/lognext/app/k8s-event/project/k8s-log-xxxx/logsearch/k8s-event. O campo após project/ é o nome do projeto, por exemplo, k8s-log-xxxx.

  • Na aba Event Center Management, localize a instância desejada do K8s event center na lista de instâncias e visualize o nome do projeto correspondente.

Atualizar versão

Use a página Version Update para fazer upgrade do K8s event center.

Excluir uma instância do K8s event center

Na página K8s Event Center > Event Center Management, localize a instância e clique no ícone K8s event center na coluna Actions.

Log de exemplo

O código a seguir mostra um log de exemplo.

hostname:  cn-hangzhou.i-***********"
level:  Normal
pod_id:  2a360760-****
pod_name:  logtail-ds-blkkr
event_id:  {  
   "metadata":{  
      "name":"logtail-ds-blkkr.157b7cc90de7e192",
      "namespace":"kube-system",
      "selfLink":"/api/v1/namespaces/kube-system/events/logtail-ds-blkkr.157b7cc90de7e192",
      "uid":"2aaf75ab-****",
      "resourceVersion":"6129169",
      "creationTimestamp":"2019-01-20T07:08:19Z"
   },
   "involvedObject":{  
      "kind":"Pod",
      "namespace":"kube-system",
      "name":"logtail-ds-blkkr",
      "uid":"2a360760-****",
      "apiVersion":"v1",
      "resourceVersion":"6129161",
      "fieldPath":"spec.containers{logtail}"
   },
   "reason":"Started",
   "message":"Started container",
   "source":{  
      "component":"kubelet",
      "host":"cn-hangzhou.i-***********"
   },
   "firstTimestamp":"2019-01-20T07:08:19Z",
   "lastTimestamp":"2019-01-20T07:08:19Z",
   "count":1,
   "type":"Normal",
   "eventTime":null,
   "reportingComponent":"",
   "reportingInstance":""
}

Campo do log

Tipo

Descrição

hostname

string

O nome do host onde o evento ocorreu.

level

string

O nível do log. Valores válidos: Normal e Warning.

pod_id

string

O id exclusivo do pod. Este campo só aparece se o evento estiver relacionado a um pod.

pod_name

string

O nome do pod. Este campo só aparece se o evento estiver relacionado a um pod.

event_id

json

Os detalhes do evento. O valor deste campo é uma string JSON.

Perguntas frequentes

Uma instância do K8s event center não tem dados

Após implantar uma instância do K8s event center, novos eventos são coletados automaticamente. Pesquise-os na página Custom Query. Recomendamos definir o intervalo de tempo no canto superior direito para 1 Day. Se nenhum dado for encontrado, geralmente há duas causas:

  • Nenhum novo evento foi gerado no cluster Kubernetes desde a implantação do K8s event center.

    Execute o comando kubectl get events --all-namespaces para verificar se há novos eventos no cluster.

  • Os parâmetros estão configurados incorretamente na implantação do kube-eventer e do node-problem-detector.

    • Para clusters Container Service for Kubernetes (ACK), execute estas etapas:

      1. Faça login no console ACK.

      2. Na página Clusters, clique no nome do cluster desejado.

      3. No painel de navegação à esquerda, escolha Apply > Helm.

      4. Na página Helm, localize ack-node-problem-detector e clique em Update.

      5. Verifique e modifique as configurações dos parâmetros. Para mais informações, consulte Step 1: Deploy kube-eventer and node-problem-detector.

    • Em clusters Kubernetes autogerenciados, consulte Collect Kubernetes events para ver as configurações de parâmetros.

Como visualizar os logs de contêiner de um evento?

  • Para clusters Container Service for Kubernetes (ACK), siga estas etapas:

    1. Faça login no console ACK.

    2. Na página Clusters, clique no nome do cluster desejado.

    3. No painel de navegação à esquerda, escolha Workloads > Pods.

    4. Defina Namespace como kube-system.

    5. Na lista Pods, localize o pod desejado e clique em Log.

  • Em clusters Kubernetes autogerenciados, verifique os logs dos Pods com o prefixo de nome de arquivo eventer-sls no namespace kube-system.