Linux'taki yönetim görevleri, her saniye yürütülen işlemlerin, hizmetlerin ve rollerin miktarı nedeniyle birçok durumda karmaşıktır ve buna oturum açma, uygulama yüklemesi eklemeli ve her uygulamanın yönetilen dağıtımda kaydettiği tüm olayları unutmamalıyız. . Neyse ki yöneticiler ve kontrol veya denetim personeli için sistem olaylarının yönetimini ve kontrolünü kolaylaştırmak için geliştirilmiş çeşitli komutlarımız var ve bu nedenle Solvetic bu amaç için en önemli iki komuta odaklanacaktır. Syslog ve Klogd.
Günlük, daha sonra bu kaydı okuyabilmek ve özellikle hata veya güvenlik açıkları durumunda hangi olayların meydana geldiğini belirleyebilmek için uygulamalar veya işletim sistemi tarafından oluşturulan olayların, hataların, değişikliklerin ve işlemlerin kaydedildiği bir günlük gibidir. Linux sistemindeki günlük dosyaları / var / log dizininde bulunur.Linux günlük sistemi iki Daemon tarafından yönetilir:
SYSLOGDSistem günlüklerini oluşturur. Syslogd, bir Linux sistemini başlattığınızda otomatik olarak çalışır ve bilgisayarın çalışmasıyla ilgili raporların saklanmasından sorumludur. Sistemin farklı bölümlerinden, çekirdekten ve uygulamalardan mesajlar alır, /etc/syslog.conf yapılandırma dosyasında tanımlanan bir kriteri izleyerek bunları hem yerel hem de uzak farklı konumlarda saklar.
KLOGDÇekirdek günlüklerini oluşturun. klogd, çekirdek günlük mesajlarını sistem günlüğüne yönlendirir. Kullanıcı, syslogd yapılandırma dosyasını düzenleyerek çekirdek mesajlarının işlenmesini kontrol edebilir. Bu klogd uygulamaları özellikle çekirdek geliştiricileri için kullanışlıdır.
1. Linux günlüklerinde Syslogd nedir ve nasıl kullanılır?
Ne olduğunu ve Syslogd'u nasıl kullanacağımızı görelim
Syslogd nedir?Syslogd (Linux sistem günlüğü yardımcı programları), bize birçok modern program tarafından kullanılan bir günlük türü veren bir komuttur, Syslogd sayesinde, kaydedilen her mesaj en az bir zaman ve bir ana bilgisayar adı alanı içerir, bu da izleme görevlerini çok daha basit hale getirir ve analiz etmek daha kolay.
Syslogd komutunun standart bir BSD davranışı vardır ve Syslogd'un yeni sürümleri, standart kitaplıklarda bulunan syslog sürümüyle şeffaf bir şekilde etkileşime girer; bu nedenle, standart paylaşılan kitaplıklara bağlı bir ikili dosya düzgün çalışmıyorsa, Syslogd bunun davranışını görüntüler. ikili.
Aşama 1
Ana yapılandırma dosyası /etc/syslog.conf'dur ve günlük genellikle kural girişleriyle belirtilir. Seçici (facility.priority) ve eylem her satırda belirtilir. Akılda tutulması gereken bir şey, modern Linux dağıtımları, Syslogd komutunun rsyslog veya syslog-ng gibi yeni Syslog uygulamaları ile değiştirildiğidir, bu nedenle Syslogd'u kullanmak istiyorsak aşağıdaki komutla kurabiliriz:
uygun kurulum inetutils-syslogd
BÜYÜT
Adım 2
Syslogd'un indirilmesini ve kurulmasını onaylamak için S harfini girmeliyiz. Kurulduktan sonra, aşağıdaki /etc/syslog.conf yolunda bulunan yapılandırma dosyasına gidebiliriz:
nano /etc/syslog.conf
BÜYÜT
Aşama 3
Orada Syslogd'un bilgileri yakalamak için kullanacağı tüm yolları buluyoruz. Syslogd için genel amaçlı sözdizimi aşağıdaki gibidir:
syslogd [-a soketi] [-d] [-f yapılandırma dosyası] [-h] [-l ana bilgisayar listesi] [-m aralığı] [-n] [-p soketi] [-r] [-s liste etki alanı] [-S] [-v] [-x]4. Adım
Sahip olduğumuz mevcut seçenekler arasında:
Ekstra soketleri belirtinBu argüman, Syslogd'un dinlemesi gereken ek soketleri belirtmemize izin verir, bir chroot () ortamında bazı arka plan programlarının çalıştırılması durumunda kullanılır. 19 adede kadar ek prizden yararlanmak mümkün olacaktır.
-bir soket
Hata ayıklama modunu etkinleştirbu argüman, Syslog'u ön planda tutacak ve böylece mevcut tty'ye birçok hata ayıklama bilgisi yazacak olan hata ayıklama modunu etkinleştirir.
-NS
Yapılandırma dosyasıBu bağımsız değişken, varsayılan /etc/syslog.conf dosyası yerine alternatif bir yapılandırma dosyası belirtir.
-f yapılandırma dosyası
Uzak mesaj yönlendirmeyi engelleBu parametre, Syslogd'un uzak ana bilgisayarlardan aldığı mesajları iletmesini engeller.
-H
Ağ adını tanımlayınBu parametre sayesinde, FQDN ile değil, yalnızca basit ana bilgisayar adıyla kaydedilmesi gereken bir ana bilgisayar adı belirtilebilir.
-l ana bilgisayar listesi (Ana bilgisayarların listesi)
Zaman aralığını tanımlayınBu parametreden yararlanarak kullanılacak zaman aralığını belirtebiliriz, varsayılan değer 20 dakikadır.
-m aralığı
Syslodg'u çalıştırmaktan kaçınınBu parametre, Syslogd'un arka planda çalışmasını engeller.
-n
Alan soketini ayarla/ dev / log yerine alternatif bir Unix etki alanı soketi belirlememizi sağlar.
-p soketi
Ağ mesajlarına izin verBu seçenek, kurulumun Syslog hizmetiyle bir İnternet etki alanı soketi kullanarak ağdan mesaj almasına izin verecektir.
-r
Alan adını tanımlayınBu parametre, oturum açmadan önce kaldırılması gereken bir alan adını belirtir.
-s alan listesi
Kaydı etkinleştirAyrıntılı günlük kaydını etkinleştir,
-S
Geçerli sürümü etkinleştirSyslogd'un mevcut sürümünü görüntüleyin.
-v
BÜYÜT
Adım 5
Mevcut seçeneklerden herhangi birini yürütürken, dahili olarak yürütülen tüm görevleri görebiliriz:
BÜYÜT
2. Syslogd Linux günlüklerindeki sinyaller
Aşama 1
Syslogd bir dizi sinyale tepki verebilir, Syslogd'a sinyal gönderme seçeneği şu şekildedir:
kill -SIGNAL 'cat /var/run/syslogd.pid'Adım 2
Bu sinyal yürütüldüğünde, çeşitli bileşenler gibi. Bu nedenle Syslogd, Linux olaylarını analiz etmek için pratik bir çözümdür.
SIGHUPBu seçenek, Syslogd'un tüm açık dosyaların kapatıldığı, yapılandırma dosyasının yeniden okunacağı ve Syslog kurulumunun yeniden başlayacağı bir yeniden başlatma işlemi gerçekleştirmesine olanak tanır.
SIGTERMHizmet sona erecek.
SIGINT, SIGQUITHata ayıklama etkinleştirilirse bunlar yok sayılır, aksi takdirde Syslogd'un süresi dolar.
SIGUSR1Hata ayıklamayı etkinleştirin veya devre dışı bırakın.
SIGCHLDYeni mesajları bekleyin.
3. Linux syslogd dosyasını yapılandırın
Syslogd, yapılandırma dosyasında geleneksel orijinal BSD kaynak dosyasından biraz farklı bir sözdizimi kullanır. Syslogd yapılandırması /etc/syslogd.conf dosyası aracılığıyla yapılır. Bu dosya aracılığıyla farklı mesajların nereye yönlendirileceği belirtilir. "#" karakteriyle satırları boş bırakabilir veya tüm satırları yorumlayabilirsiniz.
Syslog'un uzak bağlantıları kabul etmesi için -r parametresini eklemeliyiz
SYSLOGD_OPTIONS = "- r -m 0"Normalde syslogd 514 numaralı portu kaplar, hangi portta çalıştığını test etmek için güvenlik duvarının engellemediğini kontrol etmeliyiz, terminalden aşağıdaki kodu yazıyoruz
grep sistem günlüğü / vb / hizmetlerBu satırdaki servis loglarında "mail, cron, info" loglarının mesaj dizinine gittiğini görebiliriz.
* .info; mail.none; authpriv.none; cron.none / var / log / mesajlarAşağıdaki komut ile tüm loglara mesaj göndermeye çalışacağız.
grep "Test mesajı" / var / log / *Bu durumda izinlerin reddedildiğini ve bu nedenle yazılamadıklarını görebiliriz.
İhtiyaçlarımıza göre izinlerin değiştirilmesinin gerekli olup olmadığının tespiti gerekecektir. Günlükler, mesajların birkaç öncelik düzeyine sahiptir (en düşükten en yüksek önceliğe:
Arıza, hata ve uyarı kayıtları
hata ayıklama, bilgi, dikkat, uyarı, uyar, hata, hata, kritik, uyarı, ortaya çıkma ve panik
Mesaj türü günlükleriÇeşitli mesaj türü günlükleri
auth, authpriv, cron, arka plan programı, karakter aralığı, lpr, posta, işaret, haber, güvenlik, syslog, kullanıcı, uucpen önemlileri
- var / log / mesajlar: Burada öncelikli bilgi (bilgi), bildirim (bildirim) veya uyarı (uyarı) ile gelen günlükleri bulacağız.
- /var/log/kern.log: klogd tarafından oluşturulan çekirdek günlükleri burada depolanır.
- /var/log/auth.log: Bu günlük, sistemdeki oturum açmaları, yaptığımız zamanları vb. kaydeder. Başarısız denemeler, geçersiz anahtar türü veya geçersiz oturum açma bilgileriyle satırlara kaydedilir.
- / var / günlük / dmesg: sistem başlatılırken çekirdek tarafından üretilen bilgiler bu dosyada saklanır.
Bu günlük dosyaları her zaman bilgi biriktirir, bu nedenle bir noktada çok yer kaplayabilirler, bu sorunu çözmek için gerçekten gerekliyse sıkıştırabilir veya yedekleyebiliriz. Akılda tutulması gereken bazı değişiklikler şunlardır:
joker karakter kullanımıKullanımına bağlı olarak yukarıdaki tüm öncelikler ve hizmetler için bir joker karakter olarak kullanılır (ayırıcı karakter `. 'den önce veya sonra).
"*" (Yıldız) =
Önceliği işaretlemeSeçilen hattın hizmeti için tanımlanmış bir öncelik olmadığını gösterir.
"": (Boş, boşluk, boş)
Farklı hizmetler seçinAynı hat üzerinde aynı öncelik düzeyine sahip birden çok hizmeti belirtmenize olanak tanır.
"," (yemek yemek)
Farklı mesajları kontrol edinÇeşitli hizmetlerden ve önceliklerden gelen mesajları aynı alıcıya yönlendirmenizi sağlar.
";" (noktalı virgül)
Mesaj önceliğini seçinBize yalnızca tam olarak belirtilen önceliğe sahip mesajları saklama yeteneği verir.
"=" (Eşit)
4. Linux günlüklerinde Klogd nedir ve nasıl kullanılır?
Klogd nedirKlogd (Kernel Log Daemon), Linux çekirdeğinden gelen mesajları engellemek ve günlüğe kaydetmek için geliştirilmiş bir sistem arka plan programıdır. Klogd komutunun işlevi, kaynak, önceliklendirme ve çekirdek adreslerinin çözünürlüğü gibi birden çok çekirdek örneğini yakalamaya odaklanır.
Linux ortamlarında, aşağıdakiler gibi iki ana çekirdek kayıt defteri bilgisi kaynağımız vardır:
- / proc dosya sistemi
- Sistem çağrısı arayüzü (sys_syslog)
Çekirdekten bir mesaj alındığında, Klogd arka plan programı atanan öncelik seviyesini okuyacak ve ona syslog mesajına göre öncelik seviyesini verecektir. Klogd'u kullanırken, sistem konsolundaki çekirdek mesajlarının görüntüsünü değiştirmek de mümkün olacaktır, ortak bir çekirdekte, varsayılan konsol günlük seviyesi 7'ye ayarlanır, bu nedenle, daha düşük öncelik seviyesine sahip tüm mesajlar 7'ye (en yüksek öncelikli) ayarlanır. ) konsolda görünecektir. Öncelik seviyesi 7 mesajları "hata ayıklama" mesajları olarak kabul edilir ve bu nedenle diğer çekirdek olaylarını bilgiyle boğmamak için konsolda görünmez.
Klogd, Çekirdek Adres Çözümlemesi adlı bir özelliğe sahiptir, bu sayede, çekirdek bir dahili hata durumu algılarsa, genel bir koruma hatası protokolü otomatik olarak etkinleştirilir. Bu, çekirdeğin hata oluştuğunda işlemcinin durumunu gösteren bir durum raporu yazdırdığı GPF işleme prosedürünün bir parçasıdır, bu sonuç içinde mikroişlemci kayıtlarının içeriği, içeriğin içeriği gibi ayrıntıları göreceğiz. çekirdek yığını ve hatadan önce çalışan işlevlerin izlenmesi.
Koruma hatası sonuçlarından sayısal adreslerin çözümlenmesi işlemi manuel olarak veya çekirdek kaynaklarında bulunan ksymoops programı aracılığıyla yapılabilir. Klogd komutu, mevcut çekirdek yüklenebilir modüllerdeki koruma hatalarını teşhis etme sorununu destekler.
Aşama 1
Syslogd gibi, Klog da mevcut dağıtımlarda daha dinamik komutlarla değiştirildi, bu nedenle kurulumu için aşağıdakileri uygulayacağız. İndirmeyi ve kurulumu onaylamak için S harfini giriyoruz.
uygun yükleme meşgul kutusu-syslogd
BÜYÜT
Adım 2
Klogd sözdizimi aşağıdaki gibidir:
klogd [-cn] [-d] [-f fname] [-iI] [-n] [-o] [-p] [-s] [-k fname] [-v] [-x] [-2 ]Aşama 3
Bu seçenekler şunlardır:
Günlük seviyesini tanımlayınBu parametre, n'ye konsol iletileri için varsayılan günlüğe kaydetme düzeyini tanımlar.
-cn
Hata ayıklama modubu seçenek hata ayıklama modunu etkinleştirir.
-NS
Günlük mesajlarıfile, mesajları syslog kurulumu yerine belirtilen dosya adına kaydeder.
-F
Çalışan cinleri tanımlayınşu anda çalışan klogd arka plan programını tanımlar. Her iki anahtar da sembol bilgilerinin yüklenmesini / yeniden yüklenmesini kontrol eder.
-i -ben
Arka planda klogd'yi durdurKlogd'un arka planda çalışmasını önleyin.
-n
Mesaj arabelleklerinde tam okumaBu seçenek, Klogd'un çekirdek mesaj arabelleklerinde bulunan tüm mesajları okumasını ve kaydetmesini sağlar.
-veya
Sistem çağrısını zorlaKlogd komutunu, sistem çağrısı arabirimini çekirdek mesaj arabelleklerine kullanmaya zorlar.
-s
Klogd sürümünü görünKlogd sürümünü yazdırın.
-v
BÜYÜT
4. Adım
Giriş yaptıktan sonra tüm olayları okumak istiyorsak, aşağıdakileri uygulayacağız:
klogd -o -f ./krnl.msgAdım 5
Bundan sonra söz konusu dosyanın içeriğine erişmek mümkün olacaktır:
BÜYÜT
5. Linux'ta Klogd sinyalleri
Klogd komutu sekiz (8) sinyale yanıt verebilir: SIGHUP, SIGINT, SIGKILL, SIGTERM, SIGTSTP, SIGUSR1, SIGUSR2 ve SIGCONT. SIGINT, SIGKILL, SIGTERM ve SIGHUP sinyalleri, arka plan programının çekirdek günlük kaynaklarını kapatmasına ve işlemi doğru bir şekilde sonlandırmasına izin verirken, SIGTSTP ve SIGCONT sinyalleri çekirdek günlüğünü başlatmak ve durdurmak için kullanılır.
Aşama 1
Örneğin, / proc dosya sisteminin bağlantısını kesmek istiyorsak aşağıdaki komutları uygulamamız gerekir:
# kill -TSTP pid # umount / proc # kill -CONT pidAdım 2
Klogd ile kullanılacak bazı dosyalar şunlardır:
- / proc / kmsg: klogd çekirdek mesajları için kaynak dosyadır
- /var/run/klogd.pid: klogd'nin işlem kimliğini içeren dosyadır
- /boot/System.map, /System.map, /usr/src/linux/System.map - Bunlar, çekirdek sistem haritaları için varsayılan konumlardır.
Gördüğümüz gibi, Linux'ta çekirdek olaylarının doğru ve eksiksiz yönetimi için bu iki faydalı ve gerekli komuta sahibiz.