Bloğa geri dön

Ubuntu 18.04 üzerinde Elastic Stack Nasıl Kurulur

Ubuntu 18.04 üzerinde Elastic Stack Nasıl Kurulur

Elastic Stack (daha önce ELK Stack olarak bilinen), merkezi günlük kaydı için güçlü bir çözümdür. Elastic tarafından geliştirilen açık kaynaklı bir yazılım koleksiyonudur. Yöneticilerin herhangi bir kaynaktan herhangi bir biçimde oluşturulan günlükleri aramasına, analiz etmesine ve görselleştirmesine olanak tanır. Bu, merkezi günlük kaydı olarak bilinen bir uygulama şeklidir. Merkezi günlük kaydı, tüm günlüklerin tek bir yerden aranmasına izin verdiği için sunucular ve uygulamalarla ilgili sorunları tam olarak tespit etmeye çalışırken çok kullanışlı olabilir. Ayrıca, belirli bir zamandaki günlükleri ilişkilendirerek birden fazla sunucudaki sorunların tanımlanmasına da yardımcı olabilir.

Bu kılavuzda, Elastic Stack'in Ubuntu 18.04 üzerine nasıl kurulacağını inceleyin. İlk olarak, kolayca Ubuntu sunucunuzu CloudSigma'da kurun.

Ubuntu üzerinde Elastic Stack

Elastic Stack aşağıdaki bileşenlerden oluşur:

  • Elasticsearch: Dağıtık bir RESTful arama motoru. Toplanan tüm verileri depolar.
  • Logstash: Elastic Stack'in veri işleme parçasıdır. Gelen verileri Elasticsearch'e gönderir.
  • Kibana: Arama ve günlük görselleştirme özellikleri sunan bir web arayüzü.
  • Beats: Hafif, tek amaçlı bir veri iletici. Çok sayıda makineden Logstash veya Elasticsearch'e veri gönderebilir.

Yığının her bir bileşenini manuel olarak kurmanız gerekecektir.

Önkoşullar

Kuruluma devam etmeden önce, Elastic Stack kurulumu için birkaç sistem gereksiniminin karşılanması gerekir:

Depolama miktarının toplanacak ve saklanacak günlük sayısına bağlı olduğunu unutmayın. Ayrıca Elastic Stack, sunucu hakkındaki değerli bilgilerle de ilgilenir. Veri iletimini güvenli tutmak için bir TLS/SSL sertifikası yapılandırmanızı şiddetle öneririz. Nginx sunucunuzda ücretsiz bir SSL sertifikası edinmek için bu eğitimi takip edin.

Şifrelenmiş bir sunucuya ek olarak, aşağıdaki adımlar da gerekli olacaktır:

  • Bir FQDN (tam nitelikli alan adı). Bu kılavuzda bu <domain> olacaktır.
  • Aşağıdaki alan adlarının her iki DNS kaydı da sunucuya yönlendirilir.
    • Sunucunun genel IP'sini gösteren <domain> içeren bir A kaydı.
    • Sunucunun genel IP'sini gösteren www.<domain> içeren bir A kaydı.

Elastic Stack Kurulumu

  • Elastic deposunu yapılandırma

Elastic Stack bileşenleri doğrudan resmi Ubuntu deposundan edinilemez. Neyse ki Ubuntu, paket yüklemek için 3. taraf depoların kullanılmasına izin verir. Bizim amacımız için Elastic paket deposunu ekleyeceğiz. Depo, tüm Elastic paketlerinin en son paket güncellemelerini sunar. Paket sahtekarlığını önlemek için tüm Elastic paketleri Elasticsearch imzalama anahtarı ile imzalanmıştır. İlk olarak, anahtarı Ubuntu anahtarlığına ekleyin:

Ardından, Elastic kaynak listesini “sources.list.d” dizini altına ekleyin. Bu, APT'nin yeni kaynakları aramak için kullandığı özel dizindir:

Son olarak, APT önbelleğini güncelleyin:

Resmi belgelere göre, bileşenlerin her birinin bu kılavuzda gösterilen sırayla kurulması önerilir. Bu, her bir ürünün bağımlı olduğu bileşenlerin doğru yerde olmasını sağlar.

  • Elasticsearch Kurulumu ve Yapılandırılması

Elastic deposu yapılandırıldıktan sonra, APT tüm Elastic paketlerini indirmeye ve kurmaya hazırdır. Elasticsearch'ü kurmak için aşağıdaki komutu çalıştırın:

