O Simple Log Service define um CustomResourceDefinition (CRD) chamado AliyunLogConfig. Configure um arquivo YAML para criar um CustomResource (CR) a partir do CRD e gerenciar uma configuração do Logtail. Este tópico descreve como usar o AliyunLogConfig para gerenciar uma configuração do Logtail.
Pré-requisitos
Componentes do Logtail v0.5.1 ou posterior instalados. Para mais informações, consulte Instalar componentes do Logtail em um cluster ACK e Instalar componentes do Logtail em um cluster Kubernetes autogerenciado.
-
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á. Ler logs.
Limites
Crie um CR a partir do CRD AliyunLogConfig para definir uma configuração do Logtail. Caso você modifique a configuração do Logtail no console do Simple Log Service, a alteração não será sincronizada com o CR. Para alterar a configuração do Logtail no CR, modifique diretamente o CR. Modificar a configuração do Logtail apenas no console do Simple Log Service pode causar inconsistências na configuração.
Procedimento
Criar uma configuração do Logtail
Crie um CR a partir do CRD AliyunLogConfig. Em seguida, o componente alibaba-log-controller cria automaticamente uma configuração do Logtail com base no CR. Após a criação, a configuração é aplicada automaticamente e o Logtail começa a coletar logs para o Simple Log Service conforme essa configuração.
Obter o arquivo kubeconfig de um cluster e usar kubectl para conectar-se ao cluster.
Execute o comando a seguir para criar um arquivo YAML. No comando abaixo,
cube.yamlé um nome de arquivo de exemplo. Especifique um nome diferente conforme suas necessidades de negócio.
vim cube.yaml
Insira o script a seguir no arquivo YAML e configure os parâmetros conforme suas necessidades de negócio. Para mais informações sobre os parâmetros do CR, consulte Parâmetros do CR.
apiVersion: log.alibabacloud.com/v1alpha1 # The default value is used. You do not need to modify this parameter.
kind: AliyunLogConfig # The default value is used. 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 a Logstore.
logtailConfig: # The Logtail configuration.
inputType: plugin # The type of the data source.
configName: test-config # The name of the Logtail configuration.
inputDetail: # The detailed settings of the Logtail configuration.
...
Execute o comando a seguir para criar um CR a partir do CRD
AliyunLogConfig. O componente alibaba-log-controller cria uma configuração do Logtail com base no CR. Em seguida, a configuração é aplicada automaticamente. Após a aplicação, o Logtail começa a coletar logs para o Simple Log Service. No comando abaixo,cube.yamlé um nome de arquivo de exemplo. Especifique um nome diferente conforme suas necessidades de negócio.
kubectl apply -f cube.yaml
Visualizar uma configuração do Logtail
-
Visualize todas as configurações do Logtail criadas no cluster Kubernetes atual com base nos CRs do CRD
AliyunLogConfig.Execute o comando a seguir para visualizar as configurações do Logtail:
kubectl get aliyunlogconfigs -
Visualize as configurações detalhadas e o status de uma configuração do Logtail criada com base em um CR do CRD AliyunLogConfig.
Execute o comando
kubectl get aliyunlogconfigs <config_name> -o yamlpara visualizar a configuração do Logtail. Neste comando,<config_name>é o nome do CR desejado. Especifique um nome diferente conforme suas necessidades de negócio.A saída retornada é semelhante ao código a seguir. Os campos
statusestatusCodeindicam o status da configuração do Logtail.Se o valor do campo
statusCodefor 200, a configuração do Logtail foi aplicada com sucesso.Se o valor do campo
statusCodenão for 200, houve falha na aplicação da configuração do Logtail.
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
Atualizar uma configuração do Logtail
Para atualizar uma configuração do Logtail, basta modificar o arquivo YAML usado para criar o CR correspondente e aplicar o novo arquivo.
Obter o arquivo kubeconfig de um cluster e usar kubectl para conectar-se ao cluster.
Modifique o arquivo YAML usado para criar seu CR.
No comando a seguir,cube.yamlé um nome de arquivo de exemplo. Especifique um nome diferente conforme suas necessidades de negócio.
vim cube.yaml
Modifique os parâmetros no arquivo YAML. Para mais informações sobre os parâmetros, consulte Parâmetros do CR.
Execute o comando a seguir para aplicar o novo arquivo. No comando abaixo,
cube.yamlé um nome de arquivo de exemplo. Especifique um nome diferente conforme suas necessidades de negócio.
kubectl apply -f cube.yaml
Excluir uma configuração do Logtail
Para excluir uma configuração do Logtail, basta excluir o CR no qual ela se baseia. No comando a seguir, <config_name> é o nome do CR desejado. Especifique um nome diferente conforme suas necessidades de negócio.
kubectl delete aliyunlogconfigs <config_name>
Após a exclusão de um CR, a configuração do Logtail criada com base nesse CR é excluída automaticamente.
Parâmetros do CR
-
apiVersion
Valor fixo:
log.alibabacloud.com/v1alpha1. -
kind
Valor fixo:
AliyunLogConfig. -
metadata
Campo
Tipo
Obrigatório
Descrição
name
string
Sim
Identificador exclusivo do CR. Recomendamos definir este campo com o mesmo valor do campo Spec.logtailConfig.configName.
namespace
string
Não
Namespace ao qual o CR pertence.
-
SpecAliyunLogConfigDetail
Campo
Tipo
Obrigatório
Descrição
project
string
Não
Nome do projeto. Insira o nome do projeto padrão do cluster atual. Obtenha esse nome a partir da variável de ambiente
ALICLOUD_LOG_PROJECTconfigurada para o componente alibaba-log-controller.NotaSe o projeto especificado não existir, o Simple Log Service criará um projeto automaticamente.
logstore
string
Sim
Nome do Logstore.
NotaSe o Logstore especificado não existir, o Simple Log Service criará um Logstore automaticamente.
Se o Logstore especificado já existir, os campos subsequentes relacionados ao Logstore nesta tabela não terão efeito.
logtailConfig
Sim
Configurações detalhadas da configuração do Logtail.
uid
string
Não
ID da conta. Para coletar logs entre contas, configure este campo e inclua
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}nas configurações de variáveis de ambiente do componente alibaba-log-controller.NotaEste campo está disponível apenas se você usar alibaba-log-controller V0.3.2 ou posterior.
Este campo especifica a conta à qual o projeto pertence. Para coletar logs nessa conta usando o Logtail, configure um identificador de usuário para o seu Logtail. Para mais informações, consulte Configurar um identificador de usuário.
endpoint
string
Não
Endpoint do projeto. Para mais informações, consulte Endpoints. Por padrão, utiliza-se o endpoint da região onde o cluster atual reside. Se o projeto e o cluster estiverem em regiões diferentes, configure este campo.
NotaEste campo está disponível apenas se você usar alibaba-log-controller V0.4.1 ou posterior.
Este campo especifica o endpoint da região onde a configuração do Logtail reside. Para coletar logs no projeto com base nesse endpoint usando o Logtail, configure também os campos config_server_address e data_server_list para o seu Logtail. Para mais informações, consulte Arquivos de configuração e arquivos de registro do Logtail.
logstoreMode
string
Não
Tipo do Logstore. Para mais informações, consulte Tipos de Logstore. Valor padrão: standard. Valores válidos:
query: Logstore de consulta
standard: Logstore padrão
NotaEste campo está disponível apenas se você usar alibaba-log-controller V0.3.3 ou posterior.
shardCount
int
Não
Número de shards no Logstore. Para mais informações, consulte Shards. Valor padrão: 2. Valores válidos: 1 a 10.
logstoreMaxSplitShard
int
Não
Número máximo de shards em que os shards existentes no Logstore podem ser divididos automaticamente. Para mais informações, consulte Sharding automático. Valor padrão: 32. Valores válidos: 1 a 256.
logstoreAutoSplit
bool
Não
Define se o sharding automático deve ser ativado para o Logstore. Para mais informações, consulte Sharding automático. Valor padrão: true.
lifeCycle
int
Não
Período de retenção de logs no Logstore. Unidade: dias. Para mais informações, consulte Período de retenção de dados. Valor padrão: 180. Valores válidos: 1 a 3650. Se você definir este campo como 3650, os logs serão armazenados permanentemente.
logstoreHotTTL
int
Não
Período de retenção de logs na camada de armazenamento quente do Logstore. Unidade: dias. Para mais informações, consulte Armazenamento em camadas inteligente. Valor padrão: 0. O valor deste campo deve ser menor que o valor do campo lifeCycle e maior ou igual a 7.
logstoreTelemetryType
string
Não
Tipo de dados observáveis no Logstore. Para mais informações, consulte telemetryType. Valor padrão: None. Valores válidos:
None: dados de log
Metrics: dados de métrica
logstoreAppendMeta
bool
Não
Define se endereços IP públicos devem ser registrados para o Logstore. Para mais informações, consulte IP público de log. Valor padrão: true.
logstoreEnableTracking
bool
Não
Define se o recurso de rastreamento web deve ser ativado para o Logstore. Para mais informações, consulte WebTracking. Valor padrão: false.
logstoreEncryptConf
object
Não
Configurações de criptografia do Logstore. Para mais informações, consulte Estruturas de dados comuns. Este campo está vazio por padrão.
logstoreMeteringMode
string
Não
Modo de faturamento do Logstore. Para mais informações, consulte Modo de faturamento. Este campo está vazio por padrão. Valores válidos:
ChargeByFunction: modo de faturamento por recurso
ChargeByDataIngest: modo de faturamento por dados ingeridos
NotaEste campo está disponível apenas se você usar alibaba-log-controller V0.4.3 ou posterior.
Se você definir o campo logstoreMode como query, deverá definir este campo como ChargeByFunction.
Se o modo de faturamento por dados ingeridos estiver desativado para sua conta, você só poderá definir este campo como ChargeByFunction.
machineGroups
array
Não
Grupos de máquinas associados à configuração do Logtail. Para mais informações, consulte Introdução. Ao instalar o componente logtail-ds, o Simple Log Service cria automaticamente um grupo de máquinas chamado
k8s-group-${your_k8s_cluster_id}. Esse grupo de máquinas é usado por padrão.configTags
map
Não
Tags personalizadas adicionadas para identificar a configuração do Logtail.
NotaEste campo está disponível apenas se você usar alibaba-log-controller V0.4.2 ou posterior.
Para mais informações sobre os campos, consulte Configurações do Logtail. O formato de dados do parâmetro AliyunLogConfigDetail é o mesmo da configuração do Logtail.
Campo
Tipo
Obrigatório
Descrição
configName
string
Sim
Nome da configuração do Logtail. O nome deve ser exclusivo no projeto ao qual a configuração pertence. Após a criação, não é possível alterar o nome da configuração do Logtail. Recomendamos definir este campo com o mesmo valor do campo metadata.name.
O nome deve atender aos seguintes requisitos:
O nome pode conter apenas letras minúsculas, dígitos, hifens (-) e sublinhados (_).
O nome deve começar e terminar com uma letra minúscula ou um dígito.
O nome deve ter de 2 a 128 caracteres.
logSample
string
Não
Log de amostra. O valor deve ter menos de 1.500 bytes.
inputType
string
Sim
Método de coleta de logs. Valores válidos:
plugin: Logs como stdout e stderr e logs binários do MySQL são coletados usando plug-ins do Logtail.
file: Logs de texto são coletados usando modos existentes, incluindo o modo regex completo e o modo delimitador.
inputDetail
Object
Sim
Configurações detalhadas da fonte de dados. Para mais informações, consulte inputDetail.