Linux dağıtımları, yeni işlevlere ve yeni rollere uyum sağlama yetenekleri sayesinde ve hepsinden önemlisi açık kod sayesinde ücretsiz olarak her tür kurumsal ortam için idealdir.
Sistemin tüm yönleri üzerinde merkezi kontrol için tasarlanmış binlerce uygulamamız veya yardımcı programımız var ve bu şekilde yöneticiler veya BT personeli olarak bir arıza meydana geldiğinde kesin olarak bilir ve nasıl çözüleceğini bilir.
Bu geniş olasılık yelpazesi içinde, dağıtımın bir yardımcı programı olan Logrotate'i buluyoruz ve işlevi, günlük dosyalarının döndürülmesi ve sıkıştırılmasıdır.
Bu görev önemlidir, çünkü bu dosyalar üzerinde herhangi bir işlem yapılmadığında, sabit diskteki alan etkilenebilir ve diğer genel hatalara yol açabilir.
Bu durumda Ubuntu 17.10'u kullanacağız ve Logrotate varsayılan olarak kuruludur ve varsayılan sistem günlüğü işlemcisi olan rsyslog dahil olmak üzere kurulu tüm paketlerin günlük döndürme görevlerini yönetmek için zaten yapılandırılmıştır.
Ardından, bu değerli yardımcı programın nasıl kurulacağını ve kullanılacağını göreceğiz.
1. Logrotate yüklü Linux sürümünü tanımlayın
Atılacak ilk adım, Logrotate'in hangi sürümüne sahip olduğumuzu ayrıntılı olarak bilmek, bu durumda Ubuntu 17.10. Bunu yapmak için aşağıdaki komutu uyguluyoruz:
logrotate -sürümSonuç aşağıdaki gibi olacaktır:
BÜYÜT
Logrotate kurulu değilse hata alırız. Aracı, kullanılan Linux dağıtımının paket yöneticisini kullanarak kurabiliriz.
Logrotate kuruluysa ancak sürüm numarası önemli ölçüde farklıysa, yardımcı programın bazı ayarlarında sorun yaşayabiliriz. Logrotate'in belirli sürümünün belgelerine doğrudan kılavuz sayfasından bakabiliriz:
adam logrotateLinux dağıtımında Logrotate'in varsayılan yapılandırma yapısını görebiliriz:
BÜYÜT
2. Logrotate Linux yapılandırması
Logrotate yapılandırma bilgileri, Ubuntu durumunda genellikle iki yerde bulunabilir:
vb / logrotate.confBu dosya bazı varsayılan ayarları içerir ve herhangi bir sistem paketine ait olmayan bazı günlüklerin dönüşünü ayarlar. Ayrıca /etc/logrotate.d dizinindeki herhangi bir dosyadan ayarları almak için bir include ifadesini kullanır.
/etc/logrotate.d/Bu dizin, kurduğumuz ve günlük döndürme konusunda yardıma ihtiyaç duyduğumuz herhangi bir paketin Logrotate yapılandırmasını yerleştireceği yerdir. Standart bir kurulumda, apt, dpkg, rsyslog vb. gibi temel sistem araçları için dosyalar burada zaten mevcut olmalıdır.
Varsayılan olarak, logrotate.conf, kök kullanıcıya ve syslog grubuna (su root syslog) ait günlük dosyalarıyla birlikte haftalık günlük rotasyonlarını (haftalık) yapılandırır, dört günlük dosyası tutulur (4'ü döndürür) ve yeni dosyalar boş oluşturulur kayıtlar. akım döndürüldükten sonra oluşturulur (oluştur).
/etc/logrotate.d içindeki bir paketin Logrotate yapılandırma dosyasına cat yardımcı programını kullanarak erişebiliriz:
cat /etc/logrotate.d/apt
BÜYÜT
Bu dosya / var / log / apt / dizinindeki iki farklı günlük dosyası için yapılandırma blokları içerir: term.log ve history.log. İkisinin de seçenekleri aynı.
Bu yapılandırma bloklarında ayarlanmayan herhangi bir seçenek, varsayılan değerleri veya /etc/logrotate.conf içinde ayarlananları devralır. Uygun günlükler için yapılandırılan seçenekler şunlardır:
12 döndürOn iki eski günlük dosyasını korur.
AylıkAyda bir kez döndürün.
KompresDöndürülen dosyaların sıkıştırılmasıyla ilgilenir. Bu, varsayılan olarak gzip'i kullanır ve .gz uzantısıyla biten dosyalarla sonuçlanır. Sıkıştırma komutu, sıkıştırma cmd seçeneği kullanılarak değiştirilebilir.
eksikGünlük dosyası eksikse hata mesajı yazmaz.
notifemptyBoş ise günlük dosyasını döndürmez.
Daha birçok yapılandırma seçeneği mevcuttur.
3. Bir Linux Logrotate hizmeti yapılandırın ve /etc/logrotate.d/ dizinine yapılandırma ekleyin
Ardından oluşturacağımız bir servisin loglarını işlemek için bir konfigürasyon dosyası konfigüre edeceğiz.
Önceden paketlenmiş ve önceden yapılandırılmış sistem hizmetleri dışındaki uygulamaların günlük dosyalarını yönetmek için iki seçeneğimiz vardır:
- Yeni bir Logrotate yapılandırma dosyası oluşturun ve /etc/logrotate.d/ yoluna yerleştirin. Bu, diğer tüm standart Logrotate işleriyle birlikte günlük olarak kök kullanıcı olarak çalışacaktır.
- Yeni bir yapılandırma dosyası oluşturun ve bunu Ubuntu'nun varsayılan Logrotate yapılandırmasının dışında çalıştırın. Bu, yalnızca Logrotate'i root olmayan bir kullanıcı olarak çalıştırmamız gerekiyorsa veya günlükleri günlükten daha sık döndürmek istiyorsanız gereklidir ( /etc/logrotate.d/ içindeki saatlik bir ayar, sistemin Logrotate ayarı etkili olmaz çünkü yalnızca günde bir kez çalışır).
Bu durumda, /var / log /solvetic-app / yoluna bir access.log ve error.log koyan bir web sunucusu için günlük döndürmeyi yapılandırmak istiyoruz. www-data kullanıcısı ve grubu olarak çalışacaktır.
/etc/logrotate.d/ dizinine bazı konfigürasyonlar eklemek için, önce aşağıdaki gibi yeni bir dosya açmalıyız:
sudo nano /etc/logrotate.d/solvetic-apporada şu satırları ekleyeceğiz:
/var/log/solvetic-app/*.log {günlük kayıp ok döndürme 14 sıkıştır notifempty 0640 www-veri oluştur www-veri paylaşılan komut dosyaları postrotate systemctl çözücü-uygulama bitiş kodunu yeniden yükle}
BÜYÜT
Ctrl + O tuş kombinasyonunu kullanarak değişiklikleri kaydedebilir ve Ctrl + X kullanarak editörden çıkarız.
Bu dosyadaki yeni yapılandırma yönergelerinden bazıları şunlardır:
0640 www-veri www-veri oluşturBu parametre, döndürmeden sonra belirtilen izinler (0640), sahip (www-veri) ve grup (ayrıca www-data) ile yeni bir boş günlük dosyası oluşturur.
paylaşılan komut dosyalarıBu bayrak, yapılandırmaya eklenen komut dosyalarının, döndürülen her dosya için değil, çalıştırma başına yalnızca bir kez çalıştığını gösterir.
son komut dosyasına geri döndürBu blok, günlük dosyası döndürüldükten sonra çalıştırılacak bir komut dosyası içerir. Bu durumda, solvent uygulamamızı yeniden yükleyebiliriz. Bu, bazen uygulamanın yeni oluşturulan günlük dosyasına geçmesi için gereklidir.
Günlükler kontrol edilmeden önce postrotate yürütmeleri hesaba katmalıyız. Sıkıştırma uzun sürebilir ve yazılım hemen yeni günlük dosyasına geçmelidir. Kayıtlar sıkıştırıldıktan sonra çalışması gereken görevler için bunun yerine lastaction bloğunu kullanın.
İhtiyaçlarımıza en uygun konfigürasyonu özelleştirdikten ve /etc/logrotate.d dosyasına kaydettikten sonra, aşağıdaki satırı çalıştırarak kontrol edebiliriz.
sudo logrotate /etc/logrotate.conf -debugBu, logrotate'i çağırır, standart konfigürasyon dosyasına işaret eder ve hata ayıklama modunu etkinleştirir:
BÜYÜT
Logrotate'in hangi günlük dosyalarını işlediği ve bunlar üzerinde nelerin yürütüldüğü ile ilgili bilgiler yazdırılacaktır. Her şey yolunda görünüyorsa işimiz bitmiştir. Standart Logrotate işi günde bir kez çalışacak ve yeni ayarlarınızı içerecektir.
4. Bağımsız Günlük Kaydı Yapılandırması Nasıl Oluşturulur Lograte Linux
İlk olarak ana dizinimizde bir konfigürasyon dosyası oluşturacağız. Bir metin düzenleyiciyle açabiliriz:
sudo nano /home/solvetic/logrotate.confYeni dosyaya aşağıdakileri yapıştıracağız:
/home/solvetic/logs/*.log {saatlik eksik ok döndürme 24 sıkıştırma oluşturma}
BÜYÜT
Değişiklikleri kaydedip dosyadan çıkabiliriz.
Bu ayar, yirmi dört eski kaydı sıkıştırarak ve koruyarak ve döndürülen dosyanın yerine yeni bir günlük dosyası oluşturarak dosyaları saatte bir döndürecektir. Doğru çalıştığını test etmek için aşağıdaki satırları yürüterek bir günlük dosyası oluşturabiliriz:
cd ~ sudo mkdir günlükleri sudo touch günlükleri / access.log
BÜYÜT
Artık doğru yerde boş bir günlük dosyamız olduğuna göre, logrotate komutunu çalıştıracağız.
Aşağıdakileri uygulayacağız:
logrotate /home/solvetic/logrotate.conf --state / home /solvetic / logrotate-state -verbose
BÜYÜT
--verbose parametresi, Logrotate ile ne çalıştırdığımız hakkında ayrıntılı bilgi yazdıracaktır. Bu durumda, hiçbir şeyin dönmediğini göreceğiz. Logrotate bu günlük dosyasını ilk kez görüyor ve bildiğimiz gibi dosya sıfır saatlik ve döndürülmemeli.
Durum dosyasına bakarsak, Logrotate'in gerçekleştirdiğimiz yürütme ile ilgili belirli bilgileri kaydettiğini göreceğiz:
kedi / ev / çözücü / logrotate durumuAşağıdakileri göreceğiz:
BÜYÜT
Logrotate, analiz ettiği kayıtları ve bunları rotasyon için en son ne zaman değerlendirdiğini kaydetti. Aynı komutu bir saat sonra çalıştırırsak, kayıt istendiği gibi döndürülecektir. Logrotate'i, aksi halde olmaması gerektiğinde günlük dosyasını döndürmeye zorlamak istiyorsanız, --force bayrağını kullanabiliriz:
sudo logrotate /home/solvetic/logrotate.conf --state / home /solvetic / logrotate-state --verbose -force
5. Achieve Linux'ta Zamanlanmış Görev Oluşturma
Son olarak, Logrotate'i her saat başı çalıştırmak için bir cron işi yapılandırmamız gerekiyor. Bunu yapmak için, aşağıdakileri yürüterek kullanıcımızın crontab'ını açıyoruz:
crontab -eAçık dosyaya aşağıdaki satırı ekleyeceğiz:
14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / çözücü / logrotate-state
BÜYÜT
Bu görev, her gün, her saatin 14. dakikasında gerçekleştirilecektir. Temelde daha önce çalıştırdığımız logrotate komutuyla çalışır, ancak logrotate'i / usr / sbin / logrotate yolunun tamamına genişletmiş olmamıza rağmen. Dosyayı Ctrl + O tuş kombinasyonunu kullanarak kaydedebilir ve Ctrl + X kullanarak çıkabiliriz.
Böylece, herhangi bir Linux dağıtımında kayıtları yönetme ve kontrol etme söz konusu olduğunda Logrotate'in nasıl basit ama etkili bir yardımcı program olduğunu gördük.