Disons que vous avez 2 types de journaux très différents tels que les journaux techniques et commerciaux et que vous voulez:
- les journaux techniques bruts soient acheminés vers un serveur graylog2 à l'aide d'une
gelf
sortie, - json business logs être stockés dans un cluster elasticsearch à l'aide de la
elasticsearch_http
sortie dédiée .
Je sais qu'avec Syslog-NG
par exemple, le fichier de configuration permet de définir plusieurs entrées distinctes qui peuvent ensuite être traitées séparément avant d'être expédiées; ce qui Logstash
semble incapable de faire. Même si une instance peut être lancée avec deux fichiers de configuration spécifiques, tous les journaux empruntent le même canal et sont appliqués les mêmes traitements ...
Dois-je exécuter autant d'instances que j'ai différents types de journaux?
Réponses:
Non! Vous ne pouvez exécuter qu'une seule instance pour gérer différents types de journaux.
Dans le fichier de configuration de logstash, vous pouvez spécifier chaque entrée avec un type différent . Ensuite, dans le filtre, vous pouvez utiliser if pour distinguer différents traitements, et également à la sortie, vous pouvez utiliser la sortie "if" vers une destination différente.
J'espère que cela peut vous aider :)
la source
type
attribut (avec la mêmetype => "value"
syntaxe) dans les définitions de filtre et de sortie, ce qui devrait réduire un peu le formatage supplémentaire dans le fichier de configuration. Exemple: gist.github.com/fairchild/3030472 Par documentation: Ajoutez un champ 'type' à tous les événements gérés par cette entrée. Les types sont principalement utilisés pour l'activation des filtres. Le type est stocké dans le cadre de l'événement lui-même, vous pouvez donc également utiliser le type pour le rechercher dans l'interface Web.type => "value"
dans une sortie, le message suivant s'affiche: "Vous utilisez un paramètre de configuration obsolète" type "défini dans stdout. Les paramètres obsolètes continueront de fonctionner, mais leur suppression de logstash est prévue à l'avenir. Vous pouvez obtenir ce même comportement avec les nouvelles conditions, comme:.if [type] == "sometype" { stdout { ... } }
" Je retire mon commentaire précédent. :)type
attribut ne s'appliquera pas s'il existe déjà un champ de type à partir de l'entrée. C'est un attribut spécial qui ne remplace pas et qui est documenté. J'ai ouvert un ticket dans Elastic et ils m'ont recommandé d'utilisertags
ou à laadd_field
place detype
J'ai utilisé des balises pour l'entrée de plusieurs fichiers:
la source
Je pense que logstash ne peut pas lire plus de 2 fichiers dans la section Entrée. essayez ci-dessous
la source