İndeks Görme ve Silme

Doküman Sayısını Görme

curl -X GET "<ELASTICSEARCH_IP>:9200/<INDEX_KEY>/_doc/_count"
BASH

Where Koşullu İndeks Görme

curl -X GET "<ELASTICSEARCH_IP>:9200/*/_search?pretty=true&q=apiGatewayName:KPS+XYS"
CODE
curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "apiGatewayName": "TEST KPS GW"
          }
        },
        {
          "range": {
            "created": {
              "gte": "now-7d/d",
              "lt": "now-5d/d"
            }}}]}}}'
CODE
curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d'
{
    "_source": ["contentType"],   
    "size": 50,
    "query": {
        "match_all": {}
    }}'
CODE

Requestteki CID ile Responsedaki CID Aynı Olmayan Kayıtları Script ile Bulan Sorgu

curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d'
{
    "query": {
        "bool": {
            "filter": [
                {
                    "script": {
                        "script": {
                            "source": "doc['headerRequestFromClient.APINIZER-CORRELATION-ID.keyword'].value !=  doc['headerResponseToClient.APINIZER-CORRELATION-ID.keyword'].value",
                            "lang": "painless"
                        }}},
                {
                    "range": {
                        "created": {                            
                          "gte": "2021-06-28T16:30:32.000"                           
                        }}},
				{
				  "term":{
					"instanceId":2
				  }}]}}}'
CODE


Belirli Zaman Aralığında Saniye Bazlı Gelen Requestlerin Listesi

curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
     "bool": {
      "filter": [
        {
          "match": {
            "api": "26"
          }},
        {
          "range": {
            "created": {
              "gte": "2020-06-08T15:08:00.000",
              "lte": "2020-06-08T15:12:00.000"
            }}}]}},   
    "aggs" : {
        "reqs_over_time" : {
            "date_histogram" : {
                "field" : "created",
                "interval" : "1s"
            }}}}'
CODE


Correlation ID'ye Göre Belirli Dokümanları Bulma

curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d' { "query" : { "match":{ "aci": "c3d8523e-e3ac-497b-ac7a-76853198c239" }}}'
BASH


İndeks Adına Göre Silme

curl -X DELETE "<ELASTICSEARCH_IP>:9200/<INDEX_KEY>"
BASH


Verilen Kelimenin Geçtiği İndeksleri Silme

curl -X DELETE "<ELASTICSEARCH_IP>:9200/*metric*"
BASH


Elasticsearch Yığınının Read_Only Durumunu Değiştirmek

curl -X PUT "<ELASTICSEARCH_IP>:9200/_all/_settings?wait_for_completion=false" -H "Content-Type: application/json"  -d'
{
    "index.blocks.read_only_allow_delete": null,
    "index.blocks.write": null
}'
BASH

Sadece bir indeks için:

curl -X PUT "<ELASTICSEARCH_IP>:9200/<INDEX_KEY>/_settings?pretty" -H 'Content-Type: application/json' -d'
{
    "index.blocks.read_only_allow_delete": null,
	"index.blocks.write": null
}'
BASH

Belirli Bir Tarihe Kadar Olan Loglardan Bazı Body Alanlarının Silinmesi

curl -X POST "<ELASTICSEARCH_IP>:9200/.ds-apinizer-log-apiproxy-<LOG_KEY>-000*/_update_by_query?pretty" -H 'Content-Type: application/json' -d '
{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "@timestamp": {
              "lte": "2024-04-20T00:00:00.000Z" 
            }
          }
       }
      ]
    }
  },
  "script": {
    "source": "ctx._source.remove(\"tba\"); ctx._source.remove(\"fbarb\"); ctx._source.remove(\"tcb\")"
  }
}'
BASH

Tarih yerine Api Proxy id değerine göre güncelleme yapmak isterseniz "range": { "@timestamp": { "lte": "2024-04-20T00:00:00.000Z"  } } kısmı yerine  "match": { "api": "64ac03067e8f7400cf4adbdd" } filtresini ekleyebilirsiniz.

