Benutzer-Werkzeuge

Webseiten-Werkzeuge


elasticsearch

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
elasticsearch [2025/03/27 11:39]
jango [Query Builder Module]
elasticsearch [2025/04/16 14:47] (aktuell)
jango
Zeile 1: Zeile 1:
 [[https://www.elastic.co/de/elasticsearch|Elasticsearch]] ist eine Open-Source-Such- und Analyselösung in [[coding:java|Java]], die hauptsächlich für das **Durchsuchen und Analysieren großer Mengen von Daten in Echtzeit** verwendet wird. Es wurde ursprünglich von der Firma Elastic entwickelt und ist ein wichtiger Bestandteil des sogenannten [[elk-stack|ELK-Stacks]] (Elasticsearch, [[Logstash]] und [[Kibana]]), der häufig zur Verarbeitung und Visualisierung von Logdaten eingesetzt wird. Elasticsearch **basiert auf Apache Lucene**, einer leistungsstarken, Open-Source-Textsuchbibliothek.  [[https://www.elastic.co/de/elasticsearch|Elasticsearch]] ist eine Open-Source-Such- und Analyselösung in [[coding:java|Java]], die hauptsächlich für das **Durchsuchen und Analysieren großer Mengen von Daten in Echtzeit** verwendet wird. Es wurde ursprünglich von der Firma Elastic entwickelt und ist ein wichtiger Bestandteil des sogenannten [[elk-stack|ELK-Stacks]] (Elasticsearch, [[Logstash]] und [[Kibana]]), der häufig zur Verarbeitung und Visualisierung von Logdaten eingesetzt wird. Elasticsearch **basiert auf Apache Lucene**, einer leistungsstarken, Open-Source-Textsuchbibliothek. 
  
-Siehe auch [[OpenSearch]]+Siehe auch [[OpenSearch]], [[Wazuh]] 
 + 
 +<code> 
 +
 +    "query": {  
 +        "match_all": {}  
 +    }, 
 +    "sort": [{ "@timestamp": "asc" }] 
 +
 +</code> 
 + 
 +<code> 
 +#Delete datastream 
 +curl -X DELETE "https://172.21.0.134:9200/_data_stream/test-vie-srv-ex01" 
 + 
 +# find all agents 
 +# windows 
 +curl -X GET "https://172.21.0.134:9200/winlogbeat-8.17.4/_search?pretty" --insecure -u "xxxxxxx:xxxxxx" -d "{\"size\":0,\"aggs\":{\"unique_agents\":{\"terms\":{\"field\":\"agent.name\",\"size\":10000}}}}" -H "Content-Type:application/json" 
 +# linux 
 +curl -X GET "https://172.21.0.134:9200/winlogbeat-8.17.4/_search?pretty" --insecure -u "xxxxxxx:xxxxxx" -d '{"size":0,"aggs":{"unique_agents":{"terms":{"field":"agent.name","size":10000}}}}' -H "Content-Type:application/json" | jq -r '.aggregations.unique_agents.buckets[] | "\(.key)"' 
 +</code>
  
 [[https://www.elastic.co/de/what-is/open-x-pack|X-Pack]] ist eine Plugin-Suite und bietet eine Sammlung von kommerziellen Erweiterungen und Funktionen, um die Fähigkeiten von Elasticsearch zu erweitern. **X-Pack bietet verschiedene Module in den Bereichen Sicherheit, Überwachung, Reporting und [[machine_learning|maschinelles Lernen]]**. [[https://www.elastic.co/de/what-is/open-x-pack|X-Pack]] ist eine Plugin-Suite und bietet eine Sammlung von kommerziellen Erweiterungen und Funktionen, um die Fähigkeiten von Elasticsearch zu erweitern. **X-Pack bietet verschiedene Module in den Bereichen Sicherheit, Überwachung, Reporting und [[machine_learning|maschinelles Lernen]]**.
 +
 +=====Service=====
 +
 +Als Service einrichten: Im Ordner elasticsearch/bin gibt es das Script elasticsearch-service.bat.
 +<code>
 +elasticsearch-service.bat install
 +elasticsearch-service.bat start
 +elasticsearch-service.bat stop
 +elasticsearch-service.bat remove
 +</code>
  
 =====Shards===== =====Shards=====
Zeile 26: Zeile 56:
 =====Datatypes===== =====Datatypes=====
  
-  * **Text**: Wird für Volltextsuche verwendet. Inhalte werden analysiert (z. B. in Tokens zerlegt) und in einem inversen Index gespeichert. Ideal für große, durchsuchbare Textblöcke (z. B. Artikel oder Beschreibungen). +  * **Text**: Wird für Volltextsuche verwendet. Inhalte werden analysiert (z. B. in Tokens zerlegt) und in einem inversen Index gespeichert. Ideal für große, durchsuchbare Textblöcke (z. B. Artikel oder Beschreibungen). (KEIN wildcard) 
-  * **Keyword**: Eignet sich für nicht-analysierte Werte. Inhalte werden genau so gespeichert, wie sie eingegeben wurden. Geeignet für Filter, Sortierung und Aggregationen (z. B. Tags, Kategorien, IDs).+  * **Keyword**: Eignet sich für nicht-analysierte Werte. Inhalte werden genau so gespeichert, wie sie eingegeben wurden. Geeignet für Filter, Sortierung und Aggregationen (z. B. Tags, Kategorien, IDs). (wildcard)
   * **Integer**, Long, Short, Byte: Unterschiedliche Ganzzahltypen mit verschiedenen Größenbereichen.   * **Integer**, Long, Short, Byte: Unterschiedliche Ganzzahltypen mit verschiedenen Größenbereichen.
   * **Float**, **Double**: Gleitkommazahlen für präzise numerische Berechnungen.   * **Float**, **Double**: Gleitkommazahlen für präzise numerische Berechnungen.
Zeile 380: Zeile 410:
 must_conditions.append(nested_condition_1) must_conditions.append(nested_condition_1)
 must_conditions.append(nested_condition_2) must_conditions.append(nested_condition_2)
- 
-# Die Bedingungen zur Query hinzufügen (Operator AND) 
-query = builder.build_query(must_conditions, operator="AND", sort_field="timestamp", sort_order="desc") 
- 
-# Die erzeugte Query ausgeben 
-builder.display_query() 
-</code> 
- 
-<code python> 
-# Initialisierung des Query Builders 
-builder = ElasticsearchQueryBuilder() 
- 
-# Verschachtelte Bedingungen erstellen 
-must_conditions = [] 
-must_conditions.append(builder.add_condition("match", "data.win.eventdata.authenticationPackageName", "NTLM")) 
-must_conditions.append(builder.add_condition("wildcard", "data.win.eventdata.targetUserName", "*")) 
- 
-# Erste verschachtelte Bedingung mit zwei "should" Bedingungen 
-nested_condition_1 = { 
-    "bool": { 
-        "should": [ 
-            builder.add_condition("term", "data.win.eventdata.lmPackageName", "NTLM V1"), 
-            builder.add_condition("wildcard", "data.win.eventdata.targetDomainName", "example*") 
-        ], 
-        "minimum_should_match": 1  # Minimum eine der "should" Bedingungen muss zutreffen 
-    } 
-} 
- 
-# Weitere verschachtelte Bedingungen können hier hinzugefügt werden 
- 
-# Die verschachtelte Bedingung zur Liste der "must" Bedingungen hinzufügen 
-must_conditions.append(nested_condition_1) 
  
 # Die Bedingungen zur Query hinzufügen (Operator AND) # Die Bedingungen zur Query hinzufügen (Operator AND)
elasticsearch.1743071942.txt.gz · Zuletzt geändert: 2025/03/27 11:39 von jango