O Logtail coleta logs de journal do systemd Linux a partir de arquivos binários. Crie uma configuração do Logtail no console do Log Service para coletar esses logs.
Pré-requisitos
Instale o Logtail 0.16.18 ou posterior para Linux no servidor. Instalar o Logtail em um servidor Linux.
Introdução
O systemd é um gerenciador de sistema e serviços do Linux. Quando executado como PID 1, ele inicia e mantém serviços no espaço do usuário e gerencia centralmente os logs de todas as unidades, incluindo logs do kernel e de aplicativos. O arquivo de configuração geralmente está em /etc/systemd/journald.conf.
O sistema operacional deve oferecer suporte ao formato de log journal.
Recursos
Salva checkpoints automaticamente para retomar a coleta após reinicializações.
Filtra logs por unidades específicas.
Coleta logs do kernel.
Analisa níveis de log automaticamente.
Coleta logs de journal do host em ambientes conteinerizados, como Docker e Kubernetes.
Casos de uso
Monitore eventos do kernel e acione alertas automáticos para exceções.
Armazene todos os logs do sistema a longo prazo para reduzir o uso de espaço em disco.
Colete logs de saída de softwares (unidades) para análise ou geração de alertas.
Pesquise palavras-chave ou entradas em logs journal mais rapidamente do que com o comando
journalctl.
Procedimento
Faça login no console do Simple Log Service.
Na seção Import Data, selecione Custom Data Plug-in.
Selecione o projeto e o Logstore de destino e clique em Next.
-
Na etapa Machine Group Configurations, configure um grupo de máquinas.
-
Configure os parâmetros Scenario e Installation Environment conforme necessário.
ImportanteConfigure os parâmetros Scenario e Installation Environment independentemente da disponibilidade de um grupo de máquinas. Essas definições afetam as configurações subsequentes.
-
Verifique se um grupo de máquinas aparece na seção Applied Server Groups e clique em Next.
Grupo de máquinas disponível
Selecione um grupo de máquinas na seção Source Machine Group.

