我已經看到Grok在解析日誌數據方面非常強大和致命。我想在我們的應用程序中使用Grok進行日誌解析,這是在java中。我怎樣才能連接/從Java與Grok工作?如何從Java中分析使用Grok ..是否有任何可用的示例。?
5
A
回答
5
嘗試從GitHub下載Java的神交:https://github.com/NFLabs/java-grok 可以使用測試模式的神交調試器:http://grokdebug.herokuapp.com/
4
看看這個Java庫
您可以將其包含在您的項目依靠maven
<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. 是否有任何示例如何使用Matrix Toolkit Java(MTJ)?
- 2. 在java中是否有任何Webcam集成的示例示例
- 3. 在Java中是否有任何可用的SMS Pdu解析器?
- 4. 如何使用twitter-text-1.5.0.js是否有任何示例?
- 5. 是否有任何可用的Processing程序分析器?
- 6. 是否有使用Mylyn的wikitext的任何Java的例子嗎?
- 7. 是否有任何選項可停止應用分析儀?
- 8. 在Couchbase PhoneGap中使用REST API是否有任何示例
- 9. 是否有OCaml ppx_xml_conv模塊的任何使用示例
- 10. 是否有任何使用IUPnPRegistrar.RegisterDevice的源代碼示例?
- 11. 是否有任何如何使用maven-jar-plugin的例子?
- 12. 是否有任何StackExchange.Redis示例項目
- 13. 是否有任何HessianKit示例項目?
- 14. 是否有任何代碼示例(s)如何使視頻卡不可見?
- 15. 是否有任何用Java編寫的ADA解析器?
- 16. 是否有任何用於數據/控制依賴的開源Java分析庫?
- 17. 是否有任何使用HTML5/XHTML中的角色屬性的網站示例?
- 18. 如何將iAds集成到應用程序中是否有任何示例?
- 19. 是否有任何框架用java
- 20. Java中是否有任何Java x509certificate ClientHello解析器?
- 21. 是否有任何可用的MvxCollectionViewCell示例反映了MvvmCross的5.x版本
- 22. 如何在Postman中使用SendGrid的入站分析Webhook示例?
- 23. 是否有任何使用PyObjC編寫的iOS應用程序示例?
- 24. Django是否有任何統計/分析應用程序?
- 25. Java - 是否有任何理由檢查單例是否爲空?
- 26. 任何用於OpenExchangeRates.org的java示例
- 27. 任何示例使用RegLoadKey()
- 28. 是否有任何PHP DocBlock解析器工具可用?
- 29. WinRT是否有任何EventBrokers可用?
- 30. 是否有任何技術可以指示html select元素是否被「使用」?