logstash: existe uma maneira de ver a configuração completa em execução ao usar vários arquivos de configuração em /etc/logstash/conf.d?

3

Estou executando o logstash 1.5.0.1 e tenho vários arquivos de configuração na minha pasta /etc/logstash/conf.d :

 01-input-source-one.conf
 02-input-source-two.conf
 10-filter-one.conf
 11-filter-two.conf
 20-output-one.conf
 21-output-two.conf

Depois de modificar um arquivo de configuração, eu testo usando /opt/logstash/bin/logstash agent -f /etc/logstash/conf.d --configtest .

Se houver um problema com um dos meus arquivos de configuração, recebo uma mensagem que faz referência ao número da linha no arquivo combinado da seguinte forma:

Error: Expected one of #, ", ', } at line 331, column 13 (byte 15167) after filter {

Às vezes, mas não o tempo todo, ele mostra um trecho de código após o erro que me ajuda a localizar o arquivo correto, mas o número da linha no erro ainda não me faz bem.

Alguém sabe se existe uma maneira de visualizar o arquivo de configuração combinado?

Isso também pode ser útil para solucionar problemas de configuração que não são o resultado de um erro de sintaxe (que passa um --configtest ), mas o resultado de um problema de pedido.

Obrigado!

    
por Peter M 03.09.2015 / 20:59

3 respostas

2

Sim, execute-o de forma interativa a partir da linha de comando. Isso gerará muitas outras informações.

/opt/logstash/bin/logstash --debug -f /etc/logstash/conf.d

Ou execute o seguinte para testar e ver a configuração compilada

/opt/logstash/bin/logstash --debug --debug-config -t -f /etc/logstash/conf.d/

Você provavelmente quer tee a saída, isso também lhe dá todos os filtros grok etc.

    
por 03.09.2015 / 21:02
0

cat -n /etc/logstash/conf.d/*

Isso imprimirá o conteúdo de todos os arquivos nessa pasta na ordem em que os números de linha serão um arquivo contínuo, de modo que o número da linha na depuração do logstash será correlacionado.

    
por 14.04.2017 / 22:38
0
Cuidado, pelo menos na versão 6.3.0, descobri que se você especificar -f ou --path.config como um diretório, ele incluirá todos os arquivos sob esse diretório (incluindo até mesmo arquivos README).

Certifique-se de especificar ... / conf.d / *. conf em seus argumentos de linha de comando (se usado) e também em pipelines.yml.

Na minha implantação, é assim que eu posso depurar minha configuração (versão 6.3.0 - note que os argumentos são um pouco diferentes do que foi fornecido acima)

/usr/share/logstash/bin/logstash \
  --path.settings /etc/logstash/enrichment/ \
  --debug --config.debug -t

(Observe que preciso definir por --path.settings porque tenho várias instâncias de logstash em execução)

Então você poderia obter a configuração como o logstash a receberia e então adicionar números de linha ....

/usr/share/logstash/bin/logstash \
  --path.settings /etc/logstash/enrichment/ \
  --debug --config.debug -t 2>&1 \
  | grep -v '^\[' \
  | cat -n

Mas isso é muito lento, mas é útil saber se algo mais rápido não funciona, como:

cat /etc/logstash/enrichment/conf.d/*.conf | cat -n

Lembre-se de pedir o mesmo conjunto de arquivos que o logstash está pedindo; Especificar .../conf.d não é o mesmo que especificar .../conf.d/*.conf

    
por 28.06.2018 / 04:01

Tags