-
Elasticsearch’ün konfigürasyon dosyasında yazan path.data adresi sistem yöneticileri tarafından incremental şekilde veya belirli aralıklarla olduğu gibi yedeklenebilir.
ARTI Geçmiş verilere erişim her zaman aynı kolaylıkta devam edecektir.
-
Elasticsearch’ün bulunduğu sunucu Raid-0 yöntemiyle ya da belirli aralıklarla olduğu gibi yedeklenebilir.
ARTI Geçmiş verilere erişim her zaman aynı kolaylıkta devam edecektir.ARTI Asıl diskte sorun olduğunda yedek disk network yönlendirmesiyle anında kullanıma başlanılabilecektir.
-
Elasticsearch verileri Elasticsearch Snapshot api’si ile dump alınabilir. Snapshot politikası ayarlanarak belirli bir sistem adresine bu yedek dosyalarının çıkarılması sağlanabilir, sonrasında bu yedek dosyaları farklı bir sunucuya ayrıca yedeklenmelidir.
ARTI Geçmiş verilere erişim her zaman aynı kolaylıkta devam edecektir.
ÖNERİ Yukarıdaki yöntemlerden hangisi kullanılırsa kullanılsın, düzenli yedekleme ayarlandıktan sonra yedeği alınmış loglar Elasticsearch ILM’siyle otomatik silmeye ayarlanabilir ya da istenilen zamanlarda istenilen kadarı Elasticsearch API’si ile manuel olarak silinebilir.
ARTI Aktif sunucuda çok daha düşük bir disk kaynağıyla çalışılmaya devam edilecektir.
Elasticsearch Manuel Yedek Alma ve Geri Yükleme
Bu bölüm, Elasticsearch üzerindeki logların cron tanımı üzerinden otomatik olarak yedeklenmesi için oluşturulan Snapshot Lifecycle Management (SLM) politikasını oluşturmayı ve anlık olarak yedek alıp geri yükleme yöntemlerini açıklar.Değişkenler
İstekler yer alan dinamik değerler ve açıklamaları aşağıdaki tabloda görülmektedir.Yedeklerin Dosya Konumunu Belirtme
Kümedeki tüm node’lara ait elasticsearch.yml konfigürasyon dosyasına, path.repo alanı eklenerek, yedekleme dosyalarının saklanacağı dosya konumu yazılır.Snapshot Repository Bilgisini Tanımlama
Repository, snapshot işleminde yedeklenecek dosyaların nerede depolanacağı bilgisini tutar.Repository’i Doğrulama İsteği (Verify Location)
Elasticsearch’ün dosyaya erişimi olup olmadığı kontrol edilmelidir.Doğrulama başarılı olursa, repository’nin kullanıldığı node’ların listesi döner. Doğrulama başarısız olursa, istekten hata döner.
SLM Politikası Oluşturma
Snapshot Politikasını Oluşturma İsteği
Manuel Olarak Politikayı Çalıştırma İsteği
Snapshot Kayıtlarını Görüntüleme
Genellikle kurumlarda yapılan yedekleme (snapshotlar) indekslemenin gerçekleştiği aynı ortam içerisinde tutulur. Sonrasında bu snapshot’lar farklı bir ortamda saklanması istenebilir. Elasticsearch’de sadece dosya aktarımı ile veriler başka bir Elasticsearch kümesinde otomatik olarak atılmaz. Dosya aktarımının yanı sıra snapshot yapısının da aynı şekilde taşınması gerekmektedir. Sadece dosyaları taşıma, hem snapshot’ı içerisindeki yapıyı bozmaya hem de yedeğin geri yüklenmesine (restore) engel olabilir.Başka bir cluster’a snapshot taşıma sırasında ilk olarak repository, sonrasında snapshot oluşturulmalıdır.
Snapshot alma işlemi bittiğinde, yedeklemesi yapılmış indeksler silinmemektedir. Eğer indeksin ILM politikasında delete fazı aktifleştirilmiş ise silinir.
Anlık Yedek Alma
Snapshot Oluşturma İsteği
Snapshot’daki Indekslerin Tamamını/Bir Kısmını Geri Yükleme İsteği
Elasticsearch Snapshot Taşıma ve Restore Etme Scripti
Bu script Snapshot politikası ayarlandıktan sonra belirli bir adreste oluşan snapshot dosyalarını, yedek sunucusuna taşıyıp orada restore edip okunmaya hazır bir halde tutma işini yapmaktadır. Script’in çalıştırılabilmesi için belirli ihtiyaçlar vardır:- Log ve yedek sunucunun shell script destekleyen bir Linux sunucuda çalışıyor olmaları.
- Yedek sunucusunda mevcut Elasticsearch sunucusuyla aynı ya da desteklenen sürümde bir Elasticsearch çalışıyor olması.
- Log sunucusu ve yedek sunucusu arasında ssh, scp gibi protokollerle iletişim kurulabiliyor olması.
- Log sunucusunun crontab destekliyor olması (Birçok popüler Linux dağıtımında varsayılan olarak mevcuttur).
- Basit linux shell bilgisi
- Repository kontrol edilecek
- Snapshot dosyasının adı ve adresi alınacak
- Snapshot dosyası restore sunucusuna gönderilecek
- Snapshot restore işlemi başlatılacak
- Restore işleminin durumu kontrol edilecek
Nasıl Çalışır:
- “ESMoveSnapshotAndRestore.sh” gibi bir isimle Log sunucusunuzda uygun bir adrese dosya olarak kaydedilir. Script linux shell üzerinden vi, nano gibi editörler ile kopyalanabilir ya da windows bir sunucudan dosyaya kaydedilip winscp, mobaxterm gibi bir uygulama ile sftp ile aktarılabilir.
-
Dosyaya çalışabilmesi için
chmod +x ESMoveSnapshotAndRestore.shkomutu ile yetki verilir. -
Scp ile bağlantıda şifre sormaması ve otomatik bağlanabilmesi için scp’nin ssh key authentication özelliğinden faydalanır.
- Log sunucusunda ssh-keygen ile bir key oluşturulur. Bu key ssh-copy-id komutu ile yedek sunucusuna atılır.
-
Log sunucusuna eğer yoksa jq paketi kurulur. Ubuntu için
apt install jq, Redhat içinyum install jqkomutu kullanılabilinir. - Her iki sunucudaki Elasticsearch için config dosyasındaki data.path ve repo.path değerleri kontrol edilir.
-
Script’teki değişkenler ortamlarınıza uygun olarak ayarlanır.
- ELASTICSEARCH_SERVER
- ELASTICSEARCH_BACKUP_SERVER
- LOG_KEY
- BACKUP_PATH_REPO
Kullanım:
Scripti çalıştırmadan önce Elasticsearch değişkenlerine kendi bilgilerinizi giriniz.CronJob Kullanım:
- Terminalde aşağıdaki komutu çalıştırarak cron düzenleyicisi açılır;
- Açılan editöre, script’ine sıklıkla çalıştırmak istediğinize göre bir satır ekleyin.
Her iki yöntemde de, script çalıştırıldığında içerisindeki işlemler script ile aynı klasörde “logfile<TARIH>.log” isim formatında bir dosyaya yazdırılıyor olacaktır.