Elasticsearch veri yapısını incelemek ve silinecek alanları belirlemek için şu adrese gidiniz: API Trafiği Log Kaydı Veri Yapısı.

Rollover ile Yeni İndekse Geçme

http://<ELASTICSEARCH_IP>:9200/apinizer-log-apiproxy-<INDEX_KEY>/_rollover
BASH

Arama (Search)

Belirli Indeksteki Dokümanları Sorgulama

curl -X GET "<ELASTICSEARCH_IP>:9200/<INDEX_KEY>/_search?pretty=true&q=*:*"
BASH


Belirli Kritere Göre Indeksteki Dokümanları Sorgulama

curl -X GET "<ELASTICSEARCH_IP>:9200/*/_search?pretty=true&q=apiProxyName:Petstore+API"
BASH


Belirli Zaman Aralığına Göre Dokümanları Sorgulama

curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d
'{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "apiProxyName": "Petstore API"
          }
        },
        {
          "range": {
            "created": {
              "gte": "now-7d/d",
              "lt": "now-5d/d"
            }
          }
        }
      ]
    }
  }
}'
BASH


Belirli Kriterlere Göre Doküman Sonuçlarını Aggregate Etme

curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d
'{
  "query": {
     "bool": {
      "filter": [
        {
          "match": {
            "api": "26"
          }
        },
        {
          "range": {
            "created": {
              "gte": "2020-06-08T15:08:00.000",
              "lte": "2020-06-08T15:12:00.000"
            }
          }
        }
      ]
	}    
  }, 	
	"aggs" : {
        "reqs_over_time" : {
            "date_histogram" : {
                "field" : "created",
                "interval" : "1s"
            }
        }
    }
}'
BASH


Dokümanların Belirli Alanlarını Kısıtlama

curl -X GET "<ELASTICSEARCH_IP>:9200/_search?pretty" -H 'Content-Type: application/json' -d'
{
	"_source": ["contentType"],    
    "size": 50,
    "query": {
        "match_all": {}
    }
}'
BASH


Güncelleme (Update)

Dokümanı Güncelleme

curl -X PUT "<ELASTICSEARCH_IP>:9200/<INDEX_KEY>/doc/1?pretty&pretty" -H 'Content-Type: application/json' -d'
{
  "name": "John Doe"
}'
BASH


 Belirlenen Alanlardan Spesifik Bir Elementi Silme

curl -X POST "<ELASTICSEARCH_IP>:9200/_update_by_query?pretty" -H 'Content-Type: application/json' -d'
{
  "script" : 
	"ctx._source.headerRequestFromClient.remove('header-name-1');
	 ctx._source.headerRequestToTarget.remove('header-name-2');",
  "query": { "match_all": {} }
}
BASH

Replica Sayısı Ayarlama

 curl -X PUT "<ELASTICSEARCH_IP>:9200/_template/template_genel?pretty" -H 'Content-Type: application/json' -d'
{
  "index_patterns": ["*log*", "*metric*", "*db*"],
  "settings": {
    "number_of_shards": 1,
	"number_of_replicas": 0
  } 
}
'  
BASH
curl -XPUT '<ELASTICSEARCH_IP>:9200/*/_settings' -H 'Content-Type: application/json' -d'
{
	"index" : {            
		"number_of_replicas" : 0
	}    
}'
BASH

Shard Allocation

curl -X PUT "<ELASTICSEARCH_IP>:9200/_cluster/settings" -H 'Content-Type: application/json' -d'
{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"
    }
}'
BASH

Shard Limiti Arttırma

curl -X PUT "http://<ELASTICSEARCH_IP>:9200/_cluster/settings" -H 'Content-Type: application/json' -d'{
  "persistent" : {
    "cluster.routing.allocation.total_shards_per_node" : 2000 ,
    "cluster.max_shards_per_node":2000
  }
}'
BASH

Log Seviyesi Değiştirme

curl -X PUT "<ELASTICSEARCH_IP>:9200/_cluster/settings" -H 'Content-Type: application/json' -d'{"transient":{"logger._root":"DEBUG"}}'
curl -X PUT "<ELASTICSEARCH_IP>:9200/_cluster/settings" -H 'Content-Type: application/json' -d'{"transient":{"logger._root":"INFO"}}'
BASH


