Este tópico descreve as etapas necessárias.
Limites
O protocolo Syslog deve seguir o padrão RFC 5424. Se você utilizar outros protocolos Syslog, consulte Collect Syslog from Linux systems.
O tamanho máximo de uma entrada de log é 64 KB.
Para garantir a segurança na transmissão de dados, use TCP com Transport Layer Security (TLS) 1.2.
Configuração
A maioria dos dispositivos on-premises, como VPNs e roteadores, não oferece suporte ao protocolo TLS ou ao formato RFC 5424. Para coletar dados desses dispositivos, use o plug-in Syslog do Logtail. Para mais informações, consulte Collect Syslog from Linux systems.
Para fazer upload de logs via protocolo Syslog, configure um endereço de upload no formato ProjectName.Endpoint:SyslogPort. Exemplo: test-project-1.cn-hangzhou-intranet.log.aliyuncs.com:10009. Selecione o endpoint correspondente à região do projeto. Para mais detalhes, consulte Endpoints. A porta Syslog é 10009. Configure também os parâmetros no campo STRUCTURED-DATA, incluindo o projeto e o LogStore do Simple Log Service, além do par de AccessKey da sua conta Alibaba Cloud.
|
Parâmetro |
Descrição |
Exemplo |
|
STRUCTURED-DATA |
O SD-ID é fixo como |
|
|
project |
Nome do projeto no Simple Log Service. Crie o projeto antecipadamente. Para mais informações, consulte Gerencie Projects. |
test-project-1 |
|
logstore |
Nome do LogStore. Crie o LogStore antecipadamente. Para mais informações, consulte Crie a LogStore. |
test-LogStore-1 |
|
access-key-id |
AccessKey ID. Use o par de AccessKey de um usuário RAM. Para mais informações, consulte Authorization. |
LTAI |
|
access-key-secret |
AccessKey Secret. Use o par de AccessKey de um usuário RAM. Para mais informações, consulte Authorization. |
yourAccessKeySecret |
Exemplo: Coleta de logs com syslog-ng
O syslog-ng é uma implementação open-source do protocolo Syslog para sistemas UNIX e similares. Execute o comando sudo yum install syslog-ng ou sudo apt-get install syslog-ng para instalar o syslog-ng.
O Rsyslog vem instalado por padrão em servidores Linux. Como o Rsyslog e o syslog-ng não podem rodar simultaneamente, desinstale o Rsyslog antes de usar o syslog-ng.
-
Abra o arquivo de configuração do syslog-ng.
Geralmente, o arquivo de configuração está em /etc/syslog-ng/syslog-ng.conf.
-
Adicione o bloco de configuração abaixo ao final do arquivo do syslog-ng e ajuste os parâmetros conforme suas necessidades.
### Syslog-ng Logging Config for LogService ### template LogServiceFormat { template("<${PRI}>1 ${ISODATE} ${HOST:--} ${PROGRAM:--} ${PID:--} ${MSGID:--} [logservice project=\"test-project-1\" logstore=\"test-logstore-1\" access-key-id=\"<yourAccessKeyId>\" access-key-secret=\"<yourAccessKeySecret>\"] $MSG\n"); template_escape(no); }; destination d_logservice{ tcp("test-project-1.cn-hangzhou.log.aliyuncs.com" port(10009) tls(peer-verify(required-untrusted)) template(LogServiceFormat)); }; log { source(s_sys); # default use s_sys destination(d_logservice); }; ### END Syslog-ng Logging Config for LogService ### -
Reinicie o syslog-ng.
Execute o comando sudo /etc/init.d/syslog-ng restart, sudo service syslog-ng restart ou sudo systemctl restart syslog-ng para reiniciar o serviço.
-
Execute o comando logger para gerar um log de teste.
Exemplo: Execute logger hello world! para criar uma entrada de log.
Exemplo de log
Após o upload dos logs, configure os índices para visualizá-los no console do Simple Log Service. Para mais informações, consulte Crie an index.
Para detalhes sobre os campos de log, consulte RFC 5424.
Para evitar vazamentos do par de AccessKey, o Simple Log Service remove o campo logservice por padrão.
03-28 11:01:01 __source__: xxx
__topic__: syslog-forwarder
_facility_: 3
_hostname_: xxx
_priority_: 30
_program_: systemd
_severity_: 6
_unixtimestamp_: 1553742061117098000
content: Started Session 59532 of user root.
03-28 11:00:15 __source__: mymachine.example.com
__topic__: syslog-forwarder
_facility_: 4
_hostname_: mymachine.example.com
_message_id_: ID47
_priority_: 34
_program_: su
_severity_: 2
_unixtimestamp_: 1553742015003000000
content: this is a test message
|
Campo |
Descrição |
|
__source__ |
Valor do campo hostname no log original. |
|
__topic__ |
Valor fixo definido como syslog-forwarder. |
|
__facility__ |
Informações de facility que indicam o dispositivo ou módulo gerador do log. |
|
__program__ |
Nome do processo. |
|
__severity__ |
Severidade do log. |
|
__priority__ |
Prioridade do log. |
|
__unixtimestamp__ |
Timestamp extraído do log original, em nanossegundos. |
|
content |
Valor do campo msg no log original. |
Perguntas frequentes
-
Testar uploads de log
Use o Netcat para testar o upload de logs, verificar a conectividade de rede e confirmar se o AccessKey possui permissões de upload.
Faça login no servidor onde deseja testar o upload de logs.
-
Instale o Netcat executando o comando abaixo:
sudo yum install nmap-ncat -
Conecte-se ao Simple Log Service com o seguinte comando:
ncat --ssl <yourProject>.<yourEndpoint> 10009Exemplo de comando:
ncat --ssl test-project-1.cn-hangzhou.log.aliyuncs.com 10009 -
O Netcat não detecta desconexões automaticamente. Dentro de 30 segundos após executar o comando ncat, digite a mensagem de log e pressione Enter.
<34>1 2019-03-28T03:00:15.003Z mymachine.example.com su - ID47 [logservice project="<yourProject>" logstore="<yourLogstore>" access-key-id="<yourAccessKeyID>" access-key-secret="<yourAccessKeySecret>"] this is a test messageExemplo de comando:
<34>1 2019-03-28T03:00:15.003Z mymachine.example.com su - ID47 [logservice project="trace-doc-test" logstore="doc-test-001-logs" access-key-id="<yourAccessKeyID>" access-key-secret="<yourAccessKeySecret>"] this is a test message -
Visualize os logs no console do Simple Log Service para confirmar o upload.
Para mais informações, consulte Visualize logs.
Uma entrada de log com timestamp
2019-03-28 11:00:15e origemmymachine.example.comaparecerá nos resultados da pré-visualização. Os campos Syslog na coluna content, incluindo_hostname_,_severity_,_facility_,_message_id_,_unixtimestamp_,_program_e_priority_, serão analisados corretamente. Isso indica que o upload e a análise do log foram bem-sucedidos.
-
Verificar conectividade de rede
Se o comando
ncatda etapa anterior não gerar saída (o processoncatencerra imediatamente sem mensagens de erro), use primeiro otelnetpara verificar se a porta 10009 está acessível antes de assumir problemas de rede.-
Execute o comando abaixo para testar a conectividade da porta:
telnet <yourProject>.<yourEndpoint> 10009Exemplo de comando:
telnet test-project-1.cn-hangzhou.log.aliyuncs.com 10009 Se a saída incluir
Connected to..., a rede estará acessível. Nesse cenário, o problema provavelmente reside em configurações incorretas de AccessKey ou Project. Prossiga com o teste usandoncatdescrito em Testar uploads de log ou consulte Solucionar falhas no upload via syslog nesta seção.Se a conexão expirar ou for recusada, a rede não estará acessível. Verifique as configurações de grupo de segurança, firewall ou rotas de rede.
NotaO Simple Log Service utiliza uma camada de acesso compartilhada. Mesmo com um nome de Project incorreto, o
telnetpode retornarConnected. Otelnetvalida apenas a conectividade na camada de rede. Se a rede estiver acessível, mas o upload de logs ainda falhar, verifique seu AccessKey e o nome do Project. -
-
Diagnosticar erros de coleta
Ao coletar dados Syslog pelo plug-in Syslog do Logtail, caso um upload manual falhe, visualize mensagens de erro específicas diagnosticando falhas de coleta. Para mais informações, consulte How to visualize Logtail collection error information. Essa funcionalidade de diagnóstico aplica-se exclusivamente a cenários de coleta via Logtail. Quando você faz upload direto de logs usando o protocolo Syslog conforme descrito neste tópico, os dados não passam pelo Logtail, tornando este recurso inaplicável. Consulte Solucionar falhas no upload via syslog nesta seção.
-
Solucionar falhas no upload via syslog
Se os logs enviados pelo protocolo Syslog não chegarem ao
LogStore, verifique os itens abaixo na ordem apresentada:Confirme se o SD-ID no STRUCTURED-DATA está definido como
logservice. Qualquer outro identificador, comoslsousls@17055, permite que a conexão seja estabelecida, mas o log é descartado silenciosamente.Verifique se a transmissão ocorre via TCP utilizando TLS 1.2.
Certifique-se de que o par de
AccessKeypossui permissões de escrita noLogStorede destino.Execute
ncat --ssl <ProjectName>.<Endpoint> 10009para validar a acessibilidade da porta.Acesse a página de consulta do
LogStoreno console do Simple Log Service e pesquise pelo log para confirmar sua chegada.