{"id":33180,"date":"2025-10-30T19:41:35","date_gmt":"2025-10-30T16:41:35","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=33180"},"modified":"2025-10-30T19:41:35","modified_gmt":"2025-10-30T16:41:35","slug":"elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/","title":{"rendered":"Elasticsearch&#8217;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Elasticsearch&#8217;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, b\u00fcy\u00fck hacimli verileri h\u0131zl\u0131 ve verimli bir \u015fekilde depolamak, aramak ve analiz etmek, i\u015fletmeler ve geli\u015ftiriciler i\u00e7in kritik bir ihtiya\u00e7 haline gelmi\u015ftir. Geleneksel veritabanlar\u0131 bu t\u00fcr g\u00f6revler i\u00e7in yetersiz kalabilirken, da\u011f\u0131t\u0131k arama motorlar\u0131 ve veri analizi \u00e7\u00f6z\u00fcmleri \u00f6ne \u00e7\u0131kmaktad\u0131r. \u0130\u015fte bu noktada Elasticsearch devreye girer. Elasticsearch, a\u00e7\u0131k kaynakl\u0131, da\u011f\u0131t\u0131k ve RESTful bir arama ve analiz motorudur. Metin, say\u0131sal, co\u011frafi ve yap\u0131land\u0131r\u0131lm\u0131\u015f t\u00fcm veri t\u00fcrlerini neredeyse ger\u00e7ek zamanl\u0131 olarak depolayabilir, arayabilir ve analiz edebilir.<\/p>\n<h4>Elasticsearch Nedir?<\/h4>\n<p>Elasticsearch, Apache Lucene \u00fczerine in\u015fa edilmi\u015f, JSON tabanl\u0131 bir RESTful API arac\u0131l\u0131\u011f\u0131yla eri\u015filebilen, \u00f6l\u00e7eklenebilir bir arama motorudur. Da\u011f\u0131t\u0131k mimarisi sayesinde yatay olarak \u00f6l\u00e7eklenebilir, yani veri hacmi artt\u0131k\u00e7a sisteme daha fazla d\u00fc\u011f\u00fcm ekleyerek performans\u0131n\u0131 art\u0131rabilirsiniz. Logstash ve Kibana ile birlikte Elastic Stack&#8217;in (\u00f6nceden ELK Stack olarak biliniyordu) temelini olu\u015fturur. Bu \u00fc\u00e7l\u00fc, log y\u00f6netimi, g\u00fcvenlik analizi, uygulama performans\u0131 izleme ve daha bir\u00e7ok kullan\u0131m senaryosunda g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<h4>Neden Elasticsearch Kullanmal\u0131y\u0131z?<\/h4>\n<p>Elasticsearch&#8217;\u00fc tercih etmek i\u00e7in bir\u00e7ok neden vard\u0131r:<\/p>\n<ul>\n<li><strong>H\u0131z:<\/strong> Neredeyse ger\u00e7ek zamanl\u0131 arama ve analiz yetenekleri sunar.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Da\u011f\u0131t\u0131k yap\u0131s\u0131 sayesinde kolayca yatay olarak \u00f6l\u00e7eklenebilir.<\/li>\n<li><strong>Esneklik:<\/strong> Yap\u0131land\u0131r\u0131lmam\u0131\u015f verilerle bile \u00e7al\u0131\u015fabilir ve farkl\u0131 veri t\u00fcrlerini destekler.<\/li>\n<li><strong>Zengin API:<\/strong> RESTful API&#8217;si sayesinde bir\u00e7ok programlama dili ve platform ile kolayca entegre edilebilir.<\/li>\n<li><strong>A\u00e7\u0131k Kaynak:<\/strong> Geni\u015f bir toplulu\u011fa ve s\u00fcrekli geli\u015fime sahiptir.<\/li>\n<li><strong>Veri Analizi:<\/strong> Agregasyon yetenekleri sayesinde karma\u015f\u0131k veri analizleri yapabilir ve g\u00f6rselle\u015ftirmeler i\u00e7in Kibana gibi ara\u00e7larla entegre olabilir.<\/li>\n<\/ul>\n<h4>Ubuntu 16.04 Neden Se\u00e7ildi?<\/h4>\n<p>Ubuntu 16.04 LTS (Xenial Xerus), uzun s\u00fcreli destek sa\u011flayan pop\u00fcler bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Kurumsal ortamlarda ve sunucularda yayg\u0131n olarak kullan\u0131lm\u0131\u015ft\u0131r. Her ne kadar art\u0131k resmi deste\u011fi sona ermi\u015f olsa da, bir\u00e7ok eski sistemde hala aktif olarak kullan\u0131lmaktad\u0131r. Bu makale, bu t\u00fcr sistemlerde Elasticsearch kurulumu ve yap\u0131land\u0131rmas\u0131 i\u00e7in ad\u0131m ad\u0131m bir rehber sunmay\u0131 ama\u00e7lamaktad\u0131r. Anlat\u0131lan temel prensipler, daha yeni Ubuntu s\u00fcr\u00fcmleri i\u00e7in de b\u00fcy\u00fck \u00f6l\u00e7\u00fcde ge\u00e7erli olacakt\u0131r, ancak paket ve Java s\u00fcr\u00fcmlerinde farkl\u0131l\u0131klar olabilir.<\/p>\n<h3>\u00d6nko\u015fullar<\/h3>\n<p>Elasticsearch&#8217;\u00fc Ubuntu 16.04 \u00fczerine kurmadan \u00f6nce, sisteminizin belirli gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan ve gerekli ba\u011f\u0131ml\u0131l\u0131klar\u0131n y\u00fckl\u00fc oldu\u011fundan emin olmal\u0131s\u0131n\u0131z.<\/p>\n<h4>Sistem Gereksinimleri<\/h4>\n<p>Elasticsearch, performansl\u0131 \u00e7al\u0131\u015fabilmek i\u00e7in belirli sistem kaynaklar\u0131na ihtiya\u00e7 duyar. Tek bir d\u00fc\u011f\u00fcm (node) i\u00e7in minimum gereksinimler \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>RAM:<\/strong> En az 2 GB RAM \u00f6nerilir, ancak \u00fcretim ortamlar\u0131 i\u00e7in 8 GB veya daha fazlas\u0131 tercih edilir. Elasticsearch, JVM belle\u011fi i\u00e7in sistem RAM&#8217;inin yakla\u015f\u0131k yar\u0131s\u0131n\u0131 kullan\u0131r.<\/li>\n<li><strong>CPU:<\/strong> En az 2 \u00e7ekirdekli bir CPU \u00f6nerilir.<\/li>\n<li><strong>Disk Alan\u0131:<\/strong> Depolayaca\u011f\u0131n\u0131z veri miktar\u0131na ba\u011fl\u0131d\u0131r. En az 10 GB bo\u015f alan ba\u015flang\u0131\u00e7 i\u00e7in yeterli olabilir, ancak \u00fcretimde terabaytlarca alan gerekebilir. SSD diskler, performans a\u00e7\u0131s\u0131ndan HDD&#8217;lere g\u00f6re \u00e7ok daha avantajl\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Bu makale, tek bir d\u00fc\u011f\u00fcm (single-node) kurulumuna odaklanacakt\u0131r. \u00dcretim ortamlar\u0131nda genellikle birden fazla d\u00fc\u011f\u00fcmle bir k\u00fcme (cluster) olu\u015fturulur.<\/p>\n<h4>Java Geli\u015ftirme Kiti (JDK) Kurulumu<\/h4>\n<p>Elasticsearch, Java sanal makinesi (JVM) \u00fczerinde \u00e7al\u0131\u015f\u0131r. Bu nedenle, sisteme uyumlu bir Java Geli\u015ftirme Kiti (JDK) kurulu olmas\u0131 zorunludur. Elasticsearch 5.x ve 6.x s\u00fcr\u00fcmleri genellikle Java 8 ile uyumludur. Ubuntu 16.04 deposunda OpenJDK 8 bulunur ve bu s\u00fcr\u00fcm Elasticsearch i\u00e7in idealdir.<\/p>\n<h5>Sistem Paket Listesini G\u00fcncelleme<\/h5>\n<p>Kuruluma ba\u015flamadan \u00f6nce, sisteminizin paket listesini g\u00fcncelleyerek en son paket bilgilerine sahip oldu\u011funuzdan emin olun:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<h5>OpenJDK 8 Kurulumu<\/h5>\n<p>\u015eimdi OpenJDK 8&#8217;i kurabiliriz:<\/p>\n<pre><code class=\"language-bash\">sudo apt install openjdk-8-jdk -y<\/code><\/pre>\n<h5>Java S\u00fcr\u00fcm\u00fcn\u00fc Do\u011frulama<\/h5>\n<p>Kurulum tamamland\u0131ktan sonra, Java&#8217;n\u0131n do\u011fru bir \u015fekilde kurulup kurulmad\u0131\u011f\u0131n\u0131 ve s\u00fcr\u00fcm\u00fcn\u00fc kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">java -version<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 a\u015fa\u011f\u0131daki gibi veya benzer bir \u015fey olmal\u0131d\u0131r, &#8220;1.8.0&#8221; ile ba\u015flayan bir s\u00fcr\u00fcm numaras\u0131n\u0131 g\u00f6stermelidir:<\/p>\n<pre><code class=\"language-text\">openjdk version \"1.8.0_...\"\nOpenJDK Runtime Environment (build 1.8.0_...-8u...)\nOpenJDK 64-Bit Server VM (build 25.xxx-bxx, mixed mode)<\/code><\/pre>\n<p>E\u011fer farkl\u0131 bir Java s\u00fcr\u00fcm\u00fc kuruluysa veya hi\u00e7 kurulu de\u011filse, yukar\u0131daki ad\u0131mlar\u0131 tekrarlay\u0131n ve Java&#8217;n\u0131n do\u011fru bir \u015fekilde kuruldu\u011fundan emin olun.<\/p>\n<h3>Elasticsearch Kurulumu<\/h3>\n<p>Elasticsearch&#8217;\u00fc Ubuntu 16.04 \u00fczerine kurman\u0131n en kolay ve \u00f6nerilen yolu, Elastic&#8217;in kendi APT deposunu kullanmakt\u0131r. Bu sayede hem en g\u00fcncel s\u00fcr\u00fcm\u00fc alabilir hem de gelecekteki g\u00fcncellemeleri kolayca y\u00f6netebilirsiniz.<\/p>\n<h4>Elasticsearch APT Deposunu Ekleme<\/h4>\n<p>Elasticsearch paketlerini indirmeden \u00f6nce, Elastic&#8217;in GPG anahtar\u0131n\u0131 sisteminize eklemeniz ve ard\u0131ndan APT deposunu yap\u0131land\u0131rman\u0131z gerekir.<\/p>\n<h5>GPG Anahtar\u0131n\u0131 \u0130ndirme ve Ekleme<\/h5>\n<p>Elasticsearch paketlerinin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc do\u011frulamak i\u00e7in Elastic&#8217;in genel anahtar\u0131n\u0131 indirin ve APT anahtar zincirinize ekleyin:<\/p>\n<pre><code class=\"language-bash\">wget -qO - https:\/\/artifacts.elastic.co\/GPG-KEY-elasticsearch | sudo apt-key add -<\/code><\/pre>\n<p>Bu komut, Elastic&#8217;in anahtar\u0131n\u0131 indirir ve <code>apt-key add<\/code> komutuyla sisteme ekler. Komutun ba\u015far\u0131l\u0131 oldu\u011funu belirten bir &#8220;OK&#8221; \u00e7\u0131kt\u0131s\u0131 g\u00f6rmelisiniz.<\/p>\n<h5>APT Deposunu Ekleme<\/h5>\n<p>\u015eimdi Elasticsearch deposunu sisteminizin kaynak listesine ekleyin. Ubuntu 16.04 i\u00e7in Elasticsearch 6.x serisini kurmak genellikle daha uygun olacakt\u0131r, zira 7.x ve \u00fczeri s\u00fcr\u00fcmler daha yeni Java versiyonlar\u0131 ve sistem gereksinimleri bekleyebilir. Bu makalede 6.x serisine odaklanaca\u011f\u0131z. Depo URL&#8217;si, kurmak istedi\u011finiz Elasticsearch s\u00fcr\u00fcm\u00fcne g\u00f6re de\u011fi\u015febilir. \u00d6rne\u011fin, 6.x serisi i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">echo \"deb https:\/\/artifacts.elastic.co\/packages\/6.x\/apt stable main\" | sudo tee -a \/etc\/apt\/sources.list.d\/elastic-6.x.list<\/code><\/pre>\n<p>Bu komut, <code>\/etc\/apt\/sources.list.d\/<\/code> dizini alt\u0131na <code>elastic-6.x.list<\/code> ad\u0131nda yeni bir dosya olu\u015fturur ve i\u00e7ine Elastic 6.x deposunun URL&#8217;sini yazar. Bu, APT&#8217;nin Elasticsearch paketlerini nereden bulaca\u011f\u0131n\u0131 bilmesini sa\u011flar.<\/p>\n<p><em>Not:<\/em> E\u011fer daha yeni bir s\u00fcr\u00fcm (\u00f6rne\u011fin 7.x) kurmak isterseniz, yukar\u0131daki komutta <code>6.x<\/code> yerine <code>7.x<\/code> yazman\u0131z ve Java 11 veya \u00fczeri kurman\u0131z gerekebilir.<\/p>\n<h4>Paket Listesini G\u00fcncelleme<\/h4>\n<p>Yeni depoyu ekledikten sonra, APT&#8217;nin yeni depodaki paket bilgilerini almas\u0131 i\u00e7in paket listesini tekrar g\u00fcncellemeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>Bu komut, Elastic deposundan Elasticsearch paket bilgilerini indirecektir.<\/p>\n<h4>Elasticsearch Paketini Kurma<\/h4>\n<p>Art\u0131k Elasticsearch paketini kurmaya haz\u0131rs\u0131n\u0131z. Belirli bir s\u00fcr\u00fcm\u00fc kurmak isterseniz, paket ad\u0131n\u0131n sonuna <code>=<s\u00fcr\u00fcm_numaras\u0131><\/code> ekleyebilirsiniz (\u00f6rne\u011fin <code>elasticsearch=6.8.23<\/code>). Aksi takdirde, depoda bulunan en son 6.x s\u00fcr\u00fcm\u00fc kurulacakt\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo apt install elasticsearch -y<\/code><\/pre>\n<p>Kurulum tamamland\u0131\u011f\u0131nda, Elasticsearch servisi otomatik olarak yap\u0131land\u0131r\u0131l\u0131r ve sisteminize y\u00fcklenir. Ancak hen\u00fcz ba\u015flat\u0131lmam\u0131\u015f olabilir.<\/p>\n<h3>Elasticsearch Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Elasticsearch kurulduktan sonra, ihtiya\u00e7lar\u0131n\u0131za g\u00f6re yap\u0131land\u0131rman\u0131z \u00f6nemlidir. Temel yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/elasticsearch\/elasticsearch.yml<\/code> konumunda bulunur. Ayr\u0131ca JVM bellek ayarlar\u0131 i\u00e7in <code>\/etc\/elasticsearch\/jvm.options<\/code> dosyas\u0131n\u0131 da d\u00fczenlemeniz gerekebilir. Yap\u0131land\u0131rma dosyas\u0131 YAML format\u0131ndad\u0131r, bu da girinti (indentation) konusunda dikkatli olman\u0131z gerekti\u011fi anlam\u0131na gelir.<\/p>\n<h4>Yap\u0131land\u0131rma Dosyas\u0131na Genel Bak\u0131\u015f (<code>\/etc\/elasticsearch\/elasticsearch.yml<\/code>)<\/h4>\n<p>Bu dosya, Elasticsearch d\u00fc\u011f\u00fcm\u00fcn\u00fcz\u00fcn temel davran\u0131\u015flar\u0131n\u0131 tan\u0131mlar. Bir metin d\u00fczenleyici (\u00f6rne\u011fin <code>nano<\/code> veya <code>vim<\/code>) kullanarak dosyay\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/elasticsearch\/elasticsearch.yml<\/code><\/pre>\n<p>Dosyay\u0131 a\u00e7t\u0131\u011f\u0131n\u0131zda bir\u00e7ok yorum sat\u0131r\u0131 (ba\u015f\u0131nda <code>#<\/code> olan sat\u0131rlar) ve varsay\u0131lan ayarlar g\u00f6receksiniz. \u00d6nemli olanlar\u0131 a\u00e7\u0131klayal\u0131m:<\/p>\n<h4>Temel Yap\u0131land\u0131rma Ayarlar\u0131<\/h4>\n<h5>K\u00fcme ve D\u00fc\u011f\u00fcm Ayarlar\u0131<\/h5>\n<ul>\n<li><code>cluster.name<\/code>: Elasticsearch k\u00fcmenizin ad\u0131n\u0131 tan\u0131mlar. T\u00fcm d\u00fc\u011f\u00fcmlerin ayn\u0131 k\u00fcme ad\u0131na sahip olmas\u0131 gerekir. Varsay\u0131lan olarak <code>elasticsearch<\/code>&#8216;tir. \u00dcretim ortam\u0131nda benzersiz bir isim kullanman\u0131z \u00f6nerilir.<\/li>\n<pre><code class=\"language-yaml\">cluster.name: my-application-cluster<\/code><\/pre>\n<li><code>node.name<\/code>: Bu d\u00fc\u011f\u00fcm\u00fcn ad\u0131n\u0131 tan\u0131mlar. Her d\u00fc\u011f\u00fcm\u00fcn k\u00fcme i\u00e7inde benzersiz bir ad\u0131 olmal\u0131d\u0131r. Varsay\u0131lan olarak sunucu ana bilgisayar ad\u0131d\u0131r.<\/li>\n<pre><code class=\"language-yaml\">node.name: node-1<\/code><\/pre>\n<\/ul>\n<h5>A\u011f Ayarlar\u0131<\/h5>\n<ul>\n<li><code>network.host<\/code>: Elasticsearch&#8217;\u00fcn hangi a\u011f aray\u00fcz\u00fcnde dinleyece\u011fini belirler. Varsay\u0131lan olarak <code>127.0.0.1<\/code> (localhost) olarak ayarlanm\u0131\u015ft\u0131r, bu da sadece yerel makineden eri\u015filebilece\u011fi anlam\u0131na gelir. E\u011fer di\u011fer makinelerden eri\u015fim sa\u011flamak istiyorsan\u0131z, sunucunuzun IP adresini veya <code>0.0.0.0<\/code> (t\u00fcm aray\u00fczler) olarak ayarlaman\u0131z gerekir. Ancak g\u00fcvenlik nedeniyle <code>0.0.0.0<\/code> yerine belirli bir IP adresi kullanmak daha iyidir.<\/li>\n<pre><code class=\"language-yaml\">network.host: 192.168.1.100 # Sunucunuzun IP adresi\n<h2>veya sadece localhost'tan eri\u015fim i\u00e7in:<\/h2>\n<h2>network.host: localhost<\/code><\/pre>\n<\/h2>\n<li><code>http.port<\/code>: Elasticsearch&#8217;\u00fcn HTTP isteklerini dinleyece\u011fi portu belirler. Varsay\u0131lan olarak <code>9200<\/code>&#8216;d\u00fcr.<\/li>\n<pre><code class=\"language-yaml\">http.port: 9200<\/code><\/pre>\n<li><code>transport.port<\/code>: D\u00fc\u011f\u00fcmler aras\u0131 ileti\u015fim i\u00e7in kullan\u0131lan port. Varsay\u0131lan olarak <code>9300<\/code>&#8216;d\u00fcr.<\/li>\n<pre><code class=\"language-yaml\">transport.port: 9300<\/code><\/pre>\n<\/ul>\n<h5>Ke\u015fif Ayarlar\u0131 (Discovery Settings)<\/h5>\n<p>Elasticsearch 6.x ve \u00fczeri s\u00fcr\u00fcmlerde, k\u00fcme ke\u015ffi i\u00e7in yeni mekanizmalar kullan\u0131l\u0131r. Tek d\u00fc\u011f\u00fcml\u00fc bir kurulum i\u00e7in bu ayarlar\u0131 do\u011fru yapmak \u00f6nemlidir.<\/p>\n<ul>\n<li><code>discovery.seed_hosts<\/code>: K\u00fcmedeki di\u011fer d\u00fc\u011f\u00fcmlerin IP adreslerini veya ana bilgisayar adlar\u0131n\u0131 i\u00e7eren bir liste. Tek d\u00fc\u011f\u00fcml\u00fc bir kurulumda bu ayar\u0131 yorum sat\u0131r\u0131 yapabilir veya bo\u015f bir liste olarak b\u0131rakabilirsiniz. Ancak Elastic 6.x&#8217;ten itibaren, tek bir d\u00fc\u011f\u00fcm\u00fcn kendisini master olarak belirleyebilmesi i\u00e7in <code>cluster.initial_master_nodes<\/code> ayar\u0131 gereklidir.<\/li>\n<pre><code class=\"language-yaml\"># discovery.seed_hosts: [\"host1\", \"host2\"] # Tek d\u00fc\u011f\u00fcml\u00fc kurulumda yorum sat\u0131r\u0131 yap\u0131n veya bo\u015f b\u0131rak\u0131n<\/code><\/pre>\n<li><code>cluster.initial_master_nodes<\/code>: K\u00fcmenin ilk ba\u015flat\u0131ld\u0131\u011f\u0131nda master aday\u0131 olabilecek d\u00fc\u011f\u00fcmlerin listesi. Tek d\u00fc\u011f\u00fcml\u00fc bir k\u00fcme i\u00e7in, bu ayar\u0131 o d\u00fc\u011f\u00fcm\u00fcn <code>node.name<\/code> de\u011feriyle doldurman\u0131z GEREK\u0130R. Aksi takdirde k\u00fcme ba\u015flat\u0131lamaz.<\/li>\n<pre><code class=\"language-yaml\">cluster.initial_master_nodes: [\"node-1\"] # Yukar\u0131da belirledi\u011finiz node.name ile ayn\u0131 olmal\u0131<\/code><\/pre>\n<\/ul>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri kaydedip \u00e7\u0131k\u0131n (nano i\u00e7in <code>Ctrl+O<\/code>, <code>Enter<\/code>, <code>Ctrl+X<\/code>).<\/p>\n<h4>JVM Bellek Ayarlar\u0131 (<code>\/etc\/elasticsearch\/jvm.options<\/code>)<\/h4>\n<p>Elasticsearch, JVM \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in bellek y\u00f6netimi kritik \u00f6neme sahiptir. JVM&#8217;ye ayr\u0131lan maksimum ve minimum bellek miktar\u0131 (<code>Xms<\/code> ve <code>Xmx<\/code>) <code>\/etc\/elasticsearch\/jvm.options<\/code> dosyas\u0131nda ayarlan\u0131r. Bu ayarlar\u0131n varsay\u0131lan de\u011feri genellikle 1 GB&#8217;t\u0131r.<\/p>\n<p><strong>\u00d6nemli Kural:<\/strong> Elasticsearch&#8217;e ayr\u0131lan bellek miktar\u0131 (Xms ve Xmx de\u011ferleri ayn\u0131 olmal\u0131d\u0131r), sistem RAM&#8217;inin yar\u0131s\u0131n\u0131 ge\u00e7memelidir. Ayr\u0131ca, bu de\u011fer asla 30-32 GB&#8217;\u0131 ge\u00e7memelidir, \u00e7\u00fcnk\u00fc bu, JVM&#8217;nin s\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f i\u015faret\u00e7ileri (compressed ordinary object pointers &#8211; oops) kullanmas\u0131n\u0131 engeller ve performans\u0131 olumsuz etkileyebilir.<\/p>\n<p>Dosyay\u0131 a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/elasticsearch\/jvm.options<\/code><\/pre>\n<p>\u015eu sat\u0131rlar\u0131 bulun ve sisteminizin RAM&#8217;ine g\u00f6re ayarlay\u0131n. \u00d6rne\u011fin, sunucunuzda 8 GB RAM varsa, 4 GB ay\u0131rabilirsiniz:<\/p>\n<pre><code class=\"language-text\">-Xms4g\n-Xmx4g<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydedip \u00e7\u0131k\u0131n.<\/p>\n<h4>Sistem Ayarlar\u0131<\/h4>\n<p>Elasticsearch&#8217;\u00fcn en iyi performans\u0131 g\u00f6stermesi i\u00e7in baz\u0131 sistem seviyesi ayarlar\u0131n\u0131n yap\u0131lmas\u0131 \u00f6nerilir:<\/p>\n<h5>Swapping Kapatma<\/h5>\n<p>Elasticsearch, JVM&#8217;nin disk belle\u011fine (swap) yazmas\u0131n\u0131 \u00f6nlemek i\u00e7in fiziksel belle\u011fi kullanmay\u0131 tercih eder. Swapping, performans d\u00fc\u015f\u00fc\u015f\u00fcne neden olabilir. Bu nedenle, <code>vm.swappiness<\/code> de\u011ferini d\u00fc\u015f\u00fcrmek veya tamamen kapatmak \u00f6nerilir.<\/p>\n<p>Ge\u00e7ici olarak swappiness&#8217;i kontrol etmek ve de\u011fi\u015ftirmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">cat \/proc\/sys\/vm\/swappiness\nsudo sysctl -w vm.swappiness=1<\/code><\/pre>\n<p>Kal\u0131c\u0131 olarak de\u011fi\u015ftirmek i\u00e7in <code>\/etc\/sysctl.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/sysctl.conf<\/code><\/pre>\n<p>Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131r\u0131 ekleyin:<\/p>\n<pre><code class=\"language-text\">vm.swappiness=1<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri uygulamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo sysctl -p<\/code><\/pre>\n<p>Ayr\u0131ca, Elasticsearch&#8217;\u00fcn swap&#8217;i tamamen devre d\u0131\u015f\u0131 b\u0131rakmas\u0131n\u0131 sa\u011flamak i\u00e7in <code>bootstrap.memory_lock<\/code> ayar\u0131n\u0131 da etkinle\u015ftirebilirsiniz. Bu, Elasticsearch&#8217;\u00fcn bellek sayfalar\u0131n\u0131 kilitlemesini sa\u011flar ve i\u015fletim sisteminin onlar\u0131 diske takas etmesini engeller. Bu ayar\u0131 <code>\/etc\/elasticsearch\/elasticsearch.yml<\/code> dosyas\u0131na ekleyin:<\/p>\n<pre><code class=\"language-yaml\">bootstrap.memory_lock: true<\/code><\/pre>\n<p>Bu ayar\u0131 kullanabilmek i\u00e7in, Elasticsearch kullan\u0131c\u0131s\u0131n\u0131n belle\u011fi kilitleme iznine sahip olmas\u0131 gerekir. Bunun i\u00e7in <code>\/etc\/security\/limits.conf<\/code> dosyas\u0131n\u0131 d\u00fczenlemeniz gerekecektir.<\/p>\n<h5>Max File Descriptors (Maksimum Dosya Tan\u0131mlay\u0131c\u0131lar\u0131)<\/h5>\n<p>Elasticsearch, \u00e7ok say\u0131da dosya tan\u0131mlay\u0131c\u0131s\u0131na ihtiya\u00e7 duyar. Varsay\u0131lan limitler genellikle yetersizdir. <code>\/etc\/security\/limits.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek Elasticsearch kullan\u0131c\u0131s\u0131 i\u00e7in bu limitleri art\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/security\/limits.conf<\/code><\/pre>\n<p>Dosyan\u0131n sonuna a\u015fa\u011f\u0131daki sat\u0131rlar\u0131 ekleyin:<\/p>\n<pre><code class=\"language-text\">elasticsearch - nofile 65536\nelasticsearch - memlock unlimited<\/code><\/pre>\n<p>\u0130lk sat\u0131r, Elasticsearch kullan\u0131c\u0131s\u0131 i\u00e7in maksimum a\u00e7\u0131k dosya say\u0131s\u0131n\u0131 65536&#8217;ya ayarlar. \u0130kinci sat\u0131r ise <code>bootstrap.memory_lock: true<\/code> ayar\u0131n\u0131n \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan <code>memlock<\/code> limitini s\u0131n\u0131rs\u0131z yapar. Bu de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in oturumu kapat\u0131p tekrar a\u00e7man\u0131z veya sunucuyu yeniden ba\u015flatman\u0131z gerekebilir.<\/p>\n<h3>Elasticsearch Servisini Y\u00f6netme<\/h3>\n<p>Yap\u0131land\u0131rma ayarlar\u0131n\u0131 tamamlad\u0131ktan sonra, Elasticsearch servisini ba\u015flatabilir ve y\u00f6netebilirsiniz. Elasticsearch, <code>systemd<\/code> ile entegre bir \u015fekilde gelir, bu da servis y\u00f6netimini kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>Servisi Ba\u015flatma<\/h4>\n<p>Elasticsearch servisini ba\u015flatmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start elasticsearch<\/code><\/pre>\n<h4>Servisi Etkinle\u015ftirme (\u00d6ny\u00fcklemede Otomatik Ba\u015flama)<\/h4>\n<p>Sistemin her yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda Elasticsearch&#8217;\u00fcn otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in servisi etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable elasticsearch<\/code><\/pre>\n<h4>Servisin Durumunu Kontrol Etme<\/h4>\n<p>Elasticsearch servisinin durumunu kontrol etmek ve herhangi bir hata olup olmad\u0131\u011f\u0131n\u0131 g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status elasticsearch<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, \u00e7\u0131kt\u0131da <code>active (running)<\/code> ibaresini g\u00f6rmelisiniz. Herhangi bir hata durumunda, loglar\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo journalctl -u elasticsearch.service -f<\/code><\/pre>\n<h4>Servisi Durdurma\/Yeniden Ba\u015flatma<\/h4>\n<p>Yap\u0131land\u0131rma dosyalar\u0131nda de\u011fi\u015fiklik yapt\u0131ktan sonra servisi yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart elasticsearch<\/code><\/pre>\n<p>Servisi durdurmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop elasticsearch<\/code><\/pre>\n<h3>Elasticsearch&#8217;\u00fc Test Etme<\/h3>\n<p>Elasticsearch servisi \u00e7al\u0131\u015fmaya ba\u015flad\u0131ktan sonra, RESTful API&#8217;sini kullanarak eri\u015filebilirli\u011fini ve durumunu test edebilirsiniz. Bunun i\u00e7in <code>curl<\/code> komut sat\u0131r\u0131 arac\u0131n\u0131 kullanaca\u011f\u0131z.<\/p>\n<h4>Curl ile API Eri\u015fimi<\/h4>\n<h5>Elasticsearch D\u00fc\u011f\u00fcm Bilgilerini Alma<\/h5>\n<p>Elasticsearch d\u00fc\u011f\u00fcm\u00fcn\u00fcze bir HTTP GET iste\u011fi g\u00f6ndererek temel bilgileri alabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">curl -X GET \"localhost:9200\"<\/code><\/pre>\n<p>E\u011fer <code>network.host<\/code> ayar\u0131n\u0131 <code>localhost<\/code> d\u0131\u015f\u0131nda bir IP adresine ayarlad\u0131ysan\u0131z, o IP adresini kullanman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">curl -X GET \"192.168.1.100:9200\"<\/code><\/pre>\n<p>Ba\u015far\u0131l\u0131 bir yan\u0131t al\u0131rsan\u0131z, \u00e7\u0131kt\u0131 JSON format\u0131nda d\u00fc\u011f\u00fcm\u00fcn ad\u0131n\u0131, k\u00fcme ad\u0131n\u0131, s\u00fcr\u00fcm\u00fcn\u00fc ve di\u011fer meta verileri i\u00e7erecektir:<\/p>\n<pre><code class=\"language-json\">{\n  \"name\" : \"node-1\",\n  \"cluster_name\" : \"my-application-cluster\",\n  \"cluster_uuid\" : \"...\",\n  \"version\" : {\n    \"number\" : \"6.8.23\",\n    \"build_flavor\" : \"default\",\n    \"build_type\" : \"deb\",\n    \"build_hash\" : \"...\",\n    \"build_date\" : \"...\",\n    \"build_snapshot\" : false,\n    \"lucene_version\" : \"7.7.2\",\n    \"minimum_wire_compatibility_version\" : \"5.6.0\",\n    \"minimum_index_compatibility_version\" : \"5.0.0\"\n  },\n  \"tagline\" : \"You Know, for Search\"\n}<\/code><\/pre>\n<h5>K\u00fcme Sa\u011fl\u0131k Durumunu Kontrol Etme<\/h5>\n<p>K\u00fcmenizin genel sa\u011fl\u0131k durumunu kontrol etmek i\u00e7in <code>_cat\/health<\/code> API&#8217;sini kullanabilirsiniz. <code>?v<\/code> parametresi, daha okunabilir bir formatta \u00e7\u0131kt\u0131 alman\u0131z\u0131 sa\u011flar (verbose):<\/p>\n<pre><code class=\"language-bash\">curl -X GET \"localhost:9200\/_cat\/health?v\"<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131 a\u015fa\u011f\u0131daki gibi olacakt\u0131r:<\/p>\n<pre><code class=\"language-text\">epoch      timestamp cluster                  status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent\n167889xxxx 14:00:00  my-application-cluster   green         1         1      0   0    0    0        0             0                  -                100.0%<\/code><\/pre>\n<p><code>status<\/code> alan\u0131n\u0131n <code>green<\/code> olmas\u0131, k\u00fcmenizin sa\u011fl\u0131kl\u0131 ve t\u00fcm birincil ve kopya par\u00e7alar\u0131n (primary and replica shards) atanm\u0131\u015f oldu\u011funu g\u00f6sterir. Tek d\u00fc\u011f\u00fcml\u00fc bir kurulumda, kopya par\u00e7alar atanamad\u0131\u011f\u0131 i\u00e7in ba\u015flang\u0131\u00e7ta <code>yellow<\/code> olabilir, ancak verileri indekslemeye ba\u015flad\u0131\u011f\u0131n\u0131zda ve kopya par\u00e7alar i\u00e7in yeterli d\u00fc\u011f\u00fcm olmad\u0131\u011f\u0131nda bu normaldir.<\/p>\n<h5>D\u00fc\u011f\u00fcmleri Listeleme<\/h5>\n<p>K\u00fcmedeki d\u00fc\u011f\u00fcmleri listelemek i\u00e7in <code>_cat\/nodes<\/code> API&#8217;sini kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">curl -X GET \"localhost:9200\/_cat\/nodes?v\"<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131, k\u00fcmenizdeki d\u00fc\u011f\u00fcmlerin listesini g\u00f6sterecektir:<\/p>\n<pre><code class=\"language-text\">ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name\n127.0.0.1          25          50   0    0.00    0.01     0.05 mdi       *      node-1<\/code><\/pre>\n<p>Bu testler ba\u015far\u0131l\u0131 olursa, Elasticsearch&#8217;\u00fcn\u00fcz do\u011fru bir \u015fekilde kurulmu\u015f ve \u00e7al\u0131\u015f\u0131yor demektir.<\/p>\n<h3>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>Elasticsearch kurulumunuzu g\u00fcvende tutmak, \u00f6zellikle \u00fcretim ortamlar\u0131nda kritik \u00f6neme sahiptir. Varsay\u0131lan kurulum, genellikle d\u0131\u015far\u0131dan eri\u015fime a\u00e7\u0131kt\u0131r (e\u011fer <code>network.host<\/code> 0.0.0.0 olarak ayarland\u0131ysa) ve herhangi bir kimlik do\u011frulama mekanizmas\u0131 i\u00e7ermez. Bu durum, hassas verilerinizin k\u00f6t\u00fc niyetli eri\u015fime a\u00e7\u0131k olmas\u0131na neden olabilir.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h4>\n<p>Ubuntu&#8217;da varsay\u0131lan g\u00fcvenlik duvar\u0131 olan UFW (Uncomplicated Firewall) kullanarak Elasticsearch&#8217;e eri\u015fimi k\u0131s\u0131tlaman\u0131z \u015fiddetle tavsiye edilir.<\/p>\n<h5>UFW&#8217;yi Etkinle\u015ftirme<\/h5>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<h5>Gerekli Portlara \u0130zin Verme<\/h5>\n<p>Elasticsearch&#8217;\u00fcn HTTP API&#8217;si varsay\u0131lan olarak 9200 portunda, d\u00fc\u011f\u00fcmler aras\u0131 ileti\u015fim ise 9300 portunda \u00e7al\u0131\u015f\u0131r. E\u011fer Elasticsearch&#8217;e sadece yerel makineden (Kibana gibi ayn\u0131 sunucuda \u00e7al\u0131\u015fan uygulamalar) eri\u015filecekse, d\u0131\u015far\u0131dan bu portlara eri\u015fimi tamamen kapatabilirsiniz.<\/p>\n<p>Sadece belirli bir IP adresinden (\u00f6rne\u011fin Kibana sunucunuzun IP&#8217;si) 9200 portuna izin vermek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from 192.168.1.50 to any port 9200<\/code><\/pre>\n<p>E\u011fer k\u00fcmede ba\u015fka d\u00fc\u011f\u00fcmler varsa ve 9300 portu \u00fczerinden ileti\u015fim kurmalar\u0131 gerekiyorsa, bu d\u00fc\u011f\u00fcmlerin IP adreslerinden 9300 portuna da izin vermeniz gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from 192.168.1.51 to any port 9300<\/code><\/pre>\n<p>Sadece localhost&#8217;tan eri\u015fime izin vermek ve di\u011fer t\u00fcm d\u0131\u015f ba\u011flant\u0131lar\u0131 engellemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo ufw default deny incoming\nsudo ufw default allow outgoing\nsudo ufw allow from 127.0.0.1 to any port 9200\nsudo ufw allow from 127.0.0.1 to any port 9300<\/code><\/pre>\n<p>UFW kurallar\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status verbose<\/code><\/pre>\n<h4>Kullan\u0131c\u0131 Kimlik Do\u011frulamas\u0131 ve Yetkilendirme<\/h4>\n<p>Elasticsearch&#8217;\u00fcn varsay\u0131lan kurulumu herhangi bir kimlik do\u011frulama mekanizmas\u0131 i\u00e7ermez. Bu, API&#8217;ye eri\u015febilen herkesin t\u00fcm verilere eri\u015febilece\u011fi anlam\u0131na gelir. Bu durumu d\u00fczeltmek i\u00e7in:<\/p>\n<ul>\n<li><strong>X-Pack Security:<\/strong> Elastic Stack&#8217;in bir par\u00e7as\u0131 olan X-Pack, kimlik do\u011frulama (authentication), yetkilendirme (authorization), \u015fifreleme (encryption), denetim (auditing) gibi geli\u015fmi\u015f g\u00fcvenlik \u00f6zellikleri sunar. Ancak X-Pack&#8217;in baz\u0131 \u00f6zellikleri \u00fccretlidir.<\/li>\n<li><strong>Reverse Proxy (Nginx\/Apache):<\/strong> Elasticsearch&#8217;in \u00f6n\u00fcne bir ters proxy (reverse proxy) kurarak HTTP temel kimlik do\u011frulamas\u0131 (Basic Auth) veya daha geli\u015fmi\u015f kimlik do\u011frulama y\u00f6ntemleri uygulayabilirsiniz. Bu y\u00f6ntem, Elasticsearch API&#8217;sine do\u011frudan eri\u015fimi engeller ve t\u00fcm isteklerin proxy \u00fczerinden ge\u00e7mesini sa\u011flar.<\/li>\n<li><strong>Search Guard \/ Open Distro for Elasticsearch:<\/strong> \u00dc\u00e7\u00fcnc\u00fc taraf a\u00e7\u0131k kaynak \u00e7\u00f6z\u00fcmler de bulunmaktad\u0131r. Ancak bunlar kurulum ve y\u00f6netim a\u00e7\u0131s\u0131ndan daha karma\u015f\u0131k olabilir.<\/li>\n<\/ul>\n<h4>HTTP Eri\u015fimi (HTTPS)<\/h4>\n<p>E\u011fer Elasticsearch&#8217;e a\u011f \u00fczerinden eri\u015filiyorsa, verilerin \u015fifrelenmesi i\u00e7in HTTPS kullanman\u0131z \u015fiddetle tavsiye edilir. X-Pack Security, TLS\/SSL \u015fifrelemesini kolayca yap\u0131land\u0131rman\u0131za olanak tan\u0131r. Alternatif olarak, bir ters proxy (Nginx veya Apache) kullanarak SSL\/TLS sonland\u0131rmas\u0131 yapabilir ve proxy ile Elasticsearch aras\u0131ndaki ileti\u015fimi \u015fifreleyebilirsiniz.<\/p>\n<h4>A\u011f Eri\u015fimi K\u0131s\u0131tlamas\u0131<\/h4>\n<p>M\u00fcmk\u00fcnse, Elasticsearch sunucusunu yaln\u0131zca g\u00fcvenilir a\u011flardan veya VPN \u00fczerinden eri\u015filebilecek \u015fekilde yap\u0131land\u0131r\u0131n. Genel internetten do\u011frudan eri\u015fimi kesinlikle \u00f6nleyin.<\/p>\n<h3>Ek Bile\u015fenler<\/h3>\n<p>Elasticsearch tek ba\u015f\u0131na g\u00fc\u00e7l\u00fc bir ara\u00e7 olsa da, Elastic Stack&#8217;in di\u011fer bile\u015fenleriyle birle\u015fti\u011finde ger\u00e7ek potansiyelini ortaya \u00e7\u0131kar\u0131r. Bu bile\u015fenler, veri toplama, i\u015fleme ve g\u00f6rselle\u015ftirme g\u00f6revlerini \u00fcstlenir.<\/p>\n<h4>Kibana Kurulumu<\/h4>\n<p>Kibana, Elasticsearch verilerini g\u00f6rselle\u015ftirmek ve ke\u015ffetmek i\u00e7in kullan\u0131lan a\u00e7\u0131k kaynakl\u0131 bir veri g\u00f6rselle\u015ftirme ve y\u00f6netim arac\u0131d\u0131r. Elasticsearch&#8217;e indeksledi\u011finiz veriler \u00fczerinde grafikler, tablolar ve g\u00f6sterge tablolar\u0131 olu\u015fturman\u0131za olanak tan\u0131r. Genellikle Elasticsearch ile ayn\u0131 sunucuya veya ayr\u0131 bir sunucuya kurulur ve Elasticsearch&#8217;\u00fcn REST API&#8217;si \u00fczerinden veri \u00e7eker.<\/p>\n<p>Kibana&#8217;n\u0131n kurulumu da Elasticsearch&#8217;e benzer \u015fekilde Elastic APT deposu \u00fczerinden yap\u0131l\u0131r. Ancak bu makalenin kapsam\u0131 d\u0131\u015f\u0131nda olup, ayr\u0131 bir kurulum rehberini gerektirir.<\/p>\n<h4>Logstash Kurulumu<\/h4>\n<p>Logstash, farkl\u0131 kaynaklardan (log dosyalar\u0131, veritabanlar\u0131, Kafka vb.) veri toplayan, bu verileri i\u015fleyen (filtreleme, d\u00f6n\u00fc\u015ft\u00fcrme) ve ard\u0131ndan Elasticsearch gibi bir hedef depolama birimine g\u00f6nderen a\u00e7\u0131k kaynakl\u0131 bir veri i\u015fleme ard\u0131\u015f\u0131k d\u00fczenidir (data pipeline). Logstash, \u00e7e\u015fitli eklentileri sayesinde neredeyse her t\u00fcrl\u00fc veri kayna\u011f\u0131n\u0131 ve format\u0131n\u0131 destekler.<\/p>\n<p>Logstash&#8217;in kurulumu ve yap\u0131land\u0131rmas\u0131 da kendi ba\u015f\u0131na karma\u015f\u0131k bir konudur ve bu makalenin kapsam\u0131 d\u0131\u015f\u0131ndad\u0131r.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Elasticsearch&#8217;\u00fcn Ubuntu 16.04 sunucusu \u00fczerine nas\u0131l kurulaca\u011f\u0131n\u0131 ve temel d\u00fczeyde nas\u0131l yap\u0131land\u0131r\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m ele ald\u0131k. Java Geli\u015ftirme Kiti&#8217;nin kurulumundan ba\u015flayarak, Elastic APT deposunu eklemeyi, Elasticsearch paketini kurmay\u0131, ana yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczenlemeyi (\u00f6zellikle <code>elasticsearch.yml<\/code> ve <code>jvm.options<\/code>), sistem seviyesi optimizasyonlar\u0131 (swap ve dosya tan\u0131mlay\u0131c\u0131lar\u0131) yapmay\u0131 ve son olarak Elasticsearch servisini y\u00f6netmeyi ve test etmeyi \u00f6\u011frendik.<\/p>\n<p>Ayr\u0131ca, Elasticsearch kurulumunuzu g\u00fcvende tutmak i\u00e7in \u00f6nemli g\u00fcvenlik ipu\u00e7lar\u0131na (g\u00fcvenlik duvar\u0131 yap\u0131land\u0131rmas\u0131, kimlik do\u011frulama ve HTTPS kullan\u0131m\u0131) de\u011findik. Son olarak, Elastic Stack&#8217;in di\u011fer temel bile\u015fenleri olan Kibana ve Logstash&#8217;ten k\u0131saca bahsederek, bu g\u00fc\u00e7l\u00fc ekosistemin tam potansiyelini nas\u0131l kullanabilece\u011finize dair bir fikir verdik.<\/p>\n<p>Art\u0131k Ubuntu 16.04 \u00fczerinde \u00e7al\u0131\u015fan, temel olarak yap\u0131land\u0131r\u0131lm\u0131\u015f ve g\u00fcvenli\u011fi sa\u011flanm\u0131\u015f bir Elasticsearch d\u00fc\u011f\u00fcm\u00fcne sahipsiniz. Bu kurulum, veri indeksleme, arama ve analiz projeleriniz i\u00e7in sa\u011flam bir temel olu\u015fturacakt\u0131r. \u0130leri d\u00fczey kullan\u0131mlar i\u00e7in Elasticsearch&#8217;\u00fcn resmi belgelerini incelemeniz ve Elastic Stack&#8217;in di\u011fer bile\u015fenlerini ke\u015ffetmeniz \u00f6nerilir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Elasticsearch&#8217;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131\nGiri\u015f\nG\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, b\u00fcy\u00fck hacimli verileri h","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-33180","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Elasticsearch&#039;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Elasticsearch&#039;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131\" \/>\n<meta property=\"og:description\" content=\"Elasticsearch&#039;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, b\u00fcy\u00fck hacimli verileri h\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-30T16:41:35+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Elasticsearch&#8217;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131\",\"datePublished\":\"2025-10-30T16:41:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/\"},\"wordCount\":3152,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/\",\"name\":\"Elasticsearch'\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-30T16:41:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Elasticsearch&#8217;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Elasticsearch'\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/","og_locale":"tr_TR","og_type":"article","og_title":"Elasticsearch'\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131","og_description":"Elasticsearch'\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131 Giri\u015f G\u00fcn\u00fcm\u00fcz\u00fcn veri odakl\u0131 d\u00fcnyas\u0131nda, b\u00fcy\u00fck hacimli verileri h","og_url":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-30T16:41:35+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Elasticsearch&#8217;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131","datePublished":"2025-10-30T16:41:35+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/"},"wordCount":3152,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/","url":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/","name":"Elasticsearch'\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-30T16:41:35+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/elasticsearchin-ubuntu-16-04-uzerine-kurulumu-ve-yapilandirilmasi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Elasticsearch&#8217;\u0131n Ubuntu 16.04 \u00dczerine Kurulumu ve Yap\u0131land\u0131r\u0131lmas\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=33180"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33180\/revisions"}],"predecessor-version":[{"id":33181,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/33180\/revisions\/33181"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=33180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=33180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=33180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}