OVH Community

Bienvenue sur votre espace communautaire. Posez des questions, recherchez des informations, publiez du contenu et interagissez avec d’autres membres OVH Community.

Filebeat 6.5 : Mise à jour documentation


#1

Bonjour,

Je viens de faire la migration de Filebeat 5.6 vers Filebeat 6.5.
Filebeat 6.5 propose des modules system et apache2 (et d'autres mais je n'utilise que ces deux-là), ce qui simplifie la configuration.

Je ne pense pas que ce soit lié aux modules mais la configuration de Logstash présenté dans les guides se rapporte toujours à Filebeat 5.x !
Serait-il possible de faire une mise à jour parce que certains noms de champ ont changé (plus de champs type, le champ source est un objet - au lieu d'une chaîne de caractères précédemment, ...) ?

Merci d'avance.


Ma configuration Logstash filters actuelle en 5.6 :

mutate {
	rename => {
		"source" => "filename"
	}
}

if [type] == "apache-access" {
	grok {
		match => { "message" => "%{OVHCOMMONAPACHELOG}" }
		patterns_dir => "/opt/logstash/patterns"
	}
	if ("_grokparsefailure" in [tags]) {
		mutate {
			remove_tag => [ "_grokparsefailure" ]
		}
		grok {
			match => [ "message", "%{OVHCOMBINEDAPACHELOG}" ]
			patterns_dir => "/opt/logstash/patterns"
			named_captures_only => true
		}
	}
	date {
		match => [ "timestamp", "dd/MMM/YYYY:HH:mm:ss Z" ]
		target => "timestamp"
	}
}
if [type] == "apache-error" {
	grok {	
		break_on_match => true
		match => { "message" => [ "%{OVHHTTPD_ERRORLOG_REFERRER}", "%{OVHHTTPD_ERRORLOG}" ] } 
		patterns_dir => "/opt/logstash/patterns"
	}
	mutate {
		add_field => {
			"full_message" => "%{message}"
		}
	}
	mutate {
		rename => {
			"errormsg" => "message"
		}
	}
	date {
		match => [ "timestamp", "E MMM dd HH:mm:ss YYYY" ]
		target => "timestamp"
		timezone => "Europe/Brussels"
	}
	if ("_dateparsefailure" in [tags]) {
		mutate {
			remove_tag => [ "_dateparsefailure" ]
		}
		date {
			match => [ "timestamp", "E MMM dd HH:mm:ss.SSSSSS YYYY" ]
			target => "timestamp"
			timezone => "Europe/Brussels"
		}
	}
}

if [type] == "syslog" {
	grok {
		match => { "message" => "%{SYSLOGBASE}" }
	}
	date {
		match => [ "timestamp", "MMM dd HH:mm:ss" ]
		target => "timestamp"
	}
}

#2

Bonjour,
Merci pour l'intêret que vous portez à Logs Data Platform.
Nous n'avons pas encore mis à jour la documentation car nous venons depuis peu de proposer Logstash 6.5 sur la plateforme. En effet chaque logiciel de la suite Elastic ne garantit la compatibilité qu'avec des logiciels de version identique. Maintenant que Logstash 6.5 est disponible sur la plateforme, nous allons pouvoir le mentionner dans la documentation.

Pour revenir au problème que vous évoquez , en effet les modules de Filebeat en 6.5 et 5.6 sont différents. Nous ne supportons pas encore Filebeat 6.5 totalement car les objets imbriqués sont aujourd'hui mal sérialisés par notre codec.

Il est possible d'utiliser Logstash 5.6 et 6.5 sur notre plateforme avec filebeat 6.5 mais elle nécessite bien un changement de configuration pour aller chercher le sous objet filebeat correspondant.
Cela donnerait par exemple (pour apache-access et apache-error)

  if [fileset][module] == "apache2" {
    if [fileset][name] == "access" {
      grok {
        match => { "message" => "%{OVHCOMBINEDAPACHELOG}"  }
        patterns_dir => "/opt/logstash/patterns"
	    named_captures_only => true
      }
      mutate {
        add_field => { "read_timestamp" => "%{@timestamp}" }
      }
      date {
        match => [ "timestamp", "dd/MMM/YYYY:H:m:s Z" ]
        target => "timestamp"
      }
   }
    else if [fileset][name] == "error" {
	    grok {
          break_on_match => true
		  match => { "message" => "%{OVHHTTPD_ERRORLOG_REFERRER}" }
          patterns_dir => "/opt/logstash/patterns"
	     }
	    date {
		  match => [ "timestamp", "MMM dd HH:mm:ss" ]
		  target => "timestamp"
	    }
   }
 }

Cette configuration n'a pas été testé en production (n'hésitez pas à y ajouter vos différents mutate). Dîtes nous si elle n'est pas valide dans votre cas ou vous souhaitez qu'on vous accompagne dans sa complétion.


#3

Merci, je vais essayer ça :)

Comment puis je "upgrader" mon "outil de collecte" vers la version 6.5 ?
Faut-il créer un nouvel outil de collecte pour profiter de la dernière version ?

Merci !


#4

Bonjour @PhilippeH17,

Pour mettre à jour votre outil de collecte, procédez comme suit:

  • Rendez-vous sur notre manager LDP dans la section cloud
  • Accédez à l'onglet Outils de collecte de votre service
  • Cliquez sur les 3 ... à droite de votre Logstash pour sélectionner l'action Modifier
  • Sur le premier volet de notre assistant, changez la valeur de Logiciel en Logstash 6.5
  • Mettez à jour la partie configuration dans le second volet
  • Puis lancez un redémarrage de l'instance lorsque cette dernière vous semble valide

Bien cordialement,


#5

Merci,

J'ai lancé la migration et ai "nettoyé" la configuration des input et filter.
Malheureusement, lorsque que je teste la configuration, j'ai le message d'erreur suivant :

                    uri: https://gra2.logs.ovh.com/engine/files/logstash/6.5/57ff3fc1ca15df000d804964/logstash.conf
Sending Logstash logs to /var/log/logstash which is now configured via log4j2.properties
[2019-01-11T10:23:59,107][FATAL][logstash.runner          ] The given configuration is invalid. Reason: Expected one of #, { at line 33, column 37 (byte 593) after output {

    kafka { 
        bootstrap_servers => kafka-1
[2019-01-11T10:23:59,123][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

Merci.


#6

Merci pour cette remontée, c'est à nouveau fonctionnel.