AliyunLogConfig é uma CustomResourceDefinition (CRD) definida pelo Simple Log Service. Crie um recurso personalizado (CR) a partir dessa CRD em um arquivo YAML para criar, visualizar, atualizar e excluir configurações do Logtail de forma declarativa em um cluster Kubernetes.
Pré-requisitos
Componentes do Logtail v0.5.1 ou posterior instalados. Para mais informações, consulte Install Logtail components in an ACK cluster e Install Logtail components in a self-managed Kubernetes cluster.
-
O contêiner de destino deve estar gerando logs ativamente.
ImportanteO Logtail coleta apenas logs incrementais. Se um arquivo de log não for atualizado após a entrega da configuração, o Logtail o ignorará. Consulte Read logs.
Limites
As restrições a seguir se aplicam ao gerenciamento de uma configuração do Logtail com AliyunLogConfig:
Alterações no console não são sincronizadas — Se um CR AliyunLogConfig criar uma configuração do Logtail, as modificações feitas na configuração via console do Simple Log Service não serão sincronizadas com o CR. Para alterar essa configuração, modifique apenas o CR. Isso evita inconsistências.
LogStores existentes — Caso o LogStore especificado no CR já exista, todos os parâmetros subsequentes relacionados ao LogStore não terão efeito.
Nome da configuração imutável — Após a criação de uma configuração do Logtail, não é possível alterar seu nome, que corresponde ao valor do parâmetro
configName.Versão do alibaba-log-controller — Diversos parâmetros exigem uma versão mínima do alibaba-log-controller. Antes de escrever o CR, verifique a versão mínima indicada para cada parâmetro em CR parameters.
Procedimento
Criar uma configuração do Logtail
Crie um CR a partir de AliyunLogConfig. Após a criação do CR, o alibaba-log-controller gera uma configuração do Logtail com base no CR e a aplica automaticamente.
Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.
-
Execute o comando a seguir para criar um arquivo YAML. Neste exemplo, o nome do arquivo é
cube.yaml. Substitua o nome do arquivo conforme necessário.vim cube.yaml -
Insira o script a seguir no arquivo YAML e configure os parâmetros conforme necessário. O script contém apenas os campos obrigatórios. Defina
inputTypepara especificar o método de coleta de logs e definainputDetailpara configurar as definições de entrada de log. Para mais informações sobre os campos do CR, consulte CR parameters.apiVersion: log.alibabacloud.com/v1alpha1 # Use the default value. You do not need to modify this parameter. kind: AliyunLogConfig # Use the default value. You do not need to modify this parameter. metadata: name: test-config # The name of the resource. The name must be unique in the current Kubernetes cluster. spec: logstore: k8s-stdout # The name of the Logstore. If the Logstore that you specify does not exist, Simple Log Service automatically creates the Logstore. logtailConfig: # The Logtail configuration. inputType: plugin # The type of the data source from which logs are collected. configName: test-config # The name of the Logtail configuration. inputDetail: # The details of the Logtail configuration. ... -
Execute o comando a seguir para criar o CR a partir de
AliyunLogConfig. Depois que a configuração do Logtail entrar em vigor, o Logtail começará a coletar dados e os enviará para o Simple Log Service.kubectl apply -f cube.yaml Verifique se o valor do campo
statusCodedo CR é 200. Para obter instruções, consulte View Logtail configurations.
Visualizar configurações do Logtail
Para visualizar todas as configurações do Logtail criadas por AliyunLogConfig no cluster Kubernetes atual, execute o seguinte comando:
kubectl get aliyunlogconfigs
Para visualizar os detalhes e o status de uma única configuração do Logtail criada por AliyunLogConfig, execute o comando abaixo. <config_name> representa o nome do AliyunLogConfig. Substitua o nome conforme necessário.
kubectl get aliyunlogconfigs <config_name> -o yaml
Um resultado semelhante ao seguinte será retornado. Neste exemplo, a configuração do Logtail usa inputType: file.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: example-k8s-file
namespace: kube-system
spec:
project: k8s-log-test
logstore: k8s-file
logtailConfig:
inputType: file
configName: example-k8s-file
inputDetail:
logType: common_reg_log
logPath: /data/logs/app_1
filePattern: test.LOG
dockerFile: true
status:
status: OK
statusCode: 200
Os campos status e statusCode no resultado indicam o status da configuração do Logtail:
Se o valor do campo
statusCodefor 200, a configuração do Logtail foi aplicada com sucesso.Caso o valor do campo
statusCodenão seja 200, houve falha na aplicação da configuração do Logtail. Verifique o campostatuspara identificar o erro reportado.
Atualizar uma configuração do Logtail
Para atualizar uma configuração do Logtail criada por AliyunLogConfig, modifique o arquivo YAML existente do CR e aplique-o novamente.
Obtain the kubeconfig file of a cluster and use kubectl to connect to the cluster.
-
Edite o arquivo YAML
AliyunLogConfigexistente, comocube.yaml.vim cube.yaml Modifique os parâmetros no arquivo YAML conforme necessário. Para mais informações sobre os campos do CR, consulte CR parameters.
-
Execute o comando a seguir para aplicar o arquivo e fazer com que a configuração do Logtail entre em vigor.
kubectl apply -f cube.yaml Verifique se o valor do campo
statusCodedo CR é 200. Para obter instruções, consulte View Logtail configurations.
Excluir uma configuração do Logtail
Para excluir uma configuração do Logtail criada por AliyunLogConfig, exclua o CR correspondente. No comando a seguir, <config_name> é o nome do AliyunLogConfig. Substitua o nome conforme necessário.
Após a exclusão do CR, a configuração do Logtail correspondente também é excluída automaticamente.
kubectl delete aliyunlogconfigs <config_name>
Para confirmar a exclusão, execute kubectl get aliyunlogconfigs e verifique se o CR não está mais listado.
Parâmetros do CR
As seções a seguir descrevem os campos de um CR AliyunLogConfig.
apiVersion
O valor é fixo em log.alibabacloud.com/v1alpha1.
kind
O valor é fixo em AliyunLogConfig.
metadata
O campo metadata identifica o CR no cluster Kubernetes.
|
Parâmetros |
Tipo |
Obrigatório |
Descrição |
|
|
string |
Sim |
Identificador exclusivo do CR. Como prática recomendada, use o mesmo valor de |
|
|
string |
Não |
Namespace ao qual o CR pertence. |
spec
O campo spec especifica o projeto e o LogStore de destino, os atributos do LogStore de destino e os detalhes da configuração do Logtail.
|
Parâmetros |
Tipo |
Obrigatório |
Descrição |
|
|
string |
Não |
Nome do projeto de destino. O valor padrão é o projeto configurado para o cluster, que corresponde ao valor da variável de ambiente |
|
|
string |
Sim |
Nome do LogStore de destino. Caso o LogStore especificado não exista, o Simple Log Service o criará automaticamente. |
|
|
Sim |
Detalhes da configuração do Logtail. |
|
|
|
string |
Não |
UID da conta de destino. Para enviar logs entre contas, configure este parâmetro e defina |
|
|
string |
Não |
Endpoint do projeto de destino. Por padrão, utiliza-se o endpoint da região onde o cluster atual reside. Se o projeto de destino e o cluster estiverem em regiões diferentes, configure este parâmetro. Ele controla apenas o endpoint usado pela configuração do Logtail. Para enviar dados do Logtail para essa região, configure também os parâmetros |
|
|
string |
Não |
Tipo do LogStore de destino. Valor padrão: standard. Valores válidos: |
|
|
int |
Não |
Número de shards no LogStore de destino. Valor padrão: 2. Valores válidos: 1 a 10. Para detalhes, consulte Shards. |
|
|
int |
Não |
Número máximo de shards em que os shards do LogStore de destino podem ser divididos automaticamente. Valor padrão: 32. Valores válidos: 1 a 256. Para detalhes, consulte automatic sharding. |
|
|
bool |
Não |
Especifica se o sharding automático deve ser ativado para o LogStore de destino. Valor padrão: true. Para detalhes, consulte automatic sharding. |
|
|
int |
Não |
Período de retenção de dados do LogStore de destino. Unidade: dias. Valor padrão: 180. Valores válidos: 1 a 3650. O valor 3650 indica retenção permanente. Para detalhes, consulte Data Retention Period. |
|
|
int |
Não |
Período de retenção de dados quentes do LogStore de destino. Unidade: dias. Valor padrão: 0. O valor deve ser menor que o valor de |
|
|
string |
Não |
Tipo de dados de observabilidade no LogStore de destino. Valor padrão: None. Valores válidos: |
|
|
bool |
Não |
Especifica se o recurso de registro de endereços IP públicos deve ser ativado para o LogStore de destino. Valor padrão: true. Para detalhes, consulte Log Public IP. |
|
|
bool |
Não |
Especifica se o Web Tracking deve ser ativado para o LogStore de destino. Valor padrão: false. Para detalhes, consulte WebTracking. |
|
|
object |
Não |
Configurações de criptografia do LogStore de destino. Este parâmetro está vazio por padrão. Para detalhes, consulte Common data structures. |
|
|
string |
Não |
Modo de faturamento do LogStore de destino. Este parâmetro está vazio por padrão. Valores válidos: |
|
|
array |
Não |
Grupos de máquinas associados à configuração do Logtail. Ao instalar o componente |
|
|
map |
Não |
Tags personalizadas usadas para identificar a configuração do Logtail. Este parâmetro é suportado apenas pelo alibaba-log-controller 0.4.2 ou posterior. |
AliyunLogConfigDetail
Para mais informações sobre os parâmetros, consulte Logtail configurations (legacy). O formato de dados de AliyunLogConfigDetail é o mesmo descrito em Logtail configurations (legacy).
|
Parâmetros |
Tipo |
Obrigatório |
Descrição |
|
|
string |
Sim |
Nome da configuração do Logtail. O nome deve ser exclusivo no projeto ao qual a configuração do Logtail pertence. Como prática recomendada, use o mesmo valor do nome do recurso ( |
|
|
string |
Não |
Log de amostra. O valor deve ter menos de 1.500 bytes. |
|
|
string |
Sim |
Método usado para coletar logs. Valores válidos: |
|
|
Object |
Sim |
Configurações da entrada de log. Para detalhes, consulte inputDetail. |