18.系統(tǒng)日志輪轉(zhuǎn)

一、什么是系統(tǒng)日志

記錄系統(tǒng)活動(dòng)信息有幾個(gè)文件,他們分別記錄了不同的信息纤垂。

例如:何時(shí)矾策、何地 (來源 IP)、何人 (賬戶或者服務(wù)名稱)峭沦、做了什么動(dòng)作 贾虽。

換句話說就是:記錄系統(tǒng)在什么時(shí)候由哪個(gè)程序做了什么樣的行為時(shí),發(fā)生了何種的事件等等吼鱼。

二蓬豁、日志的重要性

其實(shí),不止系統(tǒng)有日志菇肃,在系統(tǒng)上運(yùn)行的很多應(yīng)用程序(軟件) 都有自己的日志記錄地粪。比如 MySQL 默認(rèn)的日志是 /var/log/mysqld.log

這些日志是我們排除的首要入手點(diǎn),假如系統(tǒng)或者服務(wù)出現(xiàn)了錯(cuò)誤琐谤,要第一時(shí)間分析日志中的報(bào)錯(cuò)信息蟆技。而不是去到網(wǎng)上搜索報(bào)錯(cuò)信息。因?yàn)榇蟛糠謺r(shí)候斗忌,一個(gè)報(bào)錯(cuò)信息质礼,有可能會(huì)有多種情況導(dǎo)致,所以要結(jié)合自己的系統(tǒng)環(huán)境分析具體的情況飞蹂。

三几苍、常用的系統(tǒng)日志

  • /var/log/messages

這個(gè)文件相當(dāng)?shù)闹匾瑤缀跸到y(tǒng)發(fā)生的錯(cuò)誤訊息 (或者是重要的信息) 都會(huì)記錄在這個(gè)文件中陈哑; 如果系統(tǒng)發(fā)生莫名的錯(cuò)誤時(shí)妻坝,這個(gè)文件是應(yīng)該首先查詢的。

  • /var/log/secure

基本上惊窖,只要牽涉到“需要輸入帳號(hào)密碼”的軟件刽宪,那么當(dāng)?shù)顷憰r(shí) (不管登陸正確或錯(cuò)誤) 都會(huì)被記錄在此文件中。 su, sudo 等程序界酒、還有網(wǎng)絡(luò)連線的 ssh, telnet 等程序圣拄, 登陸信息都會(huì)被記載在這里

  • /var/log/boot.log

開機(jī)的時(shí)候系統(tǒng)核心會(huì)去偵測與啟動(dòng)硬件,接下來開始各種核心支持的功能啟動(dòng)等毁欣。這些流程都會(huì)記錄在 /var/log/boot.log 里面庇谆。只保留本次的開機(jī)信息。

  • /var/log/cron

記錄 crontab 調(diào)度有沒有實(shí)際被進(jìn)行凭疮? 進(jìn)行過程有沒有發(fā)生錯(cuò)誤饭耳? /etc/crontab 是否配置正確?

  • /var/log/dmesg

記錄系統(tǒng)在開機(jī)的時(shí)候核心偵測過程所產(chǎn)生的各項(xiàng)信息执解。

  • /var/log/lastlog

