HEC kodu, kullanıldığı sisteme göre farklı anlamlara gelebilen teknik bir terimdir. Log yönetimi ve Splunk tarafında HEC, HTTP Event Collector anlamına gelir ve uygulamaların HTTP veya HTTPS üzerinden merkezi log sistemine veri göndermesini sağlayan token tabanlı bir yapıdır.
Ancak HEC terimi ağ teknolojilerinde Header Error Control anlamında da kullanılır. Ayrıca bazı kullanıcılar “HEC kodu” ifadesini HEX renk kodu veya alan adı transferinde kullanılan EPP/Auth Code ile karıştırabilmektedir.
Bu rehberde HEC kavramlarının farklarını açıklayacak, özellikle Splunk HTTP Event Collector tarafında HEC token'ın ne işe yaradığını, nasıl çalıştığını ve nasıl güvenli şekilde kullanılabileceğini ele alacağız.
“HEC kodu nedir?” sorusunun doğru cevabı, terimin nerede görüldüğüne bağlıdır.
| Terim | Kullanıldığı Alan | Anlamı |
|---|---|---|
| HEC Token | Splunk ve log yönetimi | HTTP Event Collector kimlik doğrulama token'ı |
| HEC | Ağ teknolojileri | Header Error Control |
| HEX | Web tasarım ve yazılım | Hexadecimal renk veya sayı gösterimi |
| EPP / Auth Code | Alan adı yönetimi | Domain transfer yetkilendirme kodu |
Bir uygulama, API, log sunucusu veya Splunk yapılandırması içerisinde HEC görüyorsanız büyük ihtimalle HTTP Event Collector kastedilmektedir.
ATM veya telekomünikasyon dokümanlarında görüyorsanız HEC, Header Error Control anlamına gelebilir.
Alan adı transfer işlemi gerçekleştiriyorsanız aradığınız kod ise HEC değil, genellikle EPP Code, Auth Code veya transfer kodudur.
HEC token, Splunk HTTP Event Collector üzerinden veri gönderen uygulamaların kimliğini doğrulamak için kullanılan bir erişim anahtarıdır.
HTTP Event Collector sayesinde uygulamalar ve servisler, ayrı bir Splunk Forwarder kullanmak zorunda kalmadan HTTP veya HTTPS üzerinden Splunk ortamına olay ve veri gönderebilir.
Bir uygulama HEC endpoint'ine istek gönderirken kendisine atanmış token'ı kullanır. Splunk bu token üzerinden isteğin yetkili bir kaynaktan gelip gelmediğini kontrol eder ve yapılandırmaya göre veriyi ilgili index'e aktarır.
Bu yöntem özellikle merkezi log yönetimi gereken modern altyapılarda kullanışlıdır.
HTTP Event Collector, farklı sistemlerde oluşan log ve olay verilerinin merkezi bir platformda toplanmasını sağlar.
Web sunucuları, uygulamalar, API servisleri, güvenlik sistemleri, container altyapıları ve çeşitli otomasyon araçları tarafından üretilen olaylar HEC üzerinden Splunk'a gönderilebilir.
Örneğin birden fazla VDS üzerinde çalışan uygulamanız olduğunu düşünelim. Her sunucudaki uygulama hata kayıtlarını ayrı ayrı incelemek yerine bu veriler HEC aracılığıyla merkezi bir sisteme gönderilebilir.
Böylece hata analizi, performans takibi ve güvenlik olaylarının incelenmesi daha kolay hale gelir.
HTTP Event Collector kullanıldığında temel veri akışı oldukça basittir.
Splunk üzerinde bir HTTP Event Collector input oluşturulur ve ilgili uygulama için HEC token üretilir.
Uygulama veya servis, log verisini JSON ya da desteklenen başka bir veri formatında hazırlar.
Veri HTTP veya HTTPS isteğiyle HEC endpoint'ine gönderilir.
İstek içerisinde HEC token kullanılarak kimlik doğrulaması yapılır.
Splunk isteği kabul ettiğinde olay verisini yapılandırılmış index ve sourcetype ayarlarına göre işler.
Bu yapı sayesinde uygulamaların Splunk kullanıcı adı ve parolası saklamasına gerek kalmadan veri gönderimi yapılabilir.
Splunk Enterprise veya desteklenen Splunk ortamlarında HEC token oluşturma işlemi HTTP Event Collector yapılandırması üzerinden gerçekleştirilir.
Token oluşturulurken özellikle token adı, kaynak türü, hedef index ve erişim kapsamı doğru belirlenmelidir.
Tek bir token'ı bütün uygulamalar için kullanmak yerine uygulama, servis veya ortam bazında farklı token'lar kullanmak yönetimi kolaylaştırabilir.
Örneğin production, staging ve development ortamlarının ayrı HEC token'larına sahip olması, erişim kontrolünü ve olayların izlenmesini kolaylaştırır.
Splunk sürümüne ve kullanılan platforma bağlı olarak arayüz ve kullanılabilir seçenekler farklılık gösterebileceği için kurulum sırasında ilgili Splunk sürümünün resmi dokümantasyonu kontrol edilmelidir.
HTTP Event Collector'a veri göndermek için HTTP istemcileri veya cURL gibi araçlar kullanılabilir.
Temel bir örnek aşağıdaki mantıkla çalışır:
curl -k \
https://splunk.example.com:8088/services/collector/event \
-H "Authorization: Splunk YOUR_HEC_TOKEN" \
-H "Content-Type: application/json" \
-d '{"event":{"message":"Web9 test log","status":"success"}}'
Buradaki YOUR_HEC_TOKEN bölümü gerçek HEC token'ınızla değiştirilmelidir.
Gerçek token'ların herkese açık kod depolarında, destek taleplerinde, ekran görüntülerinde veya uygulama kaynak kodunda paylaşılmaması önemlidir.
Üretim ortamında TLS sertifika doğrulamasını devre dışı bırakan -k seçeneğinin kalıcı çözüm olarak kullanılmaması ve geçerli TLS yapılandırmasının tercih edilmesi gerekir.
Splunk Enterprise HTTP Event Collector kurulumlarında yaygın olarak 8088 portu kullanılır.
Ancak reverse proxy, load balancer veya özel ağ mimarileri nedeniyle dışarıdan erişilen port farklı olabilir.
Bu nedenle “HEC her zaman 8088 portunda çalışır” şeklinde düşünmek doğru değildir. Gerçek endpoint ve port, kullanılan Splunk ortamının yapılandırmasına göre kontrol edilmelidir.
HEC endpoint, uygulamaların olay veya ham veri gönderdikleri HTTP/HTTPS adresidir.
Örneğin event protokolü kullanılan bir Splunk ortamında aşağıdakine benzer bir endpoint görülebilir:
https://splunk.example.com:8088/services/collector/event
Splunk ayrıca farklı veri gönderim senaryoları için farklı collector endpoint'leri sağlayabilir.
Hangi endpoint'in kullanılacağı gönderilen verinin türüne ve Splunk yapılandırmasına göre değişir.
HEC token bir erişim anahtarıdır. Bu nedenle kullanıcı adı veya API anahtarı gibi korunması gerekir.
Token'ın yetkisiz kişilerin eline geçmesi durumunda HEC endpoint'ine istenmeyen veri gönderilmeye çalışılabilir. Bu durum log bütünlüğünü bozabilir ve güvenlik analizlerinin güvenilirliğini etkileyebilir.
Bu nedenle HEC endpoint'lerinde HTTPS kullanılması, erişimin gerekli ağlarla sınırlandırılması, token'ların kaynak koduna gömülmemesi ve gerektiğinde hızlı şekilde iptal edilebilmesi önemlidir.
Token'ların uygulama veya servis bazında ayrılması da herhangi bir token'ın değiştirilmesi gerektiğinde diğer sistemlerin etkilenmesini azaltabilir.
Mümkünse hayır.
HEC token'ların doğrudan uygulama kaynak koduna yazılması önerilmez.
Bunun yerine environment variable, secret manager, container secret veya kurumun kullandığı güvenli kimlik bilgisi yönetim sistemi tercih edilebilir.
Özellikle herkese açık Git depolarına gönderilen bir HEC token güvenlik riski oluşturabilir.
Token'ın yanlışlıkla paylaşıldığından şüpheleniliyorsa eski token devre dışı bırakılmalı ve yeni bir token oluşturulmalıdır.
Teknik olarak yapılandırmaya bağlı olarak aynı HEC token üzerinden birden fazla kaynağın veri göndermesi mümkün olabilir.
Ancak büyük veya kritik altyapılarda servisleri birbirinden ayırmak daha yönetilebilir bir yapı sağlar.
Örneğin;
web-production, api-production, firewall ve monitoring sistemlerinin ayrı token'lara sahip olması, hangi kaynağın hangi veriyi gönderdiğinin anlaşılmasını kolaylaştırabilir.
Aynı yaklaşım production, staging ve development ortamlarının birbirinden ayrılmasında da kullanılabilir.
Bir HEC token'ın yetkisiz kişiler tarafından görüldüğünden şüpheleniliyorsa token aktif bırakılmamalıdır.
Öncelikle ilgili token devre dışı bırakılmalı veya değiştirilmelidir. Ardından yeni token uygulamada güvenli şekilde tanımlanmalıdır.
Eski token üzerinden gelen istekler de incelenerek beklenmeyen veri gönderimi veya kötüye kullanım olup olmadığı kontrol edilmelidir.
Token'ın nasıl sızdığı belirlenebiliyorsa aynı durumun tekrar yaşanmaması için kaynak kodu, CI/CD değişkenleri, loglar ve secret yönetimi de gözden geçirilmelidir.
HEC yalnızca HTTP Event Collector anlamına gelmez.
Ağ ve telekomünikasyon teknolojilerinde HEC, Header Error Control ifadesinin kısaltması olarak kullanılır.
Özellikle ATM hücre yapısında HEC alanı, başlık bilgisinde meydana gelebilecek hataların tespit edilmesine yardımcı olan hata kontrol mekanizmasının bir parçasıdır.
Bu nedenle bir ağ protokolü veya ATM dokümanında “HEC” görüyorsanız bunun Splunk HTTP Event Collector ile ilgisi olmayabilir.
Hayır.
HEC ile HEX birbirinden farklı terimlerdir.
HEX, hexadecimal yani 16 tabanlı sayı sisteminin kısaltmasıdır. Web tasarımında #FFFFFF, #000000 veya #2563EB gibi renk kodlarında sıkça görülür.
HEC ise bağlama göre HTTP Event Collector veya Header Error Control anlamına gelebilir.
Dolayısıyla web tasarımında bir renk değerini araştırıyorsanız aradığınız terim büyük ihtimalle “HEX kodu”dur.
Hayır.
Alan adı transferlerinde kullanılan kod genellikle EPP Code, Auth Code, Authorization Code veya domain transfer kodu olarak adlandırılır.
EPP, alan adının başka bir kayıt kuruluşuna taşınması sırasında yetkilendirme mekanizmasının bir parçası olarak kullanılır.
Bu nedenle alan adınızı başka bir firmaya transfer etmeye çalışırken “HEC kodu” arıyorsanız büyük ihtimalle aradığınız bilgi EPP/Auth Code'dur.
Web9 üzerinden alan adı transferi yapacaksanız alan adı transfer sayfasındaki işlem adımlarını takip edebilirsiniz.
HEC token da API key gibi bir kimlik doğrulama bilgisi olarak düşünülebilir ancak kullanım amacı daha özeldir.
HEC token temel olarak HTTP Event Collector üzerinden Splunk'a veri veya olay göndermek için kullanılır.
Genel amaçlı API key'ler ise kullanılan servise bağlı olarak veri okuma, yazma, yapılandırma değiştirme veya başka API işlemleri için farklı yetkilere sahip olabilir.
Bu nedenle HEC token'ın erişim kapsamı ve güvenlik politikaları kendi kullanım amacı doğrultusunda yönetilmelidir.
Sağlıklı bir HEC altyapısında yalnızca verinin Splunk'a ulaşması yeterli değildir.
Index, source, sourcetype, host ve environment gibi alanların tutarlı kullanılması daha sonra yapılacak arama ve analizleri önemli ölçüde kolaylaştırır.
Timestamp bilgilerinin doğru aktarılması da özellikle birden fazla sunucudan veri toplanırken kritik önem taşır.
Aynı zamanda başarısız HTTP isteklerinin, gecikmelerin ve veri gönderim problemlerinin izlenmesi gerekir. Yoğun trafik dönemlerinde log aktarımının kesilmesi, sorun yaşandığı anda ihtiyaç duyulan verilerin kaybolmasına neden olabilir.
Kullanıldığı yere göre değişir. Splunk tarafında HEC, HTTP Event Collector; bazı ağ teknolojilerinde ise Header Error Control anlamına gelir.
Uygulamaların ve servislerin HTTP Event Collector üzerinden Splunk'a veri gönderebilmesi için token tabanlı kimlik doğrulama sağlar.
Klasik kullanıcı parolası değildir ancak erişim sağlayan gizli bir kimlik bilgisi olduğu için parola veya API anahtarı kadar dikkatli korunmalıdır.
Splunk Enterprise'da HEC için yaygın olarak 8088 portu kullanılır. Ancak reverse proxy veya farklı bir ağ mimarisi kullanılıyorsa dışarıdan erişilen port değişebilir.
Zorunlu değildir ancak uygulama veya ortam bazında token ayrımı güvenlik, yönetilebilirlik ve hata takibi açısından fayda sağlayabilir.
Hayır. Syslog bir log mesajlaşma standardı ve aktarım yöntemidir. HEC ise Splunk'a HTTP veya HTTPS üzerinden veri göndermek için kullanılan HTTP tabanlı veri toplama mekanizmasıdır.
HEX hexadecimal sayı sistemini ifade eder. HEC ise HTTP Event Collector veya Header Error Control gibi farklı teknik kavramların kısaltmasıdır.
Genellikle hayır. Domain transfer işlemlerinde kullanılan yetkilendirme bilgisi EPP/Auth Code veya transfer kodu olarak adlandırılır.
HEC kodu ifadesinin doğru anlamı, terimin kullanıldığı sisteme göre belirlenmelidir.
Splunk ve merkezi log yönetimi tarafında HEC, HTTP Event Collector anlamına gelir. HEC token sayesinde uygulamalar HTTP veya HTTPS üzerinden merkezi Splunk ortamına veri gönderebilir.
Ağ teknolojilerinde ise HEC, Header Error Control anlamına gelebilir. HEX renk kodu ve alan adı transferlerinde kullanılan EPP/Auth Code ise HEC'ten farklı kavramlardır.
HEC kullanan bir altyapıda yalnızca bağlantının çalışmasına değil; token güvenliği, erişim kontrolü, TLS kullanımı, veri standardizasyonu ve izleme süreçlerine de dikkat edilmesi gerekir.