2008-10-09 11 views
6

Je cherchais depuis longtemps une application qui remplit le même rôle que Logparser, une technologie géniale, mais pour Unix. Est-ce que quelqu'un sait de quelque chose cela? (J'ai regardé Splunk mais c'est une overkill, une simple ligne de commande est tout ce dont j'ai vraiment besoin)Logparser (celui de Microsoft) ou similaire pour Unix?

Note: Pouvoir faire des requêtes SQL sur des logs aléatoires, c'est super et beaucoup plus efficace que le grepping et sa parenté (car vous pouvez appliquer une logique relationnelle basée sur SQL au filtrage) et SQL est beaucoup plus lisible que Grep à des fins de maintenance lors du transfert d'un projet à d'autres équipes.

Répondre

4

Il y en a quelques-unes qui me viennent à l'esprit.

  1. yaala
  2. asql
  3. select

support Yaala plus vous connecter types de fichiers, et a une sql comme langage de requête. Asql ne prend en charge que le format de journal d'Apache et possède un langage de requête sql simple.

Sélectionnez la prise en charge de nombreux formats de journaux et d'un langage de requête SQL.

+1

Avez-vous un nouveau lien pour "sélectionner" le lien semble avoir mal tourné et la recherche de "select sql" ne retourne rien d'utile ;-) –

+0

Ouais, nous pouvons supposer que le lien "select" est mort. – Drachenfels

0

Le problème avec Linux est qu'il n'y a pas vraiment de format 'log' standard. Je ne suis pas sûr d'avoir jamais vu un journal comme ceux mentionnés dans l'exemple.

Je pense que vous feriez mieux de construire une base d'analyse des journaux qui vous intéressent basé sur awk et grep.

En regardant l'exemple, ils montrent

SELECT TimeGenerated, SourceName, 
EventCategoryName, Message INTO report.txt FROM Security WHERE 
EventID = 528 AND SID LIKE '%TESTUSER%' 

pourrait être accompli par instruction select:

cat logfile | awk '{print $(1), $(2), $(3)}' 

Pour référence: les colonnes imprime statment awk 1, 2 et 3 respectivement.

Raffinement étape clause where:

./base.sh | grep '528' > report.txt 

Je pense qu'avec un peu de finesse et non cette réponse artificielle, vous pourriez trouver quelque chose de convenable rapidement.

+0

D'accord, c'est une solution possible, mais juste comme une note. L'analyseur de journal ne dépend d'aucun format de journal connu, il est en quelque sorte compris à la volée. Je lui ai donné toutes sortes de journaux non standard et personnalisés et il a été assez intelligent pour savoir comment les diviser en colonnes –

+1

Je suis sûr que sa question spécifiquement dit à propos de grep et ne le trouve pas approprié. – SquareCog

+0

Et lorsque vous vous déplacez dans des conditions plus complexes comme (entre 6 et 17), grep devient moins utile. De plus, avoir une interface de type sql plus verbeuse signifie que vous avez au moins le potentiel d'être extrait du format de stockage de journal, ou au moins des changements mineurs dans le format (comme l'ajout d'une colonne de données). –