13 puan yazan ironlung 2023-09-27 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Docker ile uygulama dağıtıp hizmet işleten Linux sunucularında bazen disk alanı yetersizliği mesajı görülebilir
    • Uygulamanın gerçekten oluşturup depoladığı veri ve log hacmi büyük olmasa bile sistemin toplam depolama alanı tamamen dolabilir
    • Docker kullanırken depolama alanı yetersizliğinin nedenlerinden biri Docker container loglarıdır
  • Docker logging driver'ı ve log konumu
    • Logging driver: Docker, çalışan container'lar ve servislerden bilgi almayı kolaylaştıran bir loglama mekanizması içerir; buna logging driver denir
    • docker logs komutu: Çalışan container'ın kaydettiği bilgileri gösterir
    • docker service logs komutu: Servise katılan tüm container'ların kaydettiği bilgileri gösterir
    • Docker, tüm container loglarının standart çıktısını (stdout) ve standart hatasını (stderr) yakalayıp JSON biçiminde dosyaya yazan json-file logging driver'ını kullanır
    • docker run veya docker-compose up komutuyla Docker container'ı çalıştırıldığında /var/lib/docker/containers/[Container-ID]/[Container-ID]-json.log dosyası oluşturulur ve loglar buraya yazılır
    • json-file logging driver'ı log rotasyonu yapmaz
      • Bu logging driver ile kaydedilen log dosyaları, çok fazla çıktı üreten container'larda ciddi miktarda disk alanı kullanabilir ve bunun sonucunda disk alanı tükenebilir
  • Docker container log boyutunu küçültme
    • docker rm veya docker-compose down komutu çalıştırıldığında Docker container'ı silinir ve /var/lib/docker/containers altındaki ilgili [Container-ID] dizini de kaldırılır
      • Böylece çok fazla disk alanı kaplayan [Container-ID]-json.log dosyası da birlikte silinir ve sistem genelinde disk alanı açılır
    • truncate -s 0 <json-log-file> komutunu çalıştırarak log dosyasının boyutu 0 yapılabilir
  • Log rotasyonu ayarlama
    • Log dosyasının en büyük boyutu (max-size) ve en fazla dosya sayısı (max-file) belirtilerek log rotasyonu etkinleştirilebilir
    • Dosya boyutu belirlenen üst sınıra ulaştığında yeni bir dosyaya geçilir; mevcut dosyalar ...-json.log.1, ...-json.log.2 şeklinde en fazla belirtilen sayıya kadar oluşturulur
    • Bu sayı aşıldığında en eski dosya silinir; böylece Docker container log dosyalarının sonsuza kadar büyümesi önlenir

Henüz yorum yok.

Henüz yorum yok.