Kubernetes ELK Kurulumu

Kubernetes ELK Kurulumu 1

Kubernetes ELK Kurulumu

Elasticsearch, Logstash ve Kibana (ELK) üçlüsü modern uygulamalarda önemli bir rol oynar. Microservices, Containerization, DevOps ve Big Data gibi konuların artmasıyla birlikte bu araçlar daha da popüler hale geldi. Bu yazıda, Kubernetes ortamında ELK kurulumunu anlatmaya çalışacağız.

  1. Adım: Elasticsearch Kurulumu

Elasticsearch , verilerin saklandığı, indekslendiği ve sorgulandığı bir NoSQL veritabanıdır. İlk adımımız Elasticsearch’in kurulumudur.

Elasticsearch ın resmi Docker imajını kullanarak Elasticsearch’i Kubernetes ortamına yükleyebilirsiniz. Elasticsearch’in resmi Docker imajı docker.elastic.co/elasticsearch/elasticsearch olarak mevcuttur. Bu imajı kullanmak için aşağıdaki komutu kullanabilirsiniz:

kubectl create -f https://download.elastic.co/downloads/eck/2.5.0/all-in-one.yaml

Bu komut, Elasticsearch Operator’ü de içeren All-In-One manifestini indirip yükler. Elasticsearch operator, Elasticsearch kümesinin yönetimi için kolay bir yol sunar.

  1. Adım: Logstash Kurulumu

Logstash, verileri toplamak, filtrelemek, dönüştürmek ve Elasticsearch’e göndermek için kullanılan açık kaynaklı bir araçtır. Logstash, birden fazla giriş kaynağından (örneğin, syslog, dosya, Beats, Kafka) veri alır ve çeşitli çıkışlara (örneğin, Elasticsearch, Redis, Amazon S3, Kafka) veri iletebilir.

Logstash, bir pod olarak çalışacak şekilde Kubernetes ortamına dağıtılabilir. Bu amaçla, aşağıdaki Kubernetes manifestini kullanabilirsiniz:

apiVersion: v1
kind: ConfigMap
metadata:
  name: logstash-config
data:
  logstash.yml: |
    input {
      beats {
        port => 5044
      }
    }
    output {
      elasticsearch {
        hosts => ["http://elasticsearch:9200"]
      }
    }
  pipeline.yml: |
    ---
    - pipeline.id: main
      path.config: "/usr/share/logstash/pipeline/"
---
apiVersion: v1
kind: Pod
metadata:
  name: logstash
spec:
  containers:
  - name: logstash
    image: docker.elastic.co/logstash/logstash:7.14.1
    volumeMounts:
    - name: config-volume
      mountPath: /usr/share/logstash/config/
    - name: pipeline-volume
      mountPath: /usr/share/logstash/pipeline/
  volumes:
  - name: config-volume
    configMap:
      name: logstash-config
  - name: pipeline-volume
    configMap:
      name: logstash-config
    defaultMode: 0600

Bu manifest, Logstash pods’unu başlatır ve Elasticsearch’e bağlanır.

  1. Adım: Kibana Kurulumu

Kibana, Elasticsearch üzerinde depolanan verileri araştırmak, görselleştirmek ve analiz etmek için kullanılan açık kaynaklı bir araçtır. Kibana, Elasticsearch REST API’sine doğrudan erişim sağlayarak verileri keşfetmenizi, görüntülemenizi ve paylaşmanızı sağlar.

Kibana’yı Kubernetes ortamına dağıtmak için aşağıdaki manifesti kullanabilirsiniz:

apiVersion: v1
kind: Service
metadata:
  name: kibana
  labels:
    app: kibana
spec:
  type: NodePort
  ports:
  - port: 5601
    protocol: TCP
  selector:
    app: kibana
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
spec:
  selector:
    matchLabels:
      app: kibana
  replicas: 1
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: docker.elastic.co/kibana/kibana:7.14

3. Adım: Kibana Kurulumu

Yukarıdaki manifest, Kibana'yı Kubernetes ortamına dağıtmak için kullanılır ve bir hizmet tanımlar. Hizmet, Kibana pod'una yönlendirilen trafiği ele alır ve NodePort olarak yapılandırılır. Bu, dış dünyadaki kullanıcıların Kibana arayüzüne erişmesini sağlar.

4. Adım: ELK Yapılandırması

Şimdi Elasticsearch, Logstash ve Kibana'yı yükledik, ancak henüz çalıştırmadık. Bu üç aracı birbirine bağlamak için bir yapılandırmaya ihtiyacımız var.

Logstash'in Elasticsearch'e veri gönderebileceği şekilde yapılandırılması gerekir. Bu amaçla, Logstash yapılandırmasının input ve output bölümleri aşağıdaki gibi güncellenmelidir:
input {
  beats {
    port => 5044
  }
}
output {
  elasticsearch {
    hosts => ["http://elasticsearch:9200"]
  }
}


Bu yapılandırma, Logstash tarafından alınan verilerin Elasticsearch'e gönderilmesini sağlar.

Kibana'nın Elasticsearch'e bağlanabilmesi için de benzer bir yapılandırmaya ihtiyacımız var. Kibana'nın `kibana.yml` dosyasının aşağıdaki gibi düzenlenmesi gerekiyor:

elasticsearch.hosts: [“http://elasticsearch:9200”]

Bu yapılandırma, Kibana'nın Elasticsearch'e bağlanmasını sağlar.

5. Adım: ELK Testi

Şimdi ELK kurulumumuzun doğru bir şekilde yapılandırıldığından emin olmak için bir test yapacağız.

Bir test yapmak için, Logstash'e bir veri kaynağı sağlamalıyız. Örneğin, sistem günlüklerini (syslog) Logstash'e gönderebiliriz.

Sisteminizin syslog konfigürasyonunu şu şekilde ayarlayarak bir test yapabilirsiniz:
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log
Bu konfigürasyon, `/var/log/messages` dosyasına tüm bilgi seviyelerindeki günlük mesajlarını yazacak şekilde syslog'ü yapılandırır.

Daha sonra, Logstash pods'unu kontrol etmek ve günlükleri alıp almadığını görüntülemek için aşağıdaki komutu kullanabilirsiniz:
kubectl logs <logstash_pod_name>

Eğer günlük mesajları kaydediliyorsa, bu veriler Elasticsearch’e gönderilir ve Kibana arayüzünde görüntülenebilir.

Sonuç:

Bu makalede, Kubernetes ortamında ELK kurulumunu ve yapılandırmasını adım adım anlattık. Her bir aracın ayrı ayrı kurulması ve yapılandırılması gerekiyor. Ancak, doğru yapılandırıldığında, bu araçlar, uygulama günlüklerinin izlenmesi ve analiz edilmesi için mükemmel bir çözüm sunar. Kubernetes ortamında ELK kurulumu, uygulama geliştirme sürecinde büyük bir fayda sağlayabilir.

  1. Adım: ELK’de Veri Görselleştirme

ELK kurulumu tamamlandıktan sonra, verilerin görüntülenmesi ve analiz edilmesi için Kibana arayüzünü kullanabilirsiniz.

Kibana arayüzünde, Elasticsearch’ten alınan verileri görselleştirebilir ve analiz edebilirsiniz. Kibana, verileri grafikler, histogramlar, haritalar, tablolar ve daha birçok farklı şekilde göstermenize olanak tanır.

Ayrıca, Kibana’yı kullanarak Elasticsearch sorguları oluşturabilir ve filtreleyebilirsiniz. Bu, özellikle büyük veri kümelerinde verileri doğru bir şekilde analiz etmek için önemlidir.

  1. Adım: ELK Güvenliği

ELK kurulumunun güvenliği çok önemlidir. Verilerinizin korunması için, ELK’nin güvenliği konusunda bazı adımlar atmanız gerekir.

Öncelikle, Kubernetes ortamınızda TLS (Transport Layer Security) kullanmalısınız. TLS, verilerin şifrelenmesini ve güvenli bir şekilde iletilmesini sağlar.

Ayrıca, Elasticsearch ve Kibana’ya erişimi sınırlamalısınız. Bu, özellikle birden fazla kişi ELK arayüzüne erişiyorsa önemlidir.

Son olarak, ELK kurulumunuzu düzenli olarak güncellemelisiniz. Elasticsearch, Logstash ve Kibana sürekli güncelleniyor ve her güncelleme yeni güvenlik yamaları içerebilir.

  1. ELK Kurulumunun Avantajları

ELK kurulumunun birçok avantajı vardır:

  • Uygulama günlükleri kaydedilebilir ve analiz edilebilir.
  • Hata ayıklama ve performans sorunlarının tespiti kolaylaşır.
  • Veriler, gerçek zamanlı olarak izlenebilir ve analiz edilebilir.
  • Veriler, farklı şekillerde görselleştirilebilir ve analiz edilebilir.
  • ELK, açık kaynak kodlu olduğu için maliyeti düşüktür.

Bu makalede, Kubernetes ortamında ELK kurulumunu adım adım anlattık. ELK, uygulama geliştirme sürecinde büyük bir fayda sağlayabilir. ELK kurulumunun tamamlanması, uygulama günlüklerinin izlenmesi ve analiz edilmesi için mükemmel bir çözüm sunar. Ayrıca, ELK kurulumunun güvenliği, verilerinizin korunması için çok önemlidir. ELK, herhangi bir organizasyon için yararlı bir araçtır.ELK, uygulama geliştirme sürecinde büyük bir fayda sağlayan açık kaynaklı bir araçtır. Bu makalede, ELK’nin Kubernetes ortamında nasıl kurulacağını ve yapılandırılacağını adım adım anlattık. Kurulumun tamamlanması, uygulama günlüklerinin izlenmesi ve analiz edilmesi için mükemmel bir çözüm sunar. Ayrıca, ELK kurulumunun güvenliği, verilerinizin korunması için çok önemlidir. ELK, herhangi bir organizasyon için yararlı bir araçtır ve uygulamanızın performansını artırmaya yardımcı olabilir. ELK kurulumunu uygulamalarınıza entegre etmek, verilerinizin daha iyi yönetilmesine ve hataların hızla tespit edilmesine yardımcı olabilir.

Yorum yapın