Merhaba,
ElasticSearch yapısı Java ile geliştirilmiş, text arama motoru ve veri analiz aracıdır.
Bu yapıyı Graylog/MongoDB yapısı üzerinde kullanabilirsiniz.
Kurulumda öncelikle sunucu üzerine Java kurulumu gerçekleştirilmesi gerekmektedir.
Bir önceki kurulumda Java’nın kurulum adımlarından bahsetmiştim. Anlatıma gitmek için alttaki linke tıklayın.
Linux Sunucuya Java Kurulumu (Ubuntu 16.04/CentOS 7)
Java kurulumundan sonra Elasticsearch kurulumu için .deb dosyasını içeriğini indirin.
1 |
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.deb |
İndirdiğiniz bu dosyayı aşağıdaki komutla kompile edin.
1 |
sudo dpkg -i elasticsearch-5.2.2.deb |
Sistem başlangıcında Elasticsearch servisinin otomatik başlaması için aşağıdaki komutu çalıştırın.
1 |
sudo systemctl enable elasticsearch.service |
Elasticsearch 5.2.2 Konfigürasyonu
Ubuntu üzerinde kurulumlarda, dosyalar /etc/elasticsearch/ dizini içerisinde bulunuyor. Conf. dosyası elasticsearch.yml’dir.
Şimdi bunu metin editörüyle açıp, birkaç satırı düzenlemek gerekecek.
1 |
vi /etc/elasticsearch/elasticsearch.yml |
Bu config dosyası içerisinde cluster.name, node.name, network.host ve path yollarını değiştirmelisiniz.
Eğer graylog için kuruyorsanız, graylog ya da graylog2 yazmanızı öneririm. Örneğin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# ---------------------------------- Cluster ----------------------------------- # # Use a descriptive name for your cluster: # cluster.name: graylog # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # node.name: Graylog.Cf (Hostname yazın.) # # Add custom attributes to the node: # node.attr.rack: r1 # # ----------------------------------- Paths ------------------------------------ # # Path to directory where to store the data (separate multiple locations by comma): # path.data: /var/lib/elasticsearch # # Path to log files: # path.logs: /var/lib/elasticsearch # # ---------------------------------- Network ----------------------------------- # # Set the bind address to a specific IP (IPv4 or IPv6): # network.host: Sunucunun ip adresini yazın. # # Set a custom port for HTTP: # http.port: 9200 # # For more information, consult the network module documentation. # |
*path.data ve path.logs tanımını yaptıktan sonra o dizinleri ve dosyayı oluşturmayı unutmayın.
*Düzenlediğiniz satırların başında bulunan # kaldırıp satırı aktif etmeyi unutmayın.
Düzenlemeleri yaptıktan sonra servisi başlatın.
1 |
sudo systemctl start elasticsearch |
Sonrasında servisin durumunu kontrol edin.
1 |
sudo systemctl status elasticsearch |
Servis aktif durumdaysa ve problem yoksa aşağıdaki komutu uygulayıp test edin.
1 |
curl -XGET 'network.host kısmına yazdığını ip'yi yazın:9200' |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "name" : "Graylog.Cf", "cluster_name" : "Graylog2", "cluster_uuid" : "xxxx", "version" : { "number" : "5.2.2", "build_hash" : "xxxx", "build_date" : "xxxx", "build_snapshot" : xxxx, "lucene_version" : "6.4.1" }, "tagline" : "You Know, for Search" } |
Eğer aldığınız çıktı yukarıdakine benzerse kurulum tamamlanmış demektedir.
Ayrıca üstteki komutla Elasticsearch hangi versiyonunu kullandığınızı da görebilirsiniz.
Elasticsearch Güvenlik Yapılandırması
Default halinde herhangi bir güvenlik yapılandırması bulunmuyor.
Eğer bu yapıyı daha güvenli hale getirmek istiyorsanız firewall (örneğin ufw) üzerinden kural girebilirsiniz.
9200 portuna sadece tanımlayacağını remote ip’den erişime izin verebilirsiniz.
Bunun için ufw (Uncomplicated Firewall) enable etmelisiniz.
Sonrasında aşağıdaki ip komutu uygulayarak kuralı oluşturabilirsiniz.
1 |
sudo ufw allow from Güvenilir-IP'yi-Yazın to any port 9200 |
Sonra servisi enable edin.
1 |
sudo ufw enable |
Unutmadan, web servisi veya farklı servisleriniz varsa ufw’de onlara da izin vermeniz lazım.
1 2 3 |
sudo ufw allow 22 > SSH bağlantısı için. sudo ufw allow 80 > Http bağlantısı için. sudo ufw allow 443 > Https bağlantısı için. |
Yukarıda örnek birkaç tanımı belirttim. SSH erişimini açmayı unutmayın.
Umarım zamandan kazanmanızı sağlar.
Ek kaynakça:
Detaylı konfigürasyon için: Configuring Elasticsearch
Elasticsearch detaylı döküman: Install Elasticsearch With Debian Package