ShowLog Ayarları

curl -X PUT "<ELASTICSEARCH_IP>:9200/*log*/_settings?pretty" -H 'Content-Type: application/json' -d'
{
    "index.search.slowlog.threshold.fetch.trace": "200ms",
    "index.search.slowlog.level": "trace"
}'
BASH

Elasticsearch Shard ve Replikasyon Yönetimi

Shard Tahsisini Etkinleştirme:

curl -XPUT '<ELASTICSEARCH_IP>:9200/_cluster/settings' -d '{
    "transient" : {
        "cluster.routing.allocation.enable" : "all"
    }
}' --header 'Content-Type:application/json'
BASH

Başarısız Shard'ları Yeniden Deneme:

curl -XPOST '<ELASTICSEARCH_IP>:9200/_cluster/reroute?retry_failed'  --header 'Content-Type:application/json'
BASH

Küme Tahsis Açıklamasını Sorgulama:

curl -XGET '<ELASTICSEARCH_IP>:9200/_cluster/allocation/explain?pretty'
BASH

İndeks Replikasyon Ayarlarını Güncelleme:

curl -XPUT '<ELASTICSEARCH_IP>:9200/_settings' -d '
{
    "index" : {
        "number_of_replicas" : 0
    }
}'  --header 'Content-Type:application/json'
BASH

Diğer

_cat APIs

curl -X GET "<ELASTICSEARCH_IP>:9200/_cat/indices/*?v&s=index&pretty"

curl -X GET "<ELASTICSEARCH_IP>:9200/_cat/thread_pool?v&h=id,node_name,ip,name,core,queue,rejected,completed,max"
BASH

_nodes APIs

curl -X GET "<ELASTICSEARCH_IP>:9200/_nodes/os?pretty"

curl -X GET "<ELASTICSEARCH_IP>:9200/_nodes/jvm?pretty"

curl -X GET "<ELASTICSEARCH_IP>:9200/_nodes/thread_pool?pretty"

curl -X GET "<ELASTICSEARCH_IP>:9200/_nodes/stats/process?filter_path=**.max_file_descriptors"
BASH

_cluster APIs

curl -X GET "<ELASTICSEARCH_IP>:9200/_cluster/stats?pretty"

curl -XGET '<ELASTICSEARCH_IP>:9200/_cluster/state?pretty=true' > result.json
BASH

Flush

curl -X POST "<ELASTICSEARCH_IP>:9200/*log*/_flush/synced?pretty"
BASH

Log yazım engelinin kaldırılması

curl -XPUT 'http://<ELASTICSEARCH_IP>:9200/*log*/_settings' -H 'Content-Type: application/json' -d'{"index": {"blocks": {"read_only_allow_delete": null}}}'
BASH


Snapshota ait genel bilgiler

curl 'http://<ELASTICSEARCH_IP>:9200/_snapshot?pretty'
BASH


Repository ve snapshot detayları

curl 'http://<ELASTICSEARCH_IP>:9200/_slm/policy/apinizer-slm-policy-<INDEX_KEY>?pretty' 
BASH


Önceki komuttan alınan repository ve snapshot isimleri ile detaylı inceleme

curl -XGET "http://<ELASTICSEARCH_IP>:9200/_snapshot/apinizer-repository-<INDEX_KEY>/apinizer-snapshot-<INDEX_KEY>-2023.03.13-m33h8zcpq_if4swyzn0wrq?pretty"

curl -XGET "http://<ELASTICSEARCH_IP>:9200/_snapshot/apinizer-repository-<INDEX_KEY>/apinizer-snapshot-<INDEX_KEY>-2023.03.13-m33h8zcpq_if4swyzn0wrq/_status?pretty"
BASH


Snapshot ile ilgili tüm ayarların silinmesi

curl -XDELETE 'http://<ELASTICSEARCH_IP>:9200/_snapshot/apinizer-repository-<INDEX_KEY>?pretty'
BASH