RousselTMLEARNING

Observabilidad

Logstash: las entradas (inputs) y las salidas (outputs)

Versión escrita de las lecciones en vídeo: los inputs habituales (beats, file, tcp/udp, http, kafka, jdbc) y las salidas (elasticsearch con data streams, file, s3, kafka, stdout), con sus opciones clave.

1. Las entradas #

Recibir los datos.

Inputs habituales #

Fuentes, Logstash y destinos.
InputUsoOpción clave
beats / elastic_agentrecibir Beats y Elastic Agentport => 5044, ssl_enabled
fileleer archivos localespath, start_position, sincedb_path
tcp / udp / syslogflujos de redport, codec
httprecibir webhooksport, codec => json
kafkaconsumir topicsbootstrap_servers, topics, group_id
jdbcconsultar una base de datos SQLstatement, schedule, tracking_column
input {
  beats { port => 5044 }
  file  { path => "/var/log/app/*.log" start_position => "beginning" }
  jdbc  {
    jdbc_connection_string => "jdbc:postgresql://db:5432/app"
    jdbc_user => "lecture"
    jdbc_driver_class => "org.postgresql.Driver"
    schedule => "*/5 * * * *"
    statement => "SELECT * FROM commandes WHERE maj > :sql_last_value"
    use_column_value => true
    tracking_column => "maj"
    tracking_column_type => "timestamp"
  }
}
Para saber: El codec decodifica los datos a la entrada (json, multiline, plain) o los codifica a la salida.

2. Las salidas #

Enviar los datos.

La salida elasticsearch #

output {
  elasticsearch {
    hosts => ["https://es1:9200", "https://es2:9200"]
    api_key => "${ES_API_KEY}"
    ssl_certificate_authorities => ["/etc/logstash/ca.crt"]
    data_stream => true
    data_stream_type => "logs"
    data_stream_dataset => "app"
    data_stream_namespace => "prod"
  }
}
Buena práctica: Escribe en data streams (logs-app-prod) en lugar de índices con fecha: la rotación, la retención ILM y las plantillas de índice las gestiona entonces Elasticsearch.

Otras salidas #

OutputUso
stdout { codec => rubydebug }depuración
filecopia local
s3archivo a largo plazo económico
kafkaalimentar a otros consumidores
pipelineenviar a otro pipeline de Logstash
Error común: Poner la contraseña de Elasticsearch en claro en el archivo del pipeline: usa el keystore (bin/logstash-keystore add ES_API_KEY) y referencia el valor con ${ES_API_KEY}.

Artículos relacionados

Logstash: función, concepto de pipeline e instalación

Versión escrita de las lecciones en vídeo: para qué sirve Logstash, cómo funciona un pipeline (inputs, filtro…

Logstash: los filtros, grok y dissect

Versión escrita de las lecciones en vídeo: los filtros esenciales (mutate, date, json, kv, drop), el plugin g…

Logstash: gestionar los plugins y adoptar Elastic Common Schema (ECS)

Versión escrita de las lecciones en vídeo: listar, instalar, actualizar y empaquetar sin conexión los plugins…

Seguir aprendiendo

Apoyar

♥ APOYAR

Apoya RousselTM Learning

Los cursos, artículos, prácticas y certificados siguen siendo gratuitos y sin publicidad intrusiva. Una contribución libre, por el importe que elijas, financia el alojamiento, los entornos de prácticas y nuevos contenidos.

Contribuir con PayPal Importe libre · tarjeta o cuenta PayPalMás información
QR code PayPal
O escanea este código QR con tu teléfono

¡Gracias, cada contribución cuenta!