Você está usando uma sintaxe diferente na linha de correspondência grok. Mude para {"message" = > "..."} como no segundo.
Eu tenho um servidor no qual vários serviços são executados, como o nginx mongodb etc. Eu quero buscar os seguintes logs dele /var/log/nginx/access.log /var/log/tomcat/catalina.out/ /var/log/audit/audit.log etc etc. minha configuração de filebeat parece.
filebeat:
prospectors:
-
paths:
- /var/log/auth.log
- /var/log/syslog
document_type: syslog
input_type: log
prospectors:
-
paths:
- /var/log/nginx/access.log
document_type: nginx-access
input_type: log
output:
### Logstash as output
logstash:
# The Logstash hosts
hosts: ["logstashserver.pr:5044"]
# default is 2048.
logstash conf é
filter {
if [type] == "nginx-access" {
grok {
match => [ "message" , "%{COMBINEDAPACHELOG}+%{GREEDYDATA:extra_fields}"]
overwrite => [ "message" ]
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
}
}
---------
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
syslog_pri { }
date {
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
}
}
mas apenas o último nginx vem em busca elástica. Eu não sei como buscar e inserir os dois logs no ElasticSearch Kibana
Você está usando uma sintaxe diferente na linha de correspondência grok. Mude para {"message" = > "..."} como no segundo.