Linux Yöneticisi - Günlük Yönetimi
systemd, CentOS Linux için sistem günlüğünün yönetilme şeklini değiştirdi. Sistemdeki her arka plan programı, günlükleri ayrı konumlara yerleştirmek yerine, günlük girişlerini sıralama ve filtrelemenin birincil yolu olarak tail veya grep gibi araçları kullanmak yerine ,journald sistem günlüklerini analiz etmeye tek bir yönetim noktası getirdi.
Arkasındaki ana bileşenleri systemd günlük şunlardır: dergi, jounralctl ve journald.conf
journald ana günlük sunucu programı ve düzenleyerek yapılandırılmış journald.conf ise journalctl olaylar tarafından kaydedilen analiz etmek için kullanılır journald .
Journald tarafından günlüğe kaydedilen olaylar şunları içerir: çekirdek olayları, kullanıcı işlemleri ve daemon hizmetleri.
Doğru Sistem Saat Dilimini Ayarlayın
Journalctl'yi kullanmadan önce , sistem saatimizin doğru saate ayarlandığından emin olmamız gerekir. Bunu yapmak için timedatectl kullanmak istiyoruz .
Mevcut sistem saatini kontrol edelim.
[root@centos rdc]# timedatectl status
Local time: Mon 2017-03-20 00:14:49 MDT
Universal time: Mon 2017-03-20 06:14:49 UTC
RTC time: Mon 2017-03-20 06:14:49
Time zone: America/Denver (MDT, -0600)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: yes
Last DST change: DST began at
Sun 2017-03-12 01:59:59 MST
Sun 2017-03-12 03:00:00 MDT
Next DST change: DST ends (the clock jumps one hour backwards) at
Sun 2017-11-05 01:59:59 MDT
Sun 2017-11-05 01:00:00 MST
[root@centos rdc]#
Şu anda, sistem yerel saat dilimine göre doğrudur. Sisteminiz değilse, doğru saat dilimini ayarlayalım. Ayarları değiştirdikten sonra, CentOS, sistem saatini hemen ayarlayarak, saat dilimi farkını mevcut saat diliminden otomatik olarak hesaplayacaktır.
Timedatectl ile tüm zaman dilimlerini listeleyelim -
[root@centos rdc]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Bu, timedatectl list-saat dilimlerinden gelen iddia edilen çıktıdır . Belirli bir yerel saat dilimini bulmak için grep komutu kullanılabilir -
[root@centos rdc]# timedatectl list-timezones | grep -i "america/New_York"
America/New_York
[root@centos rdc]#
CentOS tarafından kullanılan etiket genellikle Ülke / Bölge'dir ve boşluk yerine alt çizgi bulunur (New_York'a karşı "New York").
Şimdi saat dilimimizi ayarlayalım -
[root@centos rdc]# timedatectl set-timezone "America/New_York"
[root@centos rdc]# date
Mon Mar 20 02:28:44 EDT 2017
[root@centos rdc]#
Sistem saatiniz zamanı otomatik olarak ayarlamalıdır.
Günlükleri Analiz etmek için journalctl kullanın
Journalctl kullanılırken ortak komut satırı anahtarları -
Değiştirmek | Aksiyon |
---|---|
-k | Yalnızca çekirdek mesajlarını listeler |
-u | Belirli birime göre listeler (httpd, sshd, vb.) |
-b | Etiket ofsetini başlatır |
-Ö | Çıktı formatını günlüğe kaydeder |
-p | Günlük türüne göre filtreler (ad veya numara) |
-F | Alan adı veya alan adı değeri |
--UTC | UTC farkına göre saat |
--dan beri | Zaman dilimine göre filtrele |
Önyükleme Günlüklerini İnceleyin
Öncelikle, CentOS Linux'ta önyükleme günlüklerini inceleyip yapılandıracağız. Fark edeceğiniz ilk şey, CentOS'un varsayılan olarak, yeniden başlatma sırasında kalıcı olan önyükleme günlüğünü saklamamasıdır.
Yeniden başlatma örneği başına önyükleme günlüklerini kontrol etmek için aşağıdaki komutu verebiliriz -
[root@centos rdc]# journalctl --list-boots
-4 bca6380a31a2463aa60ba551698455b5 Sun 2017-03-19 22:01:57 MDT—Sun 2017-03-19 22:11:02 MDT
-3 3aaa9b84f9504fa1a68db5b49c0c7208 Sun 2017-03-19 22:11:09 MDT—Sun 2017-03-19 22:15:03 MDT
-2 f80b231272bf48ffb1d2ce9f758c5a5f Sun 2017-03-19 22:15:11 MDT—Sun 2017-03-19 22:54:06 MDT
-1 a071c1eed09d4582a870c13be5984ed6 Sun 2017-03-19 22:54:26 MDT—Mon 2017-03-20 00:48:29 MDT
0 9b4e6cdb43b14a328b1fa6448bb72a56 Mon 2017-03-20 00:48:38 MDT—Mon 2017-03-20 01:07:36 MDT
[root@centos rdc]#
Sistemi yeniden başlattıktan sonra başka bir giriş görebiliriz.
[root@centos rdc]# journalctl --list-boots
-5 bca6380a31a2463aa60ba551698455b5 Sun 2017-03-19 22:01:57 MDT—Sun 2017-03-19 22:11:02 MDT
-4 3aaa9b84f9504fa1a68db5b49c0c7208 Sun 2017-03-19 22:11:09 MDT—Sun 2017-03-19 22:15:03 MDT
-3 f80b231272bf48ffb1d2ce9f758c5a5f Sun 2017-03-19 22:15:11 MDT—Sun 2017-03-19 22:54:06 MDT
-2 a071c1eed09d4582a870c13be5984ed6 Sun 2017-03-19 22:54:26 MDT—Mon 2017-03-20 00:48:29 MDT
-1 9b4e6cdb43b14a328b1fa6448bb72a56 Mon 2017-03-20 00:48:38 MDT—Mon 2017-03-20 01:09:57 MDT
0 aa6aaf0f0f0d4fcf924e17849593d972 Mon 2017-03-20 01:10:07 MDT—Mon 2017-03-20 01:12:44 MDT
[root@centos rdc]#
Şimdi, son önyükleme günlük kaydı örneğini inceleyelim -
root@centos rdc]# journalctl -b -5
-- Logs begin at Sun 2017-03-19 22:01:57 MDT, end at Mon 2017-03-20 01:20:27 MDT. --
Mar 19 22:01:57 localhost.localdomain systemd-journal[97]: Runtime journal is using 8.0M
(max allowed 108.4M
Mar 19 22:01:57 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Mar 19 22:01:57 localhost.localdomain kernel: Initializing cgroup subsys cpu
Mar 19 22:01:57 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Mar 19 22:01:57 localhost.localdomain kernel: Linux version 3.10.0514.6.2.el7.x86_64
([email protected].
Mar 19 22:01:57 localhost.localdomain kernel: Command line:
BOOT_IMAGE=/vmlinuz-3.10.0-514.6.2.el7.x86_64 ro
Mar 19 22:01:57 localhost.localdomain kernel: Disabled fast string operations
Mar 19 22:01:57 localhost.localdomain kernel: e820: BIOS-provided physical RAM map:
Yukarıda, son önyüklememizin yoğunlaştırılmış çıkışı var. Ayrıca saatler, günler, haftalar, aylar ve hatta yıllardan bir önyükleme günlüğüne de başvurabiliriz. Ancak, varsayılan olarak CentOS kalıcı önyükleme günlüklerini saklamaz. Kalıcı olarak önyükleme günlüklerinin depolanmasını etkinleştirmek için birkaç yapılandırma değişikliği yapmamız gerekiyor -
- Önyükleme günlükleri için merkezi depolama noktaları oluşturun
- Yeni bir günlük klasörüne uygun izinleri verin
- Kalıcı günlük kaydı için journald.conf'u yapılandırın
Kalıcı Önyükleme Günlükleri için Önyükleme Konumunu Yapılandırma
Günlüklerin kalıcı önyükleme günlüklerini depolamak isteyeceği ilk yer / var / log / journal'dir . Bu varsayılan olarak mevcut olmadığından, onu oluşturalım -
[root@centos rdc]# mkdir /var/log/journal
Şimdi dizine journald daemon erişimi için uygun izinler verelim -
systemd-tmpfiles --create --prefix /var/log/journal
Son olarak, journald'a kalıcı önyükleme günlüklerini kaydetmesi gerektiğini söyleyelim . In vim veya sevdiğiniz metin editörü, açık /etc/systemd/jounrald.conf" .
# See journald.conf(5) for details.
[Journal]=Storage=peristent
İlgilendiğimiz satır, Storage = . Önce # yorumu kaldırın , ardından şu şekilde değiştirin:Storage = persistentyukarıda gösterildiği gibi. CentOS sisteminizi kaydedin ve yeniden başlatın ve journalctl list-boots çalıştırırken birden fazla giriş olmasına dikkat edin .
Note- Bir VPS sağlayıcısından aldığı gibi sürekli değişen bir makine kimliği , journald'ın kalıcı önyükleme günlüklerini depolamada başarısız olmasına neden olabilir . Böyle bir senaryo için birçok geçici çözüm var. Mantıklı VPS geçici çözümleri bulanların güvenilir tavsiyelerini takip etmektense, CentOS Admin forumlarında yayınlanan mevcut düzeltmeleri incelemek en iyisidir.
Belirli bir önyükleme günlüğünü incelemek için, her bir ofseti journald --list-boots ile ofseti -b anahtarıyla elde etmemiz yeterlidir . İkinci önyükleme günlüğünü kontrol etmek için kullanacağımız -
journalctl -b -2
Önyükleme günlüğü uzaklığı belirtilmemiş varsayılan for -b , her zaman son yeniden başlatmadan sonra geçerli önyükleme günlüğü olacaktır.
Günlükleri Günlük Türüne Göre Analiz Et
Etkinlikler journald sayılı ve 7 ayrı tür halinde sınıflandırılırlar -
0 - emerg :: System is unusable
1 - alert :: Action must be taken immediatly
2 - crit :: Action is advised to be taken immediatly
3 - err :: Error effecting functionality of application
4 - warning :: Usually means a common issue that can affect security or usilbity
5 - info :: logged informtation for common operations
6 - debug :: usually disabled by default to troubleshoot functionality
Bu nedenle, tüm uyarıları görmek istiyorsak aşağıdaki komut journalctl aracılığıyla verilebilir -
[root@centos rdc]# journalctl -p 4
-- Logs begin at Sun 2017-03-19 22:01:57 MDT, end at Wed 2017-03-22 22:33:42 MDT. --
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: RSDP 00000000000f6a10 00024
(v02 PTLTD )
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: XSDT 0000000095eea65b 0005C
(v01 INTEL 440BX 06040000 VMW 01
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: FACP 0000000095efee73 000F4
(v04 INTEL 440BX 06040000 PTL 00
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: DSDT 0000000095eec749 1272A
(v01 PTLTD Custom 06040000 MSFT 03
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: FACS 0000000095efffc0 00040
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: BOOT 0000000095eec721 00028
(v01 PTLTD $SBFTBL$ 06040000 LTP 00
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: APIC 0000000095eeb8bd 00742
(v01 PTLTD ? APIC 06040000 LTP 00
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: MCFG 0000000095eeb881 0003C
(v01 PTLTD $PCITBL$ 06040000 LTP 00
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: SRAT 0000000095eea757 008A8
(v02 VMWARE MEMPLUG 06040000 VMW 00
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: HPET 0000000095eea71f 00038
(v01 VMWARE VMW HPET 06040000 VMW 00
Mar 19 22:01:57 localhost.localdomain kernel: ACPI: WAET 0000000095eea6f7 00028
(v01 VMWARE VMW WAET 06040000 VMW 00
Mar 19 22:01:57 localhost.localdomain kernel: Zone ranges:
Mar 19 22:01:57 localhost.localdomain kernel: DMA [mem 0x000010000x00ffffff]
Mar 19 22:01:57 localhost.localdomain kernel: DMA32 [mem 0x010000000xffffffff]
Mar 19 22:01:57 localhost.localdomain kernel: Normal empty
Mar 19 22:01:57 localhost.localdomain kernel: Movable zone start for each node
Mar 19 22:01:57 localhost.localdomain kernel: Early memory node ranges
Mar 19 22:01:57 localhost.localdomain kernel: node 0: [mem 0x000010000x0009dfff]
Mar 19 22:01:57 localhost.localdomain kernel: node 0: [mem 0x001000000x95edffff]
Mar 19 22:01:57 localhost.localdomain kernel: node 0: [mem 0x95f000000x95ffffff]
Mar 19 22:01:57 localhost.localdomain kernel: Built 1 zonelists in Node order,
mobility grouping on. Total pages: 60
Mar 19 22:01:57 localhost.localdomain kernel: Policy zone: DMA32
Mar 19 22:01:57 localhost.localdomain kernel: ENERGY_PERF_BIAS: Set to
'normal', was 'performance'
Yukarıdakiler, sistemdeki son 4 güne ait tüm uyarıları gösterir.
Systemd ile günlükleri görüntülemenin ve incelemenin yeni yolu, aşina olmak için çok az pratik ve araştırma gerektiriyor. Ancak, farklı çıktı biçimleri ve tüm paketlenmiş arka plan programı günlüklerini evrensel hale getirmeye özel bir uyarı ile kucaklanmaya değer. journald , geleneksel günlük analiz yöntemlerine göre büyük esneklik ve verimlilik sunar.