Requiero configurar el siguiente filtro en mis Indices pero no tengo éxito para lograrlo

Actualmente ya recibo información de los logs pero no tengo éxito en crear los filtros necesarios para obtener el siguiente formato y los datos que requiero:
scrip

Estos son mis resultados actuales:

Este es mi filtro:

.

Les agradezco mucho su ayuda.

Otra pregunta es si puedo agregar algún nivel de seguridad por ejemplo para proteger los cambios en los Dashboard para crear accesos a nivel de solo lectura en la versión libre. Gracias

Hola Julio,

No entiendo bien el tipo de log, por lo que no se porque el filtro no te funciona. Tienes una linea de log por defecto, y ademas también puedes copiar tu filtro de logstash aquí?

En cuanto a seguridad puedes ver la información aquí: https://www.elastic.co/subscriptions. Se necesita una licencia de GOLD para poder tener seguridad en el cluster al día de hoy.

Saludos!

--Gabriel

Hola Gabriel gracias por tu respuesta mi filtro de Logstash es:

Es un SysLog Filter

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" ]
}
}
}

Tengo este para el Input:
input {
beats {
port => 5044
type => "syslog"
ssl => true

ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"

ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"

}
}

Y este es el Output

output {
elasticsearch {
hosts => ["--.--.--.--:9200"]
sniffing => true
manage_template => false
index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}

Y en el otro server tengo instalado el winlogbeat

Con el siguiente filtro:

#======================= Winlogbeat specific options ==========================
winlogbeat.event_logs:

  • name: Application
    ignore_older: 72h
  • name: Security
  • name: System
    #==================== Elasticsearch template setting ==========================
    setup.template.settings:
    index.number_of_shards: 3
    #================================ General =====================================
    #============================== Dashboards =====================================
    #============================== Kibana =====================================
    #============================= Elastic Cloud ==================================
    #================================ Outputs =====================================

Configure what output to use when sending the data collected by the beat.

#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
hosts: ["--.--.--.--:9200"]
#----------------------------- Logstash output --------------------------------
#================================ Logging =====================================
#============================== Xpack Monitoring ===============================

Los demás renglones de datos todos tienen el # antes de las indicaciones así que los descarte para mostrarte solo lo que si se ejecuta.

Lo mejor en estos casos es utilizar el stdin input, tu filtro, y luego el stdout { codec => rubydebug } para ver que imprime Logstash.

En el stdin pones/pegas en consola el log que luego parseas aqui:

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}" ]
}

Y luego con esto ver que sucede.

Saludos,

Gabriel

Hola Gabriel, corri el filtro con Stdin pero me arrojo el siguiente error:

[root@elk-stack conf.d]# /usr/share/logstash/bin/logstash -f "/etc/logstash/conf.d/datefailtest.conf"
WARNING: Could not find logstash.yml which is typically located in $LS_HOME/config or /etc/logstash. You can specify the path using --path.settings. Continuing using the defaults
Could not find log4j2 configuration at path /usr/share/logstash/config/log4j2.properties. Using default config which logs errors to the console
[INFO ] 2018-04-27 17:58:52.417 [main] scaffold - Initializing module {:module_name=>"fb_apache", :directory=>"/usr/share/logstash/modules/fb_apache/configuration"}
[INFO ] 2018-04-27 17:58:52.423 [main] scaffold - Initializing module {:module_name=>"netflow", :directory=>"/usr/share/logstash/modules/netflow/configuration"}
[WARN ] 2018-04-27 17:58:52.778 [LogStash::Runner] multilocal - Ignoring the 'pipelines.yml' file because modules or command line options are specified
[FATAL] 2018-04-27 17:58:52.787 [LogStash::Runner] runner - Logstash could not be started because there is already another instance using the configured data directory. If you wish to run multiple instances, you must change the "path.data" setting.
[ERROR] 2018-04-27 17:58:52.791 [LogStash::Runner] Logstash - java.lang.IllegalStateException: org.jruby.exceptions.RaiseException: (SystemExit) exit

Si gustas te paso mi filtro con el codigo que utilice.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.