Nenhum grupo de máquinas disponível
Clique em Create Machine Group. No painel Create Machine Group, configure os parâmetros. Defina o parâmetro Machine Group Identifier como IP Address ou Custom Identifier. Para mais informações, consulte Criar um grupo de máquinas baseado em identificador personalizado ou Criar um grupo de máquinas baseado em endereço IP.
ImportanteSe você aplicar um grupo de máquinas logo após criá-lo, o status de heartbeat poderá ser FAIL. Isso ocorre porque o grupo ainda não está conectado ao Simple Log Service. Para resolver, clique em Automatic Retry. Caso o problema persista, consulte O que fazer se nenhuma conexão de heartbeat for detectada no Logtail?
-
-
Na aba Data Source Settings, defina o Configuration Name e a Plug-in Configuration e clique em Next.
-
O campo inputs é obrigatório e define as configurações da source de dados para a configuração do Logtail.
ImportanteEspecifique apenas um tipo de source de dados em inputs.
-
O campo processors é opcional e configura o processamento de dados na configuração do Logtail para analisar os dados coletados. Especifique um ou mais métodos de processamento.
Se os logs não puderem ser analisados apenas com a configuração de inputs, adicione plugins de processamento no campo Plug-in Configuration. Exemplos incluem extração de campos, obtenção de horário do log, mascaramento de dados e filtragem de logs. Para mais detalhes, consulte Plugins do Logtail para processamento de dados.
{ "inputs": [ { "detail": { "JournalPaths": [ "/var/log/journal" ], "Kernel": true, "ParsePriority": true, "ParseSyslogFacility": true }, "type": "service_journal" } ] }Parâmetro
Tipo
Obrigatório
Descrição
type
String
Sim
Tipo da source de dados. Defina como
service_journal.JournalPaths
Array de strings
Sim
Caminhos dos diretórios de journal do systemd. Exemplo: /var/log/journal.
SeekPosition
String
Não
Posição inicial da coleta. Valores válidos:
headetail. Valor padrão:tail.-
head: Coleta todos os dados de log existentes desde o início. -
tail: Coleta apenas novos dados de log gerados após a aplicação da configuração.
Kernel
Booleano
Não
Indica se os logs do kernel devem ser coletados. Padrão:
true.Units
Array de strings
Não
Unidades das quais os logs serão coletados. Se deixado vazio, o Logtail coleta de todas as unidades.
ParseSyslogFacility
Booleano
Não
Analisa o campo
facilitydos logs syslog. Padrão:false.ParsePriority
Booleano
Não
Analisa o campo
Priority. Padrão:false.Quando definido como true, o campo Priority segue este mapeamento:
"0": "emergency" "1": "alert" "2": "critical" "3": "error" "4": "warning" "5": "notice" "6": "informational" "7": "debug"UseJournalEventTime
Booleano
Não
Utiliza o timestamp da entrada do log journal como horário do log. Padrão:
false(usa o horário da coleta).Em coletas em tempo real, a diferença entre o timestamp do journal e o horário da coleta costuma ser inferior a 3 segundos.
-
-
Crie índices e visualize os dados. Em seguida, clique em Next. Por padrão, a indexação de texto completo já vem ativada no Simple Log Service. Também é possível criar manualmente índices de campo para os logs coletados ou clicar em Automatic Index Generation para que o Simple Log Service gere os índices de campo automaticamente. Para mais informações, consulte Criar índices.
ImportantePara consultar todos os campos dos logs, use índices de texto completo. Se precisar consultar apenas campos específicos, utilize índices de campo para reduzir o tráfego de indexação. A análise de campos exige a criação de índices de campo e a inclusão de uma instrução SELECT na consulta.
-
Clique em Query Log para ser redirecionado à página de consulta e análise do seu Logstore.
Aguarde cerca de 1 minuto para que os índices entrem em vigor. Depois disso, visualize os logs coletados na aba Raw Logs. Para saber mais sobre consulta e análise de logs, consulte Guia rápido de consulta e análise.
Exemplos
-
Exemplo 1
Coleta de logs journal do diretório padrão
/var/log/journal. Configuração utilizada:{ "inputs": [ { "detail": { "JournalPaths": [ "/var/log/journal" ] }, "type": "service_journal" } ] }Amostra de log:
MESSAGE: rejected connection from "192.168.0.250:43936" (error "EOF", ServerName "") PACKAGE: embed PRIORITY: 6 SYSLOG_IDENTIFIER: etcd _BOOT_ID: fe919cd1268f4721bd87b5c18afe59c3 _CAP_EFFECTIVE: 0 _CMDLINE: /usr/bin/etcd --election-timeout=3000 --heartbeat-interval=500 --snapshot-count=50000 --data-dir=data.etcd --name 192.168.0.251-name-3 --client-cert-auth --trusted-ca-file=/var/lib/etcd/cert/ca.pem --cert-file=/var/lib/etcd/cert/etcd-server.pem --key-file=/var/lib/etcd/cert/etcd-server-key.pem --peer-client-cert-auth --peer-trusted-ca-file=/var/lib/etcd/cert/peer-ca.pem --peer-cert-file=/var/lib/etcd/cert/192.168.0.251-name-3.pem --peer-key-file=/var/lib/etcd/cert/192.168.0.251-name-3-key.pem --initial-advertise-peer-urls https://192.168.0.251:2380 --listen-peer-urls https://192.168.0.251:2380 --advertise-client-urls https://192.168.0.251:2379 --listen-client-urls https://192.168.0.251:2379 --initial-cluster 192.168.0.249-name-1=https://192.168.0.249:2380,192.168.0.250-name-2=https://192.168.0.250:2380,192.168.0.251-name-3=https://192.168.0.251:2380 --initial-cluster-state new --initial-cluster-token abac64c8-baab-4ae6-8412-4253d3cfb0cf _COMM: etcd _EXE: /opt/etcd-v3.3.8/etcd _GID: 995 _HOSTNAME: iZbp1f7y2ikfe4l8nx95amZ _MACHINE_ID: f0f31005fb5a436d88e3c6cbf54e25aa _PID: 10926 _SOURCE_REALTIME_TIMESTAMP: 1546854068863857 _SYSTEMD_CGROUP: /system.slice/etcd.service _SYSTEMD_SLICE: system.slice _SYSTEMD_UNIT: etcd.service _TRANSPORT: journal _UID: 997 __source__: 172.16.1.4 __tag__:__hostname__: logtail-ds-8kqb9 __topic__: _monotonic_timestamp_: 1467135144311 _realtime_timestamp_: 1546854068864309 -
Exemplo 2
NotaLimitações na coleta de logs journal do host a partir de um contêiner:
Contêineres com systemd versão 247 ou anterior não conseguem coletar logs journal de hosts que executam systemd versão 249 ou posterior.
Contêineres com systemd versão 249 ou posterior leem logs nos formatos antigo e novo.
Em ambientes Kubernetes, utilize o modo DaemonSet para coletar logs do sistema host. Aplique plugins de processamento para manter apenas os campos relevantes. Exemplo de configuração:
{ "inputs": [ { "detail": { "JournalPaths": [ "/logtail_host/var/log/journal" ], "ParsePriority": true, "ParseSyslogFacility": true }, "type": "service_journal" } ], "processors": [ { "detail": { "Exclude": { "UNIT": "^libcontainer.*test" } }, "type": "processor_filter_regex" }, { "detail": { "Include": [ "MESSAGE", "PRIORITY", "_EXE", "_PID", "_SYSTEMD_UNIT", "_realtime_timestamp_", "_HOSTNAME", "UNIT", "SYSLOG_FACILITY", "SYSLOG_IDENTIFIER" ] }, "type": "processor_pick_key" } ] }Amostra de log:
MESSAGE: rejected connection from "192.168.0.251:48914" (error "EOF", ServerName "") PRIORITY: informational SYSLOG_IDENTIFIER: etcd _EXE: /opt/etcd-v3.3.8/etcd _HOSTNAME: iZbp1i0czq3zgvxlx7u8ueZ _PID: 10590 _SYSTEMD_UNIT: etcd.service __source__: 172.16.0.141 __tag__:__hostname__: logtail-ds-dp48x __topic__: _realtime_timestamp_: 1547975837008708
Solução de problemas
Se nenhum dado aparecer na página de visualização ou consulta após configurar a coleta de logs com o Logtail, consulte Solucionar falhas na coleta do Logtail.