共計 3383 個字符,預計需要花費 9 分鐘才能閱讀完成。
這篇文章給大家介紹 Linux 服務器管理員 Journald 的初級指南是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
Journald 是為 Linux 服務器打造的新系統(tǒng)日志方式,它標志著文本日志文件的終結。現(xiàn)在日志信息寫入到二進制文件,使用 journalctl 閱讀,要獲得這些信息,Linux 管理員將需要一些實踐。
Red Hat Enterprise Linux 7 與 SUSE Linux Enterprise Server 12 這些下一代的 Linux 發(fā)行版本使用 systemd 管理服務。journal 是 systemd 的一個組件,由 journald 處理。它捕獲系統(tǒng)日志信息、內核日志信息,以及來自原始 RAM 磁盤的信息,早期啟動信息以及所有服務中寫入 STDOUT 和 STDERR 數(shù)據流的信息。Journald 快速改變著服務器如何處理日志信息與管理員如何訪問的方式。
對日志文件說再見
在 systemd 與 journald 世界中沒有日志文件的位置。journald 日志寫入二進制文件,在紅帽系統(tǒng)上,位于 /run/log/journal 中。你不應該也不能使用頁面打開文件。反之,使用 journalctl 查看內容。該命令顯示所有登錄到服務器的信息(見表 1)。
表 1:journalctl 輸出表默認格式的樣子。
Apr 04 09:48:59 localhost.localdomain chronyd[768]: Can t synchronise: no majority Apr 04 09:50:01 localhost.localdomain systemd[1]: Starting Session 3 of user root. Apr 04 09:50:01 localhost.localdomain systemd[1]: Started Session 3 of user root. Apr 04 09:50:01 localhost.localdomain CROND[3699]: (root) CMD (/usr/lib64/sa/sa1 1 1) Apr 04 09:50:03 localhost.localdomain chronyd[768]: Selected source 46.249.47.127 Apr 04 09:50:03 localhost.localdomain chronyd[768]: System clock wrong by -2.417074 seconds, adjustment started Apr 04 09:50:36 localhost.localdomain pulseaudio[3163]: [alsa-sink] alsa-sink.c: ALSA woke us up to write new data to the device, but there Apr 04 09:50:36 localhost.localdomain pulseaudio[3163]: [alsa-sink] alsa-sink.c: Most likely this is a bug in the ALSA driver snd_ens1371 . Apr 04 09:50:36 localhost.localdomain pulseaudio[3163]: [alsa-sink] alsa-sink.c: We were woken up with POLLOUT set -- however a subsequent s Apr 04 09:51:07 localhost.localdomain chronyd[768]: Selected source 81.171.44.131 Apr 04 09:52:12 localhost.localdomain chronyd[768]: System clock wrong by 0.669116 seconds, adjustment started Apr 04 09:53:17 localhost.lo
無需擔心,journalctl 有很多過濾選項。Journalctl - b 過濾在啟動時產生的信息。Journalctl –since=yesterday 只顯示自從昨天登錄開始的信息。管理員可以從具體的天數(shù)范圍搜索信息:例如,journalctl –since=2014-03-15 –until= 2014-03-17 23:59:59。使用 journalctl -u httpd since=00:00 –until=8:00 查看昨晚登錄的 httpd 進程。如果管理員掌握了高級的 journald 過濾選項,分析日志文件就更加輕松。
某些情況下,journalctl 顯示的默認日志信息在細節(jié)上還不夠。要獲得更多信息,將輸出格式設置為 verbose,使用命令 journalctl -o verbose -n。
表 2:通過顯示 verbose 日志信息,Linux 管理員可以從日志文件獲取更多信息。
Fri 2014-04-04 10:12:32.072521 CEST [s=a52ddd97575747a18c6378d388b2b9ff;i=955;b=bc03fb52eddb41 b0bb4829ae19c1c286;m=8f1dd 5f2;t=4f633145a58d9; PRIORITY=6 _UID=0 _GID=0 _BOOT_ID=bc03fb52eddb41b0bb4829ae19c1c286 _MACHINE_ID=1fbfd90ac4fc49919fe1b63d6bcf9097 _HOSTNAME=localhost.localdomain SYSLOG_FACILITY=3 _TRANSPORT=syslog _SYSTEMD_CGROUP=/system.slice/network.service _SYSTEMD_UNIT=network.service SYSLOG_IDENTIFIER=dhclient _COMM=dhclient E=/usr/sbin/dhclient _CMDLINE=/sbin/dhclient -H localhost -1-q-lf/var/lib/dhclient/dhclient-0b5faf33-6df0-4f11-bbb9-659b5cd940e9-ens33.lease -pf /var/run/ _CAP_EFFECTIVE=0000000000203402 _SELINUX_CONTEXT=system_u:system_r:dhcpc_t:s0 SYSLOG_PID=1760 _PID=1760 MESSAGE=bound to 192.168.4.232 -- renewal in 892 seconds. _SOURCE_REALTIME_TIMESTAMP=1396599152072521
Logrotate 與遠程日志
你所習慣的一些運作方式發(fā)生了變化。關閉與歸檔日志文件的系統(tǒng) Logrotate 變得日益巨大。在 journald 上,沒有必要循環(huán)日志文件。它構建的目的在于監(jiān)控存儲卷上的剩余空間。如果卷快滿了,就刪除舊有記錄釋放空間。要為 journald 日志設置一個 *** 尺寸,在 /etc/systemd/journal.conf 文件中修改 SystemMaxUse 參數(shù)。
遠程日志又是另一回事了。如果你的數(shù)據中心有一個遠程日志服務器,那就應該保留。journald 不是對集中日志服務器,如 rsyslog 或 syslog-ng do 的完全替代。Journald 沒有將來自其他服務器或設備的日志文件進行替代的選項。也沒有指定哪臺日志服務器的日志事件可以轉發(fā)的選項。如果你想要 journald 在其他地方存放日志信息,*** 做法是將信息轉發(fā)給 [r]syslog[{d-ng}],在這里處理集中的日志。
關于 Linux 服務器管理員 Journald 的初級指南是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。