Manuel ILM Politikası ve Template Oluşturma
uyarı
Eğer log yönetimi Apinizer üzerinden yapılacaksa bu işlemlerin yapılmasına gerek yoktur, bu işlemler Apinizer tarafından otomatik olarak yapılmaktadır.
Değişkenler
İstekler yer alan dinamik değerler ve açıklamaları aşağıdaki tabloda görülmektedir.
| Değişken | Açıklaması |
|---|---|
<ELASTICSEARCH_IP_ADDRESS> | Elasticsearch cluster'ının host bilgisidir. |
<ELASTICSEARCH_PORT> | Elasticsearch cluster'ının port bilgisidir. |
<INDEX_KEY> | Index'in benzersiz tanımlayıcısıdır. |
<INDEX_PATTERN_NAME> | Index pattern adıdır. Index adının sonuna * eklenir (örn: apinizer-log-apiproxy-default*). |
<ILM_POLICY_NAME> | ILM politikası adıdır (örn: apinizer-log-ilm-policy-default). |
<NUMBER_OF_SHARDS> | Index'in shard sayısıdır (Apinizer varsayılanı: 1). |
<NUMBER_OF_REPLICAS> | Index'in replica sayısıdır (Apinizer varsayılanı: 0). |
<REFRESH_INTERVAL> | Index refresh aralığıdır (Apinizer varsayılanı: 5s). |
<LOAD_FIXED_BITSET_FILTERS_EAGERLY> | index.load_fixed_bitset_filters_eagerly ayarıdır (Apinizer varsayılanı: true). |
ILM Politikaları Oluşturma
apinizer-log-ilm-policy-default adlı ILM Politikası Oluşturma İsteği
curl -XPUT "http://<ELASTICSEARCH_IP_ADDRESS>:<ELASTICSEARCH_PORT>/_ilm/policy/apinizer-log-ilm-policy-<INDEX_KEY>" \
-H 'Content-Type: application/json' \
--data-binary @- <<'EOF'
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {
"rollover": {
"max_age": "30d",
"max_size": "30gb",
"max_docs": 15000000
},
"set_priority": {
"priority": null
}
}
},
"warm": {
"actions": {
"readonly": {},
"allocate": {
"number_of_replicas": 0,
"include": {},
"exclude": {}
},
"shrink": {
"number_of_shards": 1
},
"forcemerge": {
"max_num_segments": 1
},
"set_priority": {
"priority": null
}
}
},
"cold": {
"min_age": "90d",
"actions": {
"set_priority": {
"priority": null
}
}
}
}
}
}
EOF
Template Oluşturma
apinizer-log-apiproxy-template-default adlı Template Oluşturma İsteği
curl -X PUT "http://<ELASTICSEARCH_IP_ADDRESS>:<ELASTICSEARCH_PORT>/_index_template/apinizer-log-apiproxy-template-<INDEX_KEY>" \
-H 'Content-Type: application/json' \
--data-binary @- <<'EOF'
{
"index_patterns": ["<INDEX_PATTERN_NAME>"],
"data_stream": {},
"template": {
"settings": {
"index": {
"lifecycle": {
"name": "<ILM_POLICY_NAME>"
},
"number_of_shards": "<NUMBER_OF_SHARDS>",
"number_of_replicas": "<NUMBER_OF_REPLICAS>",
"refresh_interval": "<REFRESH_INTERVAL>",
"load_fixed_bitset_filters_eagerly": "<LOAD_FIXED_BITSET_FILTERS_EAGERLY>"
}
},
"mappings": {
"properties": {
"aprp": {
"type": "keyword"
},
"fcrb": {
"type": "text"
},
"hr1ru": {
"type": "keyword"
},
"aci": {
"type": "keyword"
},
"subi": {
"type": "keyword"
},
"subp": {
"type": "keyword"
},
"subpl": {
"type": "keyword"
},
"subo": {
"type": "keyword"
},
"ack": {
"type": "keyword"
},
"cot": {
"type": "keyword"
},
"coi": {
"type": "keyword"
},
"coo": {
"type": "keyword"
},
"usub": {
"type": "keyword",
"ignore_above": 256
},
"uids": {
"type": "keyword",
"ignore_above": 256
},
"ocid": {
"type": "keyword",
"ignore_above": 256
},
"mcprc": {
"type": "keyword"
},
"mcpap": {
"type": "keyword"
},
"tapt": {
"type": "integer"
},
"trqpt": {
"type": "integer"
},
"trspt": {
"type": "integer"
},
"hr1rp": {
"type": "keyword"
},
"uok": {
"ignore_above": 50,
"type": "keyword"
},
"sr2t": {
"type": "integer"
},
"fcrp": {
"type": "nested",
"properties": {
"k": {
"type": "keyword"
},
"v": {
"type": "keyword"
}
}
},
"api": {
"type": "keyword"
},
"appi": {
"type": "keyword"
},
"appin": {
"type": "keyword"
},
"fcrh": {
"type": "nested",
"properties": {
"k": {
"type": "keyword"
},
"v": {
"type": "keyword"
}
}
},
"apn": {
"type": "keyword"
},
"pet": {
"ignore_above": 75,
"type": "keyword"
},
"apr": {
"type": "short"
},
"tbah": {
"type": "nested",
"properties": {
"k": {
"type": "keyword"
},
"v": {
"type": "keyword"
}
}
},
"ei": {
"type": "keyword"
},
"apmi": {
"type": "keyword"
},
"hr1qs": {
"type": "keyword"
},
"tbap": {
"type": "nested",
"properties": {
"k": {
"type": "keyword"
},
"v": {
"type": "keyword"
}
}
},
"ra": {
"type": "keyword"
},
"et": {
"ignore_above": 75,
"type": "keyword"
},
"tba": {
"type": "text"
},
"hr1rh": {
"type": "keyword"
},
"trt": {
"type": "integer"
},
"rrc": {
"type": "integer"
},
"rfc": {
"type": "integer"
},
"icr": {
"type": "boolean"
},
"crs": {
"type": "keyword"
},
"mc": {
"type": "integer"
},
"msc": {
"type": "integer"
},
"mfc": {
"type": "integer"
},
"mtd": {
"type": "long"
},
"ma": {
"type": "keyword"
},
"sr1t": {
"type": "integer"
},
"hr1ra": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
}
}
},
"loc": {
"type": "geo_point"
},
"xff": {
"type": "keyword"
},
"apmn": {
"type": "keyword"
},
"hr1hm": {
"ignore_above": 50,
"type": "keyword"
},
"rt": {
"ignore_above": 7,
"type": "keyword"
},
"hr1lp": {
"type": "keyword"
},
"hr1ln": {
"type": "keyword"
},
"hr1pi": {
"type": "keyword"
},
"sc": {
"type": "short"
},
"fbarh": {
"type": "nested",
"properties": {
"k": {
"type": "keyword"
},
"v": {
"type": "keyword"
}
}
},
"tcb": {
"type": "text"
},
"hr1rsi": {
"type": "keyword"
},
"tch": {
"type": "nested",
"properties": {
"k": {
"type": "keyword"
},
"v": {
"type": "keyword"
}
}
},
"eat": {
"type": "keyword"
},
"hr1r1u": {
"type": "keyword"
},
"hr1p": {
"type": "keyword"
},
"hr1s": {
"type": "keyword"
},
"fbarb": {
"type": "text"
},
"@timestamp": {
"format": "yyyy-MM-dd'T'HH:mm:ss.S'Z'||yyyy-MM-dd'T'HH:mm:ss.SS'Z'||yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
"type": "date"
},
"ch": {
"type": "boolean"
},
"hr1ce": {
"type": "keyword"
},
"hr1sp": {
"type": "keyword"
},
"hr1sn": {
"type": "keyword"
},
"hr1la": {
"type": "keyword"
},
"hr1ct": {
"ignore_above": 50,
"type": "keyword"
},
"pi": {
"type": "keyword"
},
"hr1cp": {
"type": "keyword"
},
"hr1cl": {
"type": "keyword"
},
"aip": {
"type": "keyword"
},
"aipid": {
"type": "keyword"
},
"aivs": {
"type": "keyword"
},
"aim": {
"type": "keyword"
},
"aiti": {
"type": "long"
},
"aito": {
"type": "long"
},
"aitc": {
"type": "long"
},
"aicm": {
"type": "long"
},
"aicim": {
"type": "long"
},
"aicom": {
"type": "long"
},
"aiccm": {
"type": "long"
},
"aittft": {
"type": "long"
},
"aitpot": {
"type": "long"
},
"ailat": {
"type": "long"
},
"aisch": {
"type": "boolean"
},
"aigh": {
"type": "keyword"
},
"aigc": {
"type": "keyword"
},
"aigv": {
"type": "keyword"
},
"aircl": {
"type": "keyword"
},
"aircs": {
"type": "keyword"
},
"aircms": {
"type": "long"
},
"aircti": {
"type": "long"
},
"aircto": {
"type": "long"
},
"airccm": {
"type": "long"
},
"aipd": {
"type": "boolean"
},
"aifr": {
"type": "keyword"
},
"aistr": {
"type": "boolean"
},
"aivk": {
"type": "keyword"
},
"aitid": {
"type": "keyword"
},
"aiff": {
"type": "keyword"
},
"aiqsc": {
"type": "integer"
},
"aiqao": {
"type": "boolean"
},
"aidt": {
"type": "keyword"
},
"aigtms": {
"type": "long"
},
"aiinf": {
"type": "long"
},
"aiovh": {
"type": "long"
},
"mcptn": {
"type": "keyword"
},
"mcpjrid": {
"type": "keyword"
},
"mcptno": {
"ignore_above": 256,
"type": "keyword"
},
"mcptco": {
"type": "integer"
},
"a2atk": {
"type": "keyword"
},
"a2act": {
"type": "keyword"
},
"a2ats": {
"type": "keyword"
},
"a2asno": {
"ignore_above": 256,
"type": "keyword"
},
"a2aaco": {
"type": "integer"
},
"afr": { "type": "keyword", "ignore_above": 256 },
"rfr": { "type": "keyword" },
"rco": { "type": "keyword" },
"rec": { "type": "keyword" },
"red": { "type": "keyword", "ignore_above": 256 },
"rdsel": { "type": "long" },
"rddns": { "type": "long" },
"rdtcp": { "type": "long" },
"rdtls": { "type": "long" },
"rdttfb": { "type": "long" },
"rdbrd": { "type": "long" },
"rdpw": { "type": "long" },
"usc": { "type": "short" },
"uip": { "type": "keyword" },
"crf": { "type": "boolean" },
"rtr": { "type": "boolean" },
"gw": { "type": "keyword" },
"pll": { "type": "short" },
"plp": { "type": "short" },
"pla": { "type": "short" },
"plm": { "type": "short" },
"cct": { "type": "integer" },
"crt": { "type": "integer" },
"ccrt": { "type": "integer" },
"cwms": { "type": "integer" },
"cr": { "type": "keyword" },
"cl": { "type": "keyword" },
"pxt": {
"type": "nested",
"properties": {
"o": { "type": "integer" },
"t": { "type": "keyword" },
"d": { "type": "integer" },
"f": { "type": "keyword", "ignore_above": 1 }
}
}
}
}
}
}
EOF
Template Veri Yapısı Tablosu
| Alan Adı | Alanda Tutulan Veri/Açıklaması | Java Mapping Type | Elastic Search Mapping Type |
|---|---|---|---|
@timestamp | Time Stamp | Instant | date format: yyyy-MM-dd'T'HH:mm:ss.S'Z' yyyy-MM-dd'T'HH:mm:ss.SS'Z' yyyy-MM-dd'T'HH:mm:ss.SSS'Z' |
aci | Apinizer Correlation ID | String | keyword |
ei | Environment ID | String | keyword |
pi | Project ID | String | keyword |
appi | Application ID | String | keyword |
appin | Application Name | String | keyword |
api | API Proxy ID | String | keyword |
apn | API Proxy Name | String | keyword |
eat | API Type | Enum | keyword |
aprp | API Proxy Relative Path | String | keyword |
apmi | API Proxy Method ID | String | keyword |
apmn | API Proxy Method Name | String | keyword |
xff | X Forwarded For | String | keyword |
hr1ra | HTTP Request Remote Address | String | text, keyword |
hr1hm | HTTP Request HTTP Method | String | keyword ignore_above: 50 |
hr1ct | HTTP Request Content Type | String | keyword ignore_above: 50 |
hr1pi | HTTP Request Path Info | String | keyword |
uok | Username or Key | String | keyword ignore_above: 50 |
ack | API Client Key | String | keyword |
cot | Client Owner Type | String | keyword |
coi | Client Owner Id | String | keyword |
coo | Client Organization Id | String | keyword |
hr1cp | HTTP Request Context Path | String | keyword |
hr1qs | HTTP Request Query String | String | keyword |
hr1ru | HTTP Request Remote User | String | keyword |
hr1rsi | HTTP Request Requested SessionID | String | keyword |
hr1r1u | HTTP Request Request URI | String | keyword |
hr1ce | HTTP Request Character Encoding | String | keyword |
hr1cl | HTTP Request Content Length | String | keyword |
hr1p | HTTP Request Protocol | String | keyword |
hr1s | HTTP Request Scheme | String | keyword |
hr1sn | HTTP Request Server Name | String | keyword |
hr1sp | HTTP Request Server Port | String | keyword |
loc | Location | GeoLocation{ Double lat, Double lon } | geo_point |
hr1rh | HTTP Request Remote Host | String | keyword |
hr1rp | HTTP Request Remote Port | String | keyword |
hr1ln | HTTP Request Local Name | String | keyword |
hr1la | HTTP Request Local Addr | String | keyword |
hr1lp | HTTP Request Local Port | String | keyword |
trqpt | Time Request Pipeline Total | Integer | integer |
trspt | Time Response Pipeline Total | Integer | integer |
rrc | Routing Retry Count | Integer | integer |
rfc | Routing Failover Count | Integer | integer |
trt | Time Routing Total | Integer | integer |
tapt | Time API Proxy Total | Integer | integer |
ch | Cache Hit | Boolean | boolean |
sr1t | Size Request Total | Integer | integer |
sr2t | Size Response Total | Integer | integer |
sc | Status Code | int | short |
rt | Result Type | Enum | keyword ignore_above: 7 |
et | Error Type | Enum | keyword ignore_above: 75 |
pet | Parent Error Type | Enum | keyword ignore_above: 75 |
afr | Authentication Failure Reason | Enum | keyword ignore_above: 256 |
fcrp | From Client Read Only Parameter | Map<String,String> | nested k: keyword v: keyword |
fcrh | From Client Read Only Header | Map<String,String> | nested k: keyword v: keyword |
fcrb | From Client Read Only Body | String | text |
tbap | To Backend API Parameter | Map<String,String> | nested k: keyword v: keyword |
tbah | To Backend API Header | Map<String,String> | nested k: keyword v: keyword |
tba | To Backend API Body | String | text |
fbarh | From Backend API Read Only Header | Map<String,String> | nested k: keyword v: keyword |
fbarb | From Backend API Read Only Body | String | text |
tch | To Client Header | Map<String,String> | nested k: keyword v: keyword |
tcb | To Client Body | String | text |
pxt | Politika Çalışma Süreleri (yalnızca log hedefinde ayar açıkken yazılır) | List<PolicyExecutionTiming> | nested o: integer t: keyword d: integer f: keyword ignore_above: 1 |
usub | Kararlı kullanıcı kimliği: IdP token'ının sub değeri; client_credentials token'ında istemcinin kendisi | String | keyword ignore_above: 256 |
uids | IdP token'ının veren tarafı (iss); Apinizer'ın verdiği token için apinizer | String | keyword ignore_above: 256 |
ocid | Token'ın verildiği OAuth client'ı (azp, yoksa client_id) | String | keyword ignore_above: 256 |
subi | Abonelik ID'si | String | keyword |
subp | Abonelik ürün ID'si | String | keyword |
subpl | Abonelik plan ID'si | String | keyword |
subo | Aboneliğin tüketici organizasyon ID'si | String | keyword |
apr | API Proxy Revision | Integer | short |
ra | Routing Address | String | keyword |
icr | İsteğin canary isteği olarak yönlendirilip yönlendirilmediği | Boolean | boolean |
crs | Canary yönlendirme durumu | Enum | keyword |
mc | Gönderilen mirror isteği sayısı | Integer | integer |
msc | Başarılı mirror isteği sayısı | Integer | integer |
mfc | Başarısız mirror isteği sayısı | Integer | integer |
mtd | Mirror isteklerinin toplam süresi | Long | long |
ma | Mirror adresleri | List<String> | keyword |
rfr | Yönlendirme hatası nedeni | String | keyword |
rco | Hata nedeninin güvenilirliği (HIGH, MEDIUM, LOW) | String | keyword |
rec | Exception sınıf adı | String | keyword |
red | Temizlenmiş ve kısaltılmış exception mesajı | String | keyword ignore_above: 256 |
rdsel | Upstream seçim süresi (ns) | Long | long |
rddns | DNS çözümleme süresi (ns) | Long | long |
rdtcp | TCP bağlantı süresi (ns) | Long | long |
rdtls | TLS handshake süresi (ns) | Long | long |
rdttfb | İlk byte'a kadar geçen süre (ns); yanıt yoksa -1 | Long | long |
rdbrd | Yanıt body okuma süresi (ns) | Long | long |
rdpw | Havuzdan bağlantı beklerken geçen süre (ns) | Long | long |
usc | Backend'in döndürdüğü ham durum kodu (istemciye dönenden ayrıdır) | Short | short |
uip | Gerçekte bağlanılan upstream ip:port | String | keyword |
crf | Havuzdaki bağlantının yeniden kullanılıp kullanılmadığı | Boolean | boolean |
rtr | İsteğin yanıt veren bir backend'e ulaşıp ulaşmadığı | Boolean | boolean |
gw | İsteği işleyen worker pod/host | String | keyword |
pll | Havuzda kullanımda olan bağlantı sayısı | Short | short |
plp | Havuzda bekleyen bağlantı isteği sayısı | Short | short |
pla | Havuzda boştaki bağlantı sayısı | Short | short |
plm | Havuzdaki en fazla bağlantı sayısı | Short | short |
cct | Yapılandırılmış bağlantı zaman aşımı (ms) | Integer | integer |
crt | Yapılandırılmış okuma zaman aşımı (ms) | Integer | integer |
ccrt | Yapılandırılmış bağlantı isteği (havuz) zaman aşımı (ms) | Integer | integer |
cwms | Yanıtı istemciye yazma süresi (ms); streaming yanıtlarda -1 | Integer | integer |
mcptn | İstekle çağrılan MCP tool'unun adı | String | keyword |
mcpjrid | JSON-RPC korelasyon ID'si | String | keyword |
mcprc | Bir tools/call sonuç sınıfı: OK, TOOL_ERROR, JSONRPC_ERROR, TRANSPORT, POLICY_REJECT | String | keyword |
mcpap | Onay için bekletilen bir tools/call çağrısının onay durumu | String | keyword |
mcptno | İstek boyunca çağrılan giden MCP tool'larının virgülle ayrılmış benzersiz adları (256 karakterde kesilir, ,… ile işaretlenir) | String | keyword ignore_above: 256 |
mcptco | İstek boyunca yapılan toplam giden tool çağrısı sayısı | Integer | integer |
a2atk | A2A görev ID'si | String | keyword |
a2act | A2A bağlam ID'si (çok turlu korelasyon) | String | keyword |
a2ats | A2A görevinin son durumu, örneğin COMPLETED veya FAILED | String | keyword |
a2asno | İstek boyunca çağrılan giden agent skill'lerinin virgülle ayrılmış benzersiz adları (256 karakterde kesilir) | String | keyword ignore_above: 256 |
a2aaco | İstek boyunca yapılan toplam giden agent çağrısı sayısı | Integer | integer |
aip | LLM sağlayıcı tipi (örneğin openai, anthropic) | String | keyword |
aipid | İsteği karşılayan LLM sağlayıcı kaydının ID'si | String | keyword |
aim | Model adı | String | keyword |
aidt | Dağıtım tipi: CLOUD, ON_PREM veya OTHER | String | keyword |
aiti | Prompt (girdi) token sayısı | Long | long |
aito | Completion (çıktı) token sayısı | Long | long |
aitc | Önbellekten gelen prompt token sayısı | Long | long |
aicm | Mikro USD cinsinden maliyet (maliyet × 1.000.000) | Long | long |
aicim | Girdi token maliyeti (mikro USD) | Long | long |
aicom | Çıktı token maliyeti (mikro USD) | Long | long |
aiccm | Önbellek token maliyeti (mikro USD) | Long | long |
aittft | İlk token'a kadar geçen süre (ms) | Long | long |
aitpot | Çıktı token'ı başına ortalama süre (ms) | Long | long |
ailat | Toplam gecikme (ms) | Long | long |
aigtms | Guardrail aşamasının toplam süresi (ms) | Long | long |
aiinf | Upstream LLM HTTP gecikmesi (ms) | Long | long |
aiovh | Gateway ek yükü: toplam eksi guardrail eksi inference (ms) | Long | long |
aisch | Semantic cache'in isabet verip vermediği | Boolean | boolean |
aigh | Tetiklenen guard | String | keyword |
aigc | Tetiklenen kuralın kategorisi | String | keyword |
aigv | Dış guardrail'in kararı: SAFE, UNSAFE, TIMEOUT, ERROR veya SKIP | String | keyword |
aipd | PII tespit edilip edilmediği | Boolean | boolean |
aifr | Bitiş nedeni (stop, length, tool_use, content_filter) | String | keyword |
aistr | Yanıtın streaming olup olmadığı | Boolean | boolean |
aivk | Kimliği doğrulanmış çağıranın kimliği (principal; kayıt ID'si değildir) | String | keyword |
aitid | AI trace kaydı referansı | String | keyword |
aiff | Failover yapılan birincil sağlayıcı | String | keyword |
aiqsc | Aşılan yumuşak limit yüzdesi (örneğin 80) | Integer | integer |
aiqao | ALERT_ONLY taşma eyleminin tetiklenip isteğin devam edip etmediği | Boolean | boolean |
aircl | Route classifier'ın döndürdüğü etiket | String | keyword |
aircs | Route classifier sonucu: MATCHED, NONE, UNKNOWN_LABEL, TIMEOUT, ERROR, TRUNCATED, BACKOFF, NO_PROVIDER veya NO_INPUT | String | keyword |
aircms | Route classifier çağrı gecikmesi (ms) | Long | long |
aircti | Route classifier prompt token sayısı | Long | long |
aircto | Route classifier completion token sayısı | Long | long |
airccm | Route classifier maliyeti (mikro USD; aicm içinde değildir) | Long | long |
aivs | İsteğin vektör katmanı olmadan neden devam ettiği (RAG, semantic cache veya Topic Guard) | String | keyword |
cr | Log politikası kaydının alındığı pipeline konumu (FROM_CLIENT, TO_BACKEND, FROM_BACKEND, TO_CLIENT); yalnız Log politikası kayıtlarında yazılır | Enum | keyword |
cl | Log politikasının atama seviyesi (API_PROXY_GROUP, API_PROXY, API_PROXY_METHOD); yalnız Log politikası kayıtlarında yazılır | Enum | keyword |
bilgi
Bu veri yapısında oluşan veri örneğini API Trafiği Log Kaydı Veri Yapısı sayfasında inceleyebilirsiniz.
Indeks Oluşturma ve Sorgulama
Data stream ile indeks oluşurken ya da sorgulama yapılırken, istekler template'in içerisinde yer alan index_patterns meta verisi içerindeki değere gönderilir.
Indeks Oluşturma
curl -XPOST "http://<ELASTICSEARCH_IP_ADDRESS>:<ELASTICSEARCH_PORT>/apinizer-log-apiproxy-<INDEX_KEY>/_doc" -H 'Content-Type: application/json' -d'{"@timestamp": "2023-05-31T11:40:36.376Z"}'
Sorgu Çalıştırma
curl -XGET "http://<ELASTICSEARCH_IP_ADDRESS>:<ELASTICSEARCH_PORT>/apinizer-log-apiproxy-<INDEX_KEY>/_search" \
-H 'Content-Type: application/json' \
--data-binary @- <<'EOF'
{
"from": 0,
"size": 10,
"query": {
"bool": {
"filter": [
{
"range": {
"@timestamp": {
"from": "now-10m/m",
"to": "now/m",
"include_lower": true,
"include_upper": true
}
}
}
],
"adjust_pure_negative": true,
"boost": 1
}
},
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}
EOF
bilgi
Bu sayfadaki şablon API trafik logu içindir. SIEM hedeflerinin index şablonları farklıdır: SIEM Hedefleri için Elasticsearch Index Şablonları sayfasına bakabilirsiniz.