可以記錄系統(tǒng)上面所有的帳號(hào)最近一次登陸系統(tǒng)時(shí)的相關(guān)信息

  • /var/log/maillog/var/log/mail/*

記錄郵件的往來信息寞肖,其實(shí)主要是記錄 postfix (SMTP 協(xié)定提供者) 與 dovecot (POP3 協(xié)定提供者) 所產(chǎn)生的訊息啦。 SMTP 是發(fā)信所使用的通訊協(xié)定, POP3 則是收信使用的通訊協(xié)定新蟆。 postfix 與 dovecot 則分別是兩套達(dá)成通訊協(xié)定的軟件觅赊。

  • /var/log/wtmp, /var/log/faillog

這兩個(gè)文件可以記錄正確登陸系統(tǒng)者的帳號(hào)信息 (wtmp) 與錯(cuò)誤登陸時(shí)所使用的帳號(hào)信息 (faillog)

CentOS 使用 rsyslog.service 這個(gè)服務(wù)來統(tǒng)一管理這些系統(tǒng)日志文件。

五琼稻、日志服務(wù)和配置文件

查看日志服務(wù)的狀態(tài)

systemctl status rsyslog.service

rsyslog.service 的配置文件

既然是服務(wù)吮螺,就會(huì)有配置文件。

/etc/rsyslog.conf

配置文件用于設(shè)置

(1)什么服務(wù) (2)的什么級(jí)別的信息 (3)需要被記錄在哪里(設(shè)備或文件)

比如:

cron.* /var/log/cron
表示 關(guān)于計(jì)劃任務(wù)的所有級(jí)別的信息欣簇,都記錄到 /var/log/cron 文件中

*.info;mail.none;authpriv.none;cron.none /var/log/messages
表示所有服務(wù)端 info 級(jí)別的信息规脸,郵件的 none 級(jí)別的信息,登錄認(rèn)證的 none 基本的信息和計(jì)劃任務(wù)的 none 基本的信息都記錄到 /var/log/messages 文件中熊咽。

Linux 核心的 syslog 認(rèn)識(shí)的服務(wù)類型主要有下面這些:

image.png

Linux 核心的 syslog 定義的日志級(jí)別:

image.png

添加額外的記錄日志文件

編輯 /etc/rsyslog.conf 文件

# Add other file
*.info  /var/log/shark.log

保存退出后

重啟服務(wù)

systemctl restart rsyslog

把一個(gè)Linux 主機(jī)設(shè)置為 日志服務(wù)器

通過配置 /etc/rsyslog.conf 可以把一個(gè) Linux 主機(jī)配置成一臺(tái) 日志服務(wù)器莫鸭,這樣其他 Linux 主機(jī)的日志,除了記錄在自己的本地外横殴,還會(huì)發(fā)送的 這臺(tái)日志服務(wù)器上一份被因。

服務(wù)端的設(shè)置

編輯 /etc/rsyslog.conf

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

重啟服務(wù)

 systemctl restart rsyslog.service

檢查監(jiān)聽端口

[root@shark ~]# ss -natal |grep 514
LISTEN     0      25           *:514                      *:*
LISTEN     0      25          :::514                     :::*

客戶端設(shè)置

編輯 /etc/rsyslog.conf

*.*       @@192.168.1.100

@@192.168.1.100
表示使用 TCP 協(xié)議傳輸數(shù)據(jù)到日志服務(wù)器 191.168.1.100 上


四、日志輪轉(zhuǎn)

什么是日志輪轉(zhuǎn)衫仑,為什么要輪轉(zhuǎn)

日志輪轉(zhuǎn)也叫日志的切割梨与,通俗來講就是對(duì)日志文件進(jìn)行大小的控制。

Linux 系統(tǒng)通常會(huì)長時(shí)間的不停機(jī)運(yùn)行文狱,這樣就會(huì)產(chǎn)生好多信息記錄到不同的日志中粥鞋。隨著時(shí)間的推移,日志的容量自然會(huì)越來越大瞄崇,那問題就來了呻粹,硬盤的空間是有限的,那為了控制日志文件的大小苏研,就需要對(duì)日志文件進(jìn)行控制等浊。

同時(shí)是把目前的日志文件改名,緊接著創(chuàng)建一個(gè)新的日志文件摹蘑,名稱和原來的一樣筹燕,重啟服務(wù)進(jìn)程,讓其向新的日志文件中寫日志衅鹿。

實(shí)施程序

logrotate 負(fù)責(zé)對(duì)系統(tǒng)日志的輪轉(zhuǎn)撒踪。

通過定時(shí)任務(wù)每天都會(huì)執(zhí)行一次。

[root@shark ~]# cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

logrotate 的配置文件

  • /etc/logrotate.conf

主配置文件大渤, 設(shè)置的默認(rèn)值

  • /etc/logrotate.d/

被包含的子配置文件制妄,可以對(duì)某一些服務(wù)設(shè)置特定的配置

logrotate 的主要功能就是將舊的日志文件改成舊文件, 并且重新創(chuàng)建一個(gè)新的空的文件來記錄兼犯。
如下圖:

image.png

/etc/logrotate.conf 的默認(rèn)值

weekly    >==每周對(duì)系統(tǒng)的日志文件進(jìn)行一次 rotate 的工作
rotate 4  >==同類的日志文件,保留 4 份!
create    >==創(chuàng)建一個(gè)新的空文件切黔,繼續(xù)記錄砸脊!
dateext   >==可以讓被輪轉(zhuǎn)的文件名稱加上日期作為文件的后綴名!
#compress >==被輪轉(zhuǎn)的到日志文件是否壓縮

設(shè)置語法

登錄文件的絕對(duì)路徑文件名 ... {
    個(gè)別的參數(shù)設(shè)置值纬霞,如 monthly, compress 等等
}

多個(gè)文件可以使用一套參數(shù)值凌埂。
/path/log/file1.log
/path/log/file2.log
{
...
}

假如,想對(duì)某個(gè)日志文件實(shí)現(xiàn)輪轉(zhuǎn)诗芜,建議在 /etc/logrotate.d/ 目錄中添加子配置文件

比如

[root@shark logrotate.d]# cat syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    missingok
    sharedscripts
    postrotate
    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

自定義日志輪轉(zhuǎn)

目錄下編輯一個(gè)文件

/var/log/shark1.log {
        monthly              >== 每月一次輪轉(zhuǎn)
        maxsize=10M             >== 文件大小大于 10M 時(shí)瞳抓, 也開始輪轉(zhuǎn)
        rotate 2             >== 日志文件保留 2 個(gè)
        compress             >== 對(duì)舊的日志文件進(jìn)行壓縮
        sharedscripts        >== 輪轉(zhuǎn)之前需要先被執(zhí)行命令
        prerotate
                /usr/bin/chattr -a /var/log/shark1.log      >==去掉特殊屬性
        endscript
        sharedscripts      >== 輪轉(zhuǎn)之后需要被執(zhí)行的命令
        postrotate
            /usr/bin/chattr +a /var/log/shark1.log     >== 特殊屬性,文件內(nèi)容只能增加不能刪除或者修改
        endscript
}

測試

可以使用 logrotate 命令測試

logrotate -vf    /etc/logrotate.conf

-v 顯示輪轉(zhuǎn)的詳情
-f 立刻進(jìn)行一次輪轉(zhuǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伏恐,一起剝皮案震驚了整個(gè)濱河市孩哑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌翠桦,老刑警劉巖横蜒,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異销凑,居然都是意外死亡丛晌,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門斗幼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來澎蛛,“玉大人,你說我怎么就攤上這事蜕窿∧甭撸” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵渠羞,是天一觀的道長斤贰。 經(jīng)常有香客問我,道長次询,這世上最難降的妖魔是什么荧恍? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮屯吊,結(jié)果婚禮上送巡,老公的妹妹穿的比我還像新娘。我一直安慰自己盒卸,他們只是感情好骗爆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔽介,像睡著了一般摘投。 火紅的嫁衣襯著肌膚如雪煮寡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天犀呼,我揣著相機(jī)與錄音幸撕,去河邊找鬼。 笑死外臂,一個(gè)胖子當(dāng)著我的面吹牛坐儿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播宋光,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼貌矿,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了罪佳?” 一聲冷哼從身側(cè)響起逛漫,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菇民,沒想到半個(gè)月后尽楔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡第练,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年阔馋,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娇掏。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呕寝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出婴梧,到底是詐尸還是另有隱情下梢,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布塞蹭,位于F島的核電站孽江,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏番电。R本人自食惡果不足惜岗屏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漱办。 院中可真熱鬧这刷,春花似錦、人聲如沸娩井。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洞辣。三九已至咐刨,卻和暖如春昙衅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背定鸟。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國打工绒尊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仔粥。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像蟹但,于是被迫代替她去往敵國和親躯泰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容