Artık Elasticsearch'ü yapılandırabilirsiniz. “elasticsearch.yml” dosyası kümeler, düğümler, yollar, ağlar, bellek, ağ geçidi ve diğerleri hakkında yapılandırma seçenekleri sunar. Bunların çoğu dosyada önceden yapılandırılmış olarak gelir. Ardından, Elasticsearch yapılandırma dosyasını seçtiğiniz bir metin düzenleyiciyle açın:

Elasticsearch her yerden 9200 portunu dinler. Dışarıdakilerin verileri okumasını veya REST API'sini kullanarak Elasticsearch kümelerini kapatmasını önlemek için Elasticsearch'e dışarıdan erişimi kısıtlamanızı öneririz. Elasticsearch'e erişimi kısıtlamak ve güvenliğini artırmak için aşağıdaki satırın başındaki yorum işaretini kaldırın ve değerini değiştirin:

network.host: localhost

Eğer Elasticsearch belirli bir IP adresini dinleyecekse, “localhost” ifadesini hedef IP adresiyle değiştirin. Bu, Elasticsearch'ü çalıştırmadan önceki minimum yapılandırma gereksinimidir. Yapılandırma dosyasını kaydedip kapatın. Ardından, Elasticsearch hizmetini başlatın. Elasticsearch'ün başlaması birkaç dakika sürebilir:

Bundan sonra, sunucu her önyüklendiğinde Elasticsearch'ün başladığından emin olmanız gerekir:

Aşağıdaki komut Elasticsearch hizmetinin çalışıp çalışmadığını doğrulayacaktır. Tek yapmanız gereken bir HTTP isteği göndermektir:

sending an HTTP request

Yanıt şuna benzer bir şey olacaktır. Yerel düğüm hakkında bazı temel bilgileri gösteren bir yanıt olacaktır.

Kibana Panelinin Kurulması ve Yapılandırılması

Kibana doğrudan Elastic deposundan edinilebilir. Kibana'yı yalnızca Elasticsearch kurulumunu yaptıktan sonra kurmanız gerektiğini unutmayın. Deponun zaten mevcut olduğunu varsayarsak, APT doğrudan Kibana'yı alıp kurabilir:

Kurulduktan sonra Kibana hizmetini etkinleştirin ve başlatın:

Varsayılan olarak Kibana yalnızca “localhost”u dinleyecek şekilde yapılandırılmıştır. Dışarıdan erişim için bir ters proxy (reverse proxy) yapılandırması gerekir. Burada, Nginx ters proxy olacaktır. Yönetici bir Kibana kullanıcısı oluşturmak için openssl komutunu kullanın. Bu, Kibana web arayüzüne erişmek için kullanılacak kullanıcı hesabı olacaktır. Burada örnek kullanıcı adı “kibana_admin” olacaktır. Daha iyi bir güvenlik sağlamak için standart olmayan bir kullanıcı adı kullanmanızı öneririz. Aşağıdaki komut Kibana için bir yönetici kullanıcısı oluşturacaktır. Kullanıcı adı ve şifre oluşturulacak ve “htpasswd.users” dosyasında saklanacaktır. Nginx'in bu kullanıcı adı ve şifreyi kullanacak şekilde yapılandırılması gerekecektir:

İstendiğinde bir şifre girin ve onaylayın. Bu şifre Kibana arayüzüne erişmek için önemli olacaktır. Bundan sonra, bir Nginx sunucu blok dosyası oluşturmanız gerekir. Gösterim amacıyla bu dosya example.com olacaktır. Başka herhangi bir açıklayıcı ad da olabilir. Sunucu için yapılandırılmış FQDN ve DNS kayıtları varsa, dosya adı FQDN'ye göre de belirlenebilir:

Önceden var olan herhangi bir içerik varsa, içeriği kaldırın ve aşağıdaki kod satırlarıyla değiştirin:

Dosyayı kaydedip kapatın. “sites-enabled” dizini altında yeni yapılandırmanın sembolik bir bağlantısını oluşturun. Aynı dosya adına sahip önceden var olan herhangi bir bağlantı varsa, bu adım gerekli olmayabilir:

Aşağıdaki komut, Nginx'in herhangi bir sözdizimi hatası olup olmadığını kontrol etmesini sağlayacaktır:

Herhangi bir sözdizimi sorunu varsa, dosya içeriğinin düzgün bir şekilde yerleştirildiğinden emin olun. Ardından, Nginx hizmetini yeniden başlatın:

