RousselTMLEARNING

Observabilité

Logstash : les entrées (inputs) et les sorties (outputs)

Version écrite des leçons vidéo : les inputs courants (beats, file, tcp/udp, http, kafka, jdbc) et les sorties (elasticsearch avec data streams, file, s3, kafka, stdout), avec leurs options clés.

1. Les entrées #

Recevoir les données.

Les inputs courants #

Sources, Logstash et destinations.
InputUsageOption clé
beats / elastic_agentrecevoir Beats et Elastic Agentport => 5044, ssl_enabled
filelire des fichiers locauxpath, start_position, sincedb_path
tcp / udp / syslogflux réseauport, codec
httprecevoir des webhooksport, codec => json
kafkaconsommer des topicsbootstrap_servers, topics, group_id
jdbcinterroger une base 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"
  }
}
À savoir : Le codec décode les données à l'entrée (json, multiline, plain) ou les encode à la sortie.

2. Les sorties #

Envoyer les données.

La sortie 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"
  }
}
Bonne pratique : Écrivez dans des data streams (logs-app-prod) plutôt que dans des index datés : rotation, rétention ILM et modèles d'index sont alors gérés par Elasticsearch.

Autres sorties #

OutputUsage
stdout { codec => rubydebug }mise au point
filecopie locale
s3archivage long terme bon marché
kafkaalimenter d'autres consommateurs
pipelineenvoyer vers un autre pipeline Logstash
Erreur courante : Mettre le mot de passe Elasticsearch en clair dans le fichier de pipeline : utilisez le keystore (bin/logstash-keystore add ES_API_KEY) et référencez la valeur par ${ES_API_KEY}.

Articles liés

Logstash : rôle, concept de pipeline et installation

Version écrite des leçons vidéo : à quoi sert Logstash, comment fonctionne un pipeline (inputs, filtres, sort…

Logstash : les filtres, grok et dissect

Version écrite des leçons vidéo : les filtres essentiels (mutate, date, json, kv, drop), le plugin grok et se…

Logstash : gérer les plugins et adopter Elastic Common Schema (ECS)

Version écrite des leçons vidéo : lister, installer, mettre à jour et embarquer hors ligne les plugins Logsta…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !