TT中國 發(fā)表于:14年05月30日 10:31 [綜述] DOIT.com.cn
Journald是為Linux服務(wù)器打造的新系統(tǒng)日志方式,它標(biāo)志著文本日志文件的終結(jié)。現(xiàn)在日志信息寫入到二進制文件,使用journalctl閱讀,要獲得這些信息,Linux管理員將需要一些實踐。
Red Hat Enterprise Linux 7與SUSE Linux Enterprise Server 12這些下一代的Linux發(fā)行版本使用systemd管理服務(wù)。journal是systemd的一個組件,由journald處理。它捕獲系統(tǒng)日志信息、內(nèi)核日志信息,以及來自原始RAM磁盤的信息,早期啟動信息以及所有服務(wù)中寫入STDOUT和STDERR數(shù)據(jù)流的信息。Journald快速改變著服務(wù)器如何處理日志信息與管理員如何訪問的方式。
對日志文件說再見
在systemd與journald世界中沒有日志文件的位置。journald日志寫入二進制文件,在紅帽系統(tǒng)上,位于/run/log/journal中。你不應(yīng)該也不能使用頁面打開文件。反之,使用journalctl查看內(nèi)容。該命令顯示所有登錄到服務(wù)器的信息(見表1)。
表1:journalctl輸出表默認(rèn)格式的樣子。
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
無需擔(dān)心,journalctl有很多過濾選項。Journalctl -b過濾在啟動時產(chǎn)生的信息。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顯示的默認(rèn)日志信息在細(xì)節(jié)上還不夠。要獲得更多信息,將輸出格式設(shè)置為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
_EXE=/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與遠(yuǎn)程日志
你所習(xí)慣的一些運作方式發(fā)生了變化。關(guān)閉與歸檔日志文件的系統(tǒng)Logrotate變得日益巨大。在journald上,沒有必要循環(huán)日志文件。它構(gòu)建的目的在于監(jiān)控存儲卷上的剩余空間。如果卷快滿了,就刪除舊有記錄釋放空間。要為journald日志設(shè)置一個最大尺寸,在/etc/systemd/journal.conf文件中修改SystemMaxUse參數(shù)。
遠(yuǎn)程日志又是另一回事了。如果你的數(shù)據(jù)中心有一個遠(yuǎn)程日志服務(wù)器,那就應(yīng)該保留。journald不是對集中日志服務(wù)器,如rsyslog或syslog-ng do的完全替代。Journald沒有將來自其他服務(wù)器或設(shè)備的日志文件進行替代的選項。也沒有指定哪臺日志服務(wù)器的日志事件可以轉(zhuǎn)發(fā)的選項。如果你想要journald在其他地方存放日志信息,最佳做法是將信息轉(zhuǎn)發(fā)給[r]syslog[{d-ng}],在這里處理集中的日志。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.