Nginx bağlantısına izin vermesi için UFW'ye bildirin:

Kibana'ya artık Elastic Stack sunucusunun FQDN'i veya genel IP adresi üzerinden erişilebilmelidir. Check the Kibana sunucusunun durum sayfasını kontrol edin:

status page

Logstash Kurulumu ve Yapılandırılması

Beats verileri doğrudan Elasticsearch’ün veritabanına gönderebilse de, verileri işlemek için Logstash kullanılması önerilir. Logstash, verileri başka bir veritabanına aktarmadan önce toplayabilir ve ortak bir biçime dönüştürebilir. Logstash'i kurmak için aşağıdaki APT komutunu çalıştırın:

Kurulum tamamlandıktan sonra Logstash'i yapılandırma zamanı gelmiştir. Logstash'in yapılandırma dosyaları JSON biçimindedir. Bunların hepsini “/etc/logstash/conf.d” dizininde bulabilirsiniz. Logstash'i, bir uçtan veriyi alan, işleyen ve hedefe gönderen bir boru hattı (pipeline) olarak düşünmek faydalı olacaktır. Bir Logstash boru hattı iki zorunlu öğe gerektirir – input ve output ile isteğe bağlı bir öğe – filter. Giriş (input) eklentisi veriyi içeri alır, filter eklentisi veriyi işler ve output eklentisi veriyi hedefe yazar. Aşağıdaki komut, Logstash'i Filebeat girişi için ayarlayacak bir yapılandırma dosyası oluşturacaktır:

Aşağıdaki input yapılandırmasını girin. Bu, TCP üzerindeki 5044 numaralı bağlantı noktasını dinleyecek bir beats girişini tanımlar:

Bir sonraki adım, “10-syslog-filter.conf” adında bir yapılandırma dosyası oluşturmaktır. Bunu, syslogs (sistem günlükleri) için bir filtre ayarlamak üzere kullanacağız:

Aşağıdaki syslog yapılandırma kodunu girin. Bu kod doğrudan Elastic kılavuzundan temin edilebilir. Bu kod, Logstash'e yönelik input yapılandırmasını açıklar:

Bir sonraki yapılandırma dosyası çıktı ile ilgilenecek. “30-elasticsearch-output.conf” adında yeni bir dosya açın:

Aşağıdaki kodu girin. Bu kod, Logstash'e çıktı yapılandırmasını açıklar:

Logstash yapılandırmasını test edin. Ardından, aşağıdaki komutu çalıştırın:

Herhangi bir hata yoksa, Logstash aşağıdaki başarı mesajını yazdıracaktır. Başarılı olmadıysa, tüm yapılandırma dosyalarının doğru kodlara sahip olduğundan emin olun. Son olarak, Logstash hizmetini başlatın ve etkinleştirin:

Artık Logstash başarıyla çalışıyor ve tamamen yapılandırılmış olduğuna göre, Filebeat'i kuralım.

Filebeat Kurulumu ve Yapılandırılması

Elastic Stack, çeşitli kaynaklardan veri toplamak ve bunları Logstash/Elasticsearch'e iletmek için “Beats” olarak bilinen veri göndericilerini kullanır. Elastic tarafından sunulan Beats'lerin kısa bir listesi aşağıdadır:

  • Filebeat: Günlük dosyalarını toplama/gönderme.
  • Metricbeat: Sistemlerden ve hizmetlerden metrik toplama/gönderme.
  • Packetbeat: Ağ verilerini toplama/analiz etme.
  • Winlogbeat: Windows olay günlüklerini toplama.
  • Auditbeat: Linux denetim çerçevesi verilerini toplama ve dosya bütünlüğünü izleme.
  • Heartbeat: Hizmetlerin kullanılabilirliğini izleme.

Bu kılavuzun amacı doğrultusunda, yerel günlükleri Elastic Stack'e göndermek için Filebeat'e ihtiyacımız olacak. İlk olarak, Filebeat'i kurun:

Artık Filebeat'i yapılandırabilirsiniz. İlk olarak, Logstash'e bağlanması gerekir. Filebeat ile birlikte gelen örnek yapılandırmayı kullanacağız. Yapılandırma dosyasını bir metin düzenleyicide açın. Dosya YAML formatında olduğu için doğru girintilemenin önemli olduğunu unutmayın:

