Elasticsearch Sık Kullanılan Komutlar
İ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