2017-08-09 4 views
0

Logstash peut-il automatiquement identifier les paires KV dans les journaux et les analyser comme le fait le splunk.Can logstash identifie automatiquement les paires KV dans les journaux et les analyse

J'ai effectivement écrit un filtre GROK qui analyse les champs et définit un filtre KV de sorte que les champs supplémentaires peuvent être analysés. Mais certains journaux sont si aléatoires qu'ils ne correspondent pas à mon GROK et à partir de ces journaux, je dois analyser les paires KV dans les champs.

J'ai écrit un GROK:

%{MONTHDAY} %{MONTH} %{YEAR} %{TIME},%{NUMBER:duration} %{WORD:loglevel}%{SPACE}%{WORD:Activity} \[\{%{DATA:foo1}\}\]: %{GREEDYDATA:foo2} 

et dans le fichier de configuration logstash je définirai le filtre KV sur les champs foo1 et foo2.

Voici les lignes de journal que j'ESPÉRANT être analysé dans le champ supplémentaire:

[%t] 08 Aug 2017 18:55:38,179 INFO ApiConsumer [{applicationSystemCode=monicapp-app, clientIP=10.x.x.x, clusterId=Cluster-Id-NA, containerId=Container-Id-NA, correlationId=205c2806-2f97-f42f-00f5-9a43aafb9eb3, domainName=defaultDomain, hostName=10.x.x.x.domain.com, messageId=10.202.100.34-4041d41d-75f3-4282-9aab-dd1ab17ecdf3, userId=ANONYMOUS, webAnalyticsCorrelationId=B347BC083EB9DCE4ED5005506F1F1E63|}]: Accept="applications/json; v=1.0" Api-key="272df4bd-cb92-467e-b20b-4059e235b68e" Client-Correlation-Id="205c2806-2f97-f42f-00f5-9a43aafb9eb3" Content-Type="application/json" URL="https://mus.domain.com/private/appm/details-search" 


[%t] 08 Aug 2017 18:55:38,203 INFO ApiConsumer [{applicationSystemCode=monicapp-app, clientIP=10.x.x.x, clusterId=Cluster-Id-NA, containerId=Container-Id-NA, correlationId=205c2806-2f97-f42f-00f5-9a43aafb9eb3, domainName=defaultDomain, hostName=ip-x-x-x.domain.com, messageId=10.x.x.34-4041d41d-75f3-4282-9aab-dd1ab17ecdf3, userId=ANONYMOUS, webAnalyticsCorrelationId=B347BC083EB9DCE4ED5005506F1F1E63|}]: KpiMetric="Cta" TransactionName="ApplicationDetail" TransactionStatus="Success" User="Associate(firstName=mike, lastName=daniel, role=Consultant, [email protected], electronicId=mkd)" 

Le défi ici dans la deuxième ligne du journal où je voudrais analyser aussi les champs à l'intérieur User="Associate(firstName=mike, lastName=daniel, role=Consultant, [email protected], electronicId=mkd)"

Des pensées?

Répondre

0

Vous devez le faire de cette façon:

  1. champ extrait qui contient des paires de KV en utilisant GROK. Cela va créer un champ désiré
  2. Utilisez KV filter afin de diviser ce champ en paires