“output.elasticsearch” bölümünü bulun ve aşağıdaki satırları yorum satırı yapın. Bu, Filebeat'i ek işleme için olayları doğrudan Elasticsearch/Logstash'e gönderecek şekilde yapılandıracaktır. Ardından, “output.logstash” bölümüne geçin. Sonra, satırların yorumunu kaldırın:

output.logstash

Filebeat, modülleri destekler. Bu eğitimde, sistem modülünü kullanacağız. Bu modül, yaygın Linux dağıtımlarının sistem günlük kaydı servisi tarafından oluşturulan günlükleri toplar ve ayrıştırır. Filebeat sistem modülünü etkinleştirin:

Aşağıdaki Filebeat komutu, etkinleştirilmiş ve devre dışı bırakılmış tüm modülleri listeleyecektir:

Varsayılan olarak Filebeat, syslog ve yetkilendirme günlükleri için varsayılan yolları takip edecek şekilde ayarlanmıştır. Modüllerin parametreleri “/etc/filebeat/modules.d/system.yml” yapılandırma dosyasında mevcuttur.

Bir sonraki adım, dizin şablonunu Elasticsearch'e yüklemektir. Bir Elasticsearch dizini, benzer özellikleri paylaşan belgeler topluluğunu ifade eder. Her dizin bir isimle gelir. Dizin içinde çeşitli işlemler gerçekleştirirken bu isim gereklidir. Dizin şablonu, her yeni dizin oluşturulduğunda otomatik olarak uygulanır. Ardından, şablonu yükleyin:

Filebeat, varsayılan olarak Kibana için örnek bir pano içerir. Bu, Filebeat verilerini Kibana'da görselleştirmeye yardımcı olur. Ancak panoyu kullanmadan önce dizin desenini oluşturmak ve panoları Kibana'ya yüklemek gerekir. Panolar yüklenirken Filebeat, sürüm bilgisi için Elasticsearch ile iletişim kurar. Panoları yüklemek için, Logstash etkinken, Logstash çıktısının devre dışı bırakılması ve Elasticsearch çıktısının etkinleştirilmesi gerekir. Aşağıdaki komut bu işlemi gerçekleştirecektir:

Son olarak, Filebeat'i başlatabilirsiniz:

Şimdi Elastic Stack yapılandırmasını test etme zamanı. Düzgün yapılandırılmışsa, çıktı şuna benzer görünecektir:

Elastic Stack configuration

Çıktı toplam 0 isabet bildiriyorsa, Elasticsearch aradığımız dizin altında hiçbir günlük yüklemiyor demektir. Bu, yapılandırmada bir hata olduğunu gösterir. Çıktı beklendiği gibiyse, Elastic Stack başarıyla yapılandırılmıştır.

Kibana Panolarına Genel Bakış

Şimdi, halihazırda kurmuş olduğumuz Kibana web arayüzünü keşfetme zamanı. İlk olarak, Kibana panosunu açın. Elastic Stack sunucusunun FQDN veya genel IP adresinde bulunmalıdır:

Daha önce oluşturduğumuz giriş bilgilerini girin. Giriş yaptıktan sonra pano şu şekilde görünecektir:

Elastic stack home

Sol gezinti çubuğundan “Discover”ı seçin. Ardından, “filebeat-*” şablonunu seçin. Son 15 dakika içinde toplanan tüm günlükleri gösterir. Günlükleri aramak, göz atmak ve panoyu özelleştirmek mümkündür:

customize the dashboard

Sol gezinti çubuğundan Dashboard >> Filebeat System bölümüne gidin. Burada, Filebeat'in sistem modülündeki tüm örnek panolar mevcuttur.

Aşağıdaki örnekte, syslog mesajlarına dayalı çeşitli istatistikler ayrıntılı olarak açıklanmaktadır:

Elastic Stack dashboard

Ayrıca hangi kullanıcıların sudo ile komut çalıştırdığını da raporlayabilir:

executed commands

Son olarak Kibana, grafik oluşturma ve filtreleme gibi diğer birçok işlevi keşfetme fırsatı sunar, bu nedenle kendi başınıza keşfetmekten çekinmeyin.

Son Düşünceler

Elastic Stack, sistem günlüklerini analiz etmek için güçlü bir çözümdür. Herhangi bir günlüğün veya dizine eklenmiş verinin, Beats kullanılarak Logstash'e gönderilebilmesine rağmen, Logstash filtreleri aracılığıyla ayrıştırıldığında ve yapılandırıldığında daha kullanışlı hale geldiğini unutmayın.

Keyifli bilişimler!

author

Hark Labs

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.