O AliyunPipelineConfig é um CRD do Simple Log Service que permite gerenciar configurações de coleta do Logtail por meio de arquivos YAML do 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 container 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á. Read logs.
Procedimento
O alibaba-log-controller sincroniza periodicamente as configurações de coleta do Logtail definidas pelo AliyunPipelineConfig com o servidor. Para modificar uma configuração criada por CR, atualize diretamente o CR. Configurações criadas no console são sobrescritas pelos CRs; portanto, utilize apenas um método de gerenciamento.
Criar uma configuração de coleta do iLogtail
Crie um CR AliyunPipelineConfig. O componente alibaba-log-controller cria e aplica automaticamente a configuração de coleta do Logtail correspondente.
Procedimento:
Obtain the cluster kubeconfig and connect to the cluster using kubectl.
Crie um arquivo
cube.yaml. Substitua o nome do arquivo conforme necessário.
vim cube.yaml
Adicione o conteúdo abaixo ao arquivo YAML e configure os parâmetros conforme necessário. Para mais detalhes sobre os parâmetros da estrutura do CR, consulte CR parameters.
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Fixed value. Do not modify.
kind: ClusterAliyunPipelineConfig # Fixed value. Do not modify.
metadata:
name: test-config # Specify a resource name. The name must be unique within the current Kubernetes cluster.
spec:
project: # Set the destination project name.
name: k8s-your-project
config: # Define the iLogtail collection configuration.
inputs: # Specify input plug-ins.
...
flushers: # Specify output plug-ins.
...
Aplique o CR
AliyunPipelineConfig. Oalibaba-log-controllercria a configuração de coleta do Logtail e inicia a coleta de dados. Substituacube.yamlpelo nome real do seu arquivo.
kubectl apply -f cube.yaml
Visualizar uma configuração de coleta do iLogtail
-
Liste todas as configurações
AliyunPipelineConfigno cluster.Execute o comando a seguir para visualizar todas as configurações criadas pelo
AliyunPipelineConfig.kubectl get clusteraliyunpipelineconfigs -
Visualize detalhes e status de uma configuração específica do
AliyunPipelineConfig.Substitua
<config_name>pelo nome do seuAliyunPipelineConfig.kubectl get clusteraliyunpipelineconfigs <config_name> -o yamlVerifique o campo status na saída para confirmar se a configuração foi aplicada.
apiVersion: telemetry.alibabacloud.com/v1alpha1 kind: ClusterAliyunPipelineConfig metadata: creationTimestamp: null finalizers: - finalizer.pipeline.alibabacloud.com name: example-config # Expected configuration spec: config: flushers: - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com Logstore: example-config-logstore Region: cn-hangzhou TelemetryType: logs Type: flusher_sls inputs: - FilePaths: - /var/log/*.log Type: input_file processors: - SourceKey: content Type: processor_parse_json_native logstores: - name: example-config-logstore project: name: k8s-log-clusterid # Application status status: # Whether the CR is successfully applied success: true # Current status message of the CR message: success # Update time of the current status lastUpdateTime: "2024-06-13T12:02:19.133422+08:00" # Configuration information from the last successful application. This configuration includes filled default values and is the one currently in effect. lastAppliedConfig: # Time of the last successful application appliedTime: "2024-06-13T12:02:19.133422+08:00" # Details of the last successfully applied configuration config: configTags: sls.crd.cluster: clusterid sls.crd.kind: ClusterAliyunPipelineConfig sls.logtail.channel: CRD flushers: - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com Logstore: example-config-logstore Region: cn-hangzhou TelemetryType: logs Type: flusher_sls global: null inputs: - FilePaths: - /var/log/*.log Type: input_file name: example-config processors: - SourceKey: content Type: processor_parse_json_native logstores: - appendMeta: true autoSplit: true encryptConf: {} maxSplitShard: 64 name: example-config-logstore shardCount: 2 ttl: 30 machineGroups: - name: k8s-group-clusterid project: description: k8s log project, created by alibaba cloud log controller endpoint: cn-hangzhou.log.aliyuncs.com name: k8s-log-clusterid
Atualizar uma configuração de coleta do iLogtail
Modifique o arquivo YAML existente do AliyunPipelineConfig e reaplique-o.
Obtain the cluster kubeconfig and connect to the cluster using kubectl.
Edite o arquivo
AliyunPipelineConfig. Substituacube.yamlpelo nome real do seu arquivo.
vim cube.yaml
Modifique os parâmetros de configuração no arquivo YAML.
Aplique a configuração atualizada. Substitua
cube.yamlpelo nome real do seu arquivo.
kubectl apply -f cube.yaml
Excluir uma configuração de coleta do iLogtail
Exclua o CR correspondente. Substitua <config_name> pelo nome do seu AliyunPipelineConfig.
kubectl delete clusteraliyunpipelineconfigs <config_name>
Após a exclusão, o CR é liberado.
Se a exclusão falhar, o CR não será liberado. Verifique o erro no campo status do CR. Para forçar a exclusão do CR, remova manualmente o campo finalizers dos metadados dele.
Parâmetros do CR
-
apiVersion
Valor fixo:
telemetry.alibabacloud.com/v1alpha1. -
kind
Valor fixo:
ClusterAliyunPipelineConfig. -
metadata
Parameter
Data type
Required
Description
name
string
Yes
Identificador do CR, também usado como nome da configuração de coleta do iLogtail.
Nota:
Deve ser único dentro do projeto e não pode ser alterado após a criação. Requisitos:
Pode conter apenas letras minúsculas, dígitos, hifens (-) e sublinhados (_).
Deve começar e terminar com uma letra minúscula ou dígito.
Comprimento: 2 a 128 caracteres.
-
spec
Parameter
Data type
Required
Description
project
Yes
Informações do projeto de destino.
NotaNão pode ser alterado após a criação do CR. Para trocar de projeto, crie um novo CR.
config
Yes
Detalhes da configuração de coleta do iLogtail.
logstores
No
Logstores a serem criados.
NotaTodos os parâmetros, exceto name, têm efeito apenas durante a criação de um Logstore.
Esta lista apenas cria Logstores; ela não define o Logstore de destino. O destino é determinado pelo plug-in flusher em config. Deixe vazio se o Logstore de destino já existir.
É possível adicionar ou excluir definições de Logstore, mas não é possível modificar as existentes.
machineGroups
No
Grupos de máquinas a serem associados à configuração. O SLS cria automaticamente um grupo padrão chamado
k8s-group-${your_k8s_cluster_id}quando ologtail-dsé instalado. Por padrão, a lista contém apenas este grupo de máquinas.NotaO alibaba-log-controller garante que apenas os grupos de máquinas listados estejam associados. Grupos não listados são desassociados.
enableUpgradeOverride
bool
No
Valor padrão: false. Quando um AliyunLogConfig no cluster aponta para a mesma configuração do iLogtail que este AliyunPipelineConfig:
true: o alibaba-log-controller substitui a configuração existente definida pelo AliyunLogConfig.
false: ocorre um conflito e o AliyunPipelineConfig falha ao ser aplicado.
NotaDefinições que apontam para a mesma configuração de coleta do iLogtail:
Os projetos de origem e destino são iguais.
Para AliyunLogConfig, o projeto é o projeto padrão do cluster ou spec.project. Para AliyunPipelineConfig, o projeto é spec.project.name.
Mesmo nome de configuração de coleta do iLogtail.
No AliyunLogConfig, o parâmetro é spec.logtailConfig.configName. No AliyunPipelineConfig, o parâmetro é metadata.Name.
Definição de uma atualização com substituição:
Primeiro, o AliyunPipelineConfig entra em vigor e atualiza a configuração de coleta do iLogtail.
Em seguida, se o AliyunPipelineConfig for bem-sucedido, o sistema exclui o AliyunLogConfig no cluster que aponta para a mesma configuração de coleta do iLogtail.
Por fim, a atualização com substituição é concluída.
-
PipelineProject
NotaNão pode ser alterado após a criação do CR. Para trocar de projeto, crie um novo CR.
Parameter
Data type
Required
Description
name
string
Yes
Nome do projeto de destino.
NotaO SLS cria automaticamente o projeto se ele não existir.
description
string
No
Descrição do projeto.
NotaEfetivo apenas durante a criação do projeto.
endpoint
string
No
Endpoint de serviço do projeto de destino. Para mais informações, consulte Endpoint. 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.
NotaEste parâmetro controla apenas a região da configuração de coleta. Para entregar dados do iLogtail nesta região, configure separadamente config_server_address e data_server_list do iLogtail. Para mais informações, consulte Logtail configuration files and record files.
uid
string
No
UID da conta de destino. O padrão é a conta do cluster atual. Para envio de dados entre contas, defina este parâmetro e configure a variável de ambiente correspondente:
se você usar alibaba-log-controller, defina
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}};se você usar loongcollector-operator, defina
GLOBAL_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}.
NotaIsso controla apenas a conta proprietária do projeto. Para entregar dados do iLogtail nesta conta, configure separadamente a identidade de usuário do iLogtail. Configure a user identity.
-
PipelineConfig
Os parâmetros seguem a API CreateLogtailPipelineConfig. configName usa
metadata.namee não pode ser definido separadamente.Parameter
Data type
Required
Description
sample
string
No
Amostra de log. Suporta múltiplos logs, até 1.500 bytes no total.
global
object
No
Configuração global. Para mais informações, consulte Request parameters.
inputs
object list
Yes
Lista de plug-ins de entrada, configurada conforme Request parameters.
NotaApenas um plug-in de entrada é permitido.
processors
object list
No
Lista de plug-ins de processamento, configurada conforme Request parameters.
aggregators
object list
No
Lista de plug-ins de agregação, configurada conforme Request parameters.
flushers
object list
Yes
Lista de plug-ins de saída, configurada conforme Request parameters.
NotaApenas um plug-in flusher_sls é permitido.
configTags
map
No
Tags personalizadas para a configuração de coleta do iLogtail.
-
PipelineLogstore
NotaTodos os parâmetros, exceto name, são efetivos apenas durante a criação do Logstore.
Parameter
Data type
Required
Description
name
string
Yes
Nome do Logstore.
queryMode
string
No
Tipo de Logstore de destino. Para mais informações, consulte Core concepts. Padrão: standard. Valores válidos:
query: Query Logstore
standard: Standard Logstore
ttl
int
No
Período de retenção de dados em dias. Para mais informações, consulte Manage Logstores. Padrão: 30. Valores válidos: 1 a 3650. 3650 indica retenção permanente.
hotTtl
int
No
Período de retenção para hot data storage em dias. Padrão: 0. Deve ser menor que ttl e maior ou igual a 7.
infrequentAccessTTL
int
No
O IA storage period em dias. Padrão: 0. Requer
hotTtl. Deve ser menor quettle maior ou igual a 30. SehotTtl+infrequentAccessTTLnão for igual attl, entãottl-(hotTtl+infrequentAccessTTL)também deve ser maior ou igual a 60. Requerloongcollector-operatorv1.0.6 ou posterior.shardCount
int
No
Contagem de shards. Para mais informações, consulte Manage Logstores. Padrão: 2. Valores válidos: 1 a 100.
maxSplitShard
int
No
Contagem máxima de shards para fragmentação automática. Para mais informações, consulte Manage Logstores. Padrão: 64. Valores válidos: 1 a 256.
autoSplit
bool
No
Ativa a divisão automática de shards. Para mais informações, consulte Manage Logstores. Padrão: true.
telemetryType
string
No
Tipo de dados observáveis. Detalhes: Create a Logstore. Padrão: None. Valores válidos:
None: tipo log.
Metrics: tipo métrica.
appendMeta
bool
No
Ativa o registro de endereço IP público. Para mais informações, consulte Manage Logstores. Padrão: true.
enableTracking
bool
No
Ativa o Web Tracking. Para mais informações, consulte Manage Logstores. Padrão: false.
encryptConf
object
No
Configuração de criptografia. Para mais informações, consulte EncryptConf. Padrão: vazio.
meteringMode
string
No
Modo de faturamento. Para mais informações, consulte Manage Logstores. Padrão: vazio. Valores válidos:
ChargeByFunction: pagamento por função
ChargeByDataIngest: pagamento por dados ingeridos
NotaSe o queryMode do Logstore for query, apenas ChargeByFunction é suportado.
Se o faturamento por dados ingeridos não estiver ativado para sua conta, você não poderá definir este parâmetro como ChargeByDataIngest.
index
object
No
Configuração de índice, efetiva apenas durante a criação do Logstore. Formato: index. Requer loongcollector-operator v1.0.6 ou posterior.
-
PipelineMachineGroup
Parameter
Data type
Required
Description
name
string
Yes
Nome do grupo de máquinas a ser associado à configuração.
NotaSe o grupo de máquinas não existir, o alibaba-log-controller cria automaticamente um grupo de máquinas baseado em identificador. Para mais informações, consulte Create a custom identifier-based machine group. Efetivo apenas durante a criação.