私はGrokが非常に強く、ログデータの解析に致命的であると見ています。 GrokをJavaのアプリケーションでのログ解析に使用したかったのですが、どのようにGrokをJavaから接続して動作させることができますか?JavaからGrokを使って解析する方法。使用できる例はありますか?
5
A
答えて
5
GitHubのからのjava-GROKをダウンロードしてみてください:https://github.com/NFLabs/java-grok あなたが完全に理解デバッガを使用してパターンをテストすることができます。http://grokdebug.herokuapp.com/
4
このJavaライブラリをチェック
あなたのように、プロジェクトに含めることができます依存関係
<dependency>
<groupId>org.aicer.grok</groupId>
<artifactId>grok</artifactId>
<version>0.9.0</version>
</dependency>
定義済みのパターンを追加することもできます。
名前付きパターンが抽出され、グループ名をキーとして検索結果がマップに表示され、検索された値がこれらのキーにマップされます。
final GrokDictionary dictionary = new GrokDictionary();
// Load the built-in dictionaries
dictionary.addBuiltInDictionaries();
// Add custom pattern
dictionary.addDictionary(new File(patternDirectoryOrFilePath));
// Resolve all expressions loaded
dictionary.bind();
この次の例では、ここでファイル
final GrokDictionary dictionary = new GrokDictionary();
// Load the built-in dictionaries
dictionary.addBuiltInDictionaries();
// Add custom pattern directly
dictionary.addDictionary(new StringReader("DOMAINTLD [a-zA-Z]+"));
dictionary.addDictionary(new StringReader("EMAIL %{NOTSPACE}@%{WORD}\.%{DOMAINTLD}"));
// Resolve all expressions loaded
dictionary.bind();
を使用しなくても辞書に直接文字列パターンを追加し、ライブラリに
public final class GrokStage {
private static final void displayResults(final Map<String, String> results) {
if (results != null) {
for(Map.Entry<String, String> entry : results.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}
}
public static void main(String[] args) {
final String rawDataLine1 = "1234567 - [email protected] cc55ZZ35 1789 Hello Grok";
final String rawDataLine2 = "98AA541 - [email protected] mmddgg22 8800 Hello Grok";
final String rawDataLine3 = "55BB778 - [email protected] secret123 4439 Valid Data Stream";
final String expression = "%{EMAIL:username} %{USERNAME:password} %{INT:yearOfBirth}";
final GrokDictionary dictionary = new GrokDictionary();
// Load the built-in dictionaries
dictionary.addBuiltInDictionaries();
// Resolve all expressions loaded
dictionary.bind();
// Take a look at how many expressions have been loaded
System.out.println("Dictionary Size: " + dictionary.getDictionarySize());
Grok compiledPattern = dictionary.compileExpression(expression);
displayResults(compiledPattern.extractNamedGroups(rawDataLine1));
displayResults(compiledPattern.extractNamedGroups(rawDataLine2));
displayResults(compiledPattern.extractNamedGroups(rawDataLine3));
}
}
を使用する方法の完全な例である
関連する問題
- 1. PHPを使用してXMLを解析する方法はありますか?
- 2. regexを使ってJavaでファイルを解析する方法は?
- 3. 正規表現を使って大きなファイルを高速に解析する方法はありますか?
- 4. JavaでXMLを解析する簡単な方法はありますか?
- 5. pyasn1で使用するASN1文法からオブジェクトクラスを解析する方法は?
- 6. メソッドをJavaのdespendendantクラスから使用する方法はありますか?
- 7. libxml2を使ってGInputStream(GLibGIO/GVFS)からデータを解析する方法は?
- 8. ジェネリック型を使ってjson listをrest callから解析する方法は?
- 9. Javaでデータフロー解析にPMDを使用できますか?
- 10. openSSLを使用して.JKS(java keystore)を解析する方法
- 11. AndroidでKotlinを使用してURLからJSONを解析する方法は?
- 12. JavaでJSONObjectを使ってjsondataを直接解析する方法は?
- 13. DocumentをVoiceXMLDocumentに解析する方法はありますか? [Java - Android]
- 14. ダッシュボードからデータベースエントリを解析する方法はありますか?
- 15. Microsoft.SqlServer.Types.SqlGeometryをSVGに解析する方法はありますか?
- 16. インラインリテラルを解析する方法はありますか?
- 17. Selenium WebDriver Javaを使用してログインポップアップウィンドウを処理する方法は?火かき棒を使ってポップアップを調べる方法はありますか?
- 18. ボレーを使用してJson Stringからデータを解析する方法は?
- 19. reactjsを使用して子から親にデータを解析する方法は?
- 20. CURLを使用してHTMLファイルから内容を解析する方法は?
- 21. JSを使用してJSON Stringからパラメータを解析する方法は?
- 22. jacksonを使ってJSON StringをJavaオブジェクトに解析する方法は?
- 23. music21を使ってmp3ファイルを解析することはできますか?
- 24. jsonを使用してこのjsonを解析する方法はありますか
- 25. tensorflowでtf.nn.l2_lossを使用する方法の例はありますか?
- 26. grokとlogstshを使って "log 2017-12-18 00:00:00,098 DEBUG Test - In test class"を解析する方法
- 27. strptimeを使ってstr(my_datetime)を解析する方法は?
- 28. boost :: spiritを使ってUTF-8を解析する方法は?
- 29. pythonを使ってこのxmlを解析する方法は?
- 30. volleyを使ってrssフィードを解析する方法は?