Eu tenho dois tipos de arquivos de log: saída de um processo ETL e, em seguida, saída de um processador downstream. Nós chamamos esses registros de "ETL" e "Processador".
Os logs de ETL estão em sua própria pasta em nosso diretório de log, enquanto os logs do processador se instalam no mesmo diretório.
Então, eu tenho uma estrutura de pastas que é algo assim:
/Archive
/DataLoader_Supplemental
/DataLoader_ETLForRequestID_1
/(...40 log files)
/DataLoader_ETLForRequestID_2
/(...40 log files)
DataLoader_Processor_123.log
DataLoader_Processor_456.log
Os estilos de log de cada um são os mesmos (como em, eu posso usar o mesmo grok para ambos).
Eu gostaria de ter os dois tipos de log colocados no mesmo índice ElasticSearch como tipos diferentes, para que eu possa consultá-los.
Consegui fazer isso funcionar ao apontá-lo para apenas um tipo de log ( *.log
em uma pasta específica de solicitação ETL.)
No entanto, parece que não consigo fazer com que funcione com dois tipos diferentes ou trabalhe para verificar todas as pastas ETL e extrair todos os seus registros.
O que estou fazendo de errado?
input {
file {
path => '//MyFileServer/DATALOADER-TST/Archive/DataLoader_Supplemental/DataLoader_ETLForRequestID**/*.log'
type => "etl"
sincedb_path => "C:/Users/skilleen/Desktop/temp/logstash/target/.sincedb.etl.log"
start_position => "beginning"
}
file {
path => '//MyFileServer/DATALOADER-TST/Archive/DataLoader_Supplemental/*.log'
type => "processor"
sincedb_path => "C:/Users/skilleen/Desktop/temp/logstash/target/.sincedb.processor.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{DATESTAMP:datestamp} %{ISO8601_TIMEZONE:tzoffset} %{SYSLOG5424SD:loglevel}" }
}
}
output {
elasticsearch {
protocol => "http"
host => "localhost:9200"
index => "dataloaderlogstst"
}
}
O Logstash parece estar processando algo, e vejo os arquivos sincedb criados; no entanto, os índices nunca são criados no ElasticSearch.
UPDATE : Depois de um pouco de paciência, parece que os logs ETL foram importados para o ElasticSearch enquanto os logs do processador não estavam.
[2015-08-05 08:43:38,282][INFO ][node ] [Isis] version[1.7.1], pid[22120], build[b88f43f/2015-07-29T09:54:16Z]
[2015-08-05 08:43:38,283][INFO ][node ] [Isis] initializing ...
[2015-08-05 08:43:38,356][INFO ][plugins ] [Isis] loaded [], sites [HQ]
[2015-08-05 08:43:38,428][INFO ][env ] [Isis] using [1] data paths, mounts [[OS (C:)]], net usable_space [40.2gb], net total_space [223.2gb], types [NTFS]
[2015-08-05 08:43:41,605][INFO ][node ] [Isis] initialized
[2015-08-05 08:43:41,606][INFO ][node ] [Isis] starting ...
[2015-08-05 08:43:42,292][INFO ][transport ] [Isis] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/172.16.85.21:9300]}
[2015-08-05 08:43:42,568][INFO ][discovery ] [Isis] elasticsearch/74dbAjLJQj62k6z83LkLog
[2015-08-05 08:43:46,339][INFO ][cluster.service ] [Isis] new_master [Isis][74dbAjLJQj62k6z83LkLog][DCSKILLEEN][inet[/172.16.85.21:9300]], reason: zen-disco-join (elected_as_master)
[2015-08-05 08:43:46,383][INFO ][gateway ] [Isis] recovered [1] indices into cluster_state
[2015-08-05 08:43:46,764][INFO ][http ] [Isis] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/172.16.85.21:9200]}
[2015-08-05 08:43:46,766][INFO ][node ] [Isis] started
[2015-08-05 09:10:13,149][INFO ][cluster.metadata ] [Isis] [dataloaderlogstst] creating index, cause [auto(bulk api)], templates [], shards [5]/[1], mappings [etl]
[2015-08-05 09:10:13,294][INFO ][cluster.metadata ] [Isis] [dataloaderlogstst] update_mapping [etl] (dynamic)
[2015-08-05 09:10:14,097][INFO ][cluster.metadata ] [Isis] [dataloaderlogstst] update_mapping [etl] (dynamic)
C:\Users\skilleen\Downloads\logstash-1.5.3\logstash-1.5.3\bin>logstash agent -f
logstash.conf
io/console not supported; tty will not be manipulated
'[DEPRECATED] use 'require 'concurrent'' instead of 'require 'concurrent_ruby''
Logstash startup completed