Logstash - Entrées prises en charge

Logstash prend en charge une vaste gamme de journaux provenant de différentes sources. Il fonctionne avec des sources célèbres comme expliqué ci-dessous.

Collecter les journaux à partir des métriques

Les événements système et autres activités temporelles sont enregistrés dans des métriques. Logstash peut accéder au journal à partir des métriques système et les traiter à l'aide de filtres. Cela permet de montrer à l'utilisateur le flux en direct des événements de manière personnalisée. Les métriques sont vidées selon leflush_interval settingde filtre de métriques et par défaut; il est réglé sur 5 secondes.

Nous suivons les métriques de test générées par Logstash, en rassemblant et en analysant les événements exécutés via Logstash et en affichant le flux en direct sur l'invite de commande.

logstash.conf

Cette configuration contient un plugin de générateur, qui est offert par Logstash pour les métriques de test et définit le paramètre de type sur «généré» pour l'analyse. Dans la phase de filtrage, nous ne traitons que les lignes avec un type généré en utilisant l'instruction 'if'. Ensuite, le plug-in de métrique compte le champ spécifié dans les paramètres du compteur. Le plug-in de métriques vide le décompte toutes les 5 secondes spécifiées dans leflush_interval.

Enfin, affichez les événements de filtre vers une sortie standard telle qu'une invite de commande à l'aide de codec pluginpour le formatage. Le plugin Codec utilise la valeur [ events ] [ rate_1m ] pour afficher les événements par seconde dans une fenêtre glissante d'une minute.

input {
   generator {
     	type => "generated"
   }
}
filter {
   if [type] == "generated" {
      metrics {
         meter => "events"
         add_tag => "metric"
      }
   }
}
output {
   # only emit events with the 'metric' tag
   if "metric" in [tags] {
      stdout {
         codec => line { format => "rate: %{[events][rate_1m]}"
      }
   }
}

Exécutez Logstash

Nous pouvons exécuter Logstash en utilisant la commande suivante.

>logsaths –f logstash.conf

stdout (invite de commande)

rate: 1308.4
rate: 1308.4
rate: 1368.654529135342
rate: 1416.4796003951449
rate: 1464.974293984808
rate: 1523.3119444107458
rate: 1564.1602979542715
rate: 1610.6496496890895
rate: 1645.2184750334154
rate: 1688.7768007612485
rate: 1714.652283095914
rate: 1752.5150680019278
rate: 1785.9432934744932
rate: 1806.912181962126
rate: 1836.0070454626025
rate: 1849.5669494173826
rate: 1871.3814756851832
rate: 1883.3443123790712
rate: 1906.4879113216743
rate: 1925.9420717997118
rate: 1934.166137658981
rate: 1954.3176526556897
rate: 1957.0107444542625

Collecter les journaux du serveur Web

Les serveurs Web génèrent un grand nombre de journaux concernant l'accès des utilisateurs et les erreurs. Logstash aide à extraire les journaux de différents serveurs à l'aide de plug-ins d'entrée et à les stocker dans un emplacement centralisé.

Nous extrayons les données du stderr logs du serveur Apache Tomcat local et en le plaçant dans le fichier output.log.

logstash.conf

Ce fichier de configuration Logstash demande à Logstash de lire les journaux d'erreurs Apache et d'ajouter une balise nommée «apache-error». Nous pouvons simplement l'envoyer au fichier output.log en utilisant le plugin de sortie de fichier.

input {
   file {
      path => "C:/Program Files/Apache Software Foundation/Tomcat 7.0 /logs/*stderr*"
      type => "apache-error"  
   }
} 
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

Exécutez Logstash

Nous pouvons exécuter Logstash en utilisant la commande suivante.

>Logstash –f Logstash.conf

Exemple de journal d'entrée

Ceci est l'exemple stderr log, qui génère lorsque les événements serveur se produisent dans Apache Tomcat.

C: \ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ logs \ tomcat7-stderr.2016-12-25.log

Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9999"]
Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 823 ms

output.log

{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start\r",
   "type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"INFO: Starting ProtocolHandler [
      \"ajp-bio-8009\"]\r","type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start\r",
   "type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"INFO: Server startup in 823 ms\r","type":"apache-error","tags":[]
}

Collecter des journaux à partir de sources de données

Pour commencer, voyons comment configurer MySQL pour la journalisation. Ajoutez les lignes suivantes dansmy.ini file du serveur de base de données MySQL sous [mysqld].

Sous Windows, il est présent dans le répertoire d'installation de MySQL, qui se trouve dans -

C:\wamp\bin\mysql\mysql5.7.11

Sous UNIX, vous pouvez le trouver dans - /etc/mysql/my.cnf

general_log_file   = "C:/wamp/logs/queries.log"
general_log = 1

logstash.conf

Dans ce fichier de configuration, le plugin de fichier est utilisé pour lire le journal MySQL et l'écrire dans le fichier ouput.log.

input {
   file {
      path => "C:/wamp/logs/queries.log"
   }
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

queries.log

Il s'agit du journal généré par les requêtes exécutées dans la base de données MySQL.

2016-12-25T13:05:36.854619Z   2 Query		select * from test1_users
2016-12-25T13:05:51.822475Z    2 Query	select count(*) from users
2016-12-25T13:05:59.998942Z    2 Query         select count(*) from test1_users

output.log

{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:37.905Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:36.854619Z    2 Query\tselect * from test1_users",
   "tags":[]
}
{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:51.938Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:51.822475Z    2 Query\tselect count(*) from users",
   "tags":[]
}
{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:06:00.950Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:59.998942Z    2 Query\tselect count(*) from test1_users",
   "tags":[]
}