日志分類(lèi):
1. 連接時(shí)間的日志 兩個(gè)文件無(wú)法直接cat查看,并且該文件由系統(tǒng)自動(dòng)更新,可以通過(guò)如下: w/who/finger/id/last/lastlog/ac 進(jìn)行查看 [root@xhot ~]# who root tty1 2010-10-06 22:56 root pts/0 2010-10-06 22:26 (218.192.87.4) root pts/1 2010-10-06 23:41 (218.192.87.4) root pts/3 2010-10-06 23:18 (218.192.87.4) [root@xhot ~]# w 01:01:02 up 2:36, 4 users, load average: 0.15, 0.03, 0.01 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 22:56 1:20m 0.16s 0.16s -bash root pts/0 218.192.87.4 22:26 2:05m 0.18s 0.18s -bash root pts/1 218.192.87.4 23:41 0.00s 0.41s 0.00s w root pts/3 218.192.87.4 23:18 1:38m 0.03s 0.03s -bash [root@xhot ~]# ac -p //查看每個(gè)用戶(hù)的連接時(shí)間 u51 1.23 u55 0.04 root 95.21 //可以看到root連接時(shí)間最長(zhǎng)吧 xhot 0.06 user1 3.93 total 100.48 [root@xhot ~]# ac -a //查看所有用戶(hù)的連接時(shí)間 total 100.49 [root@xhot ~]# ac -d //查看用戶(hù)每天的連接時(shí)間 Sep 24 total 0.14 Sep 25 total 14.60 Sep 26 total 13.71 Sep 27 total 21.47 Sep 28 total 11.74 Sep 29 total 6.60 Sep 30 total 8.81 Oct 1 total 9.04 Oct 2 total 0.47 //可以看到我國(guó)慶3、4、5號(hào)出去玩了 Oct 6 total 8.62 Today total 5.29 其他幾個(gè)命令不做具體介紹了 2. 進(jìn)程監(jiān)控日志 進(jìn)程統(tǒng)計(jì)監(jiān)控日志在監(jiān)控用戶(hù)的操作指令是非常有效的。當(dāng)服務(wù)器最近發(fā)現(xiàn)經(jīng)常 無(wú)故關(guān)機(jī)或者無(wú)故被人刪除文件等現(xiàn)象時(shí),可以通過(guò)使用進(jìn)程統(tǒng)計(jì)日志查看: [root@xhot ~]# accton /var/account/pacct //開(kāi)啟進(jìn)程統(tǒng)計(jì)日志監(jiān)控 [root@xhot ~]# lastcomm //查看進(jìn)程統(tǒng)計(jì)日志情況 accton S root pts/1 0.00 secs Thu Oct 7 01:20 accton root pts/1 0.00 secs Thu Oct 7 01:20 ac root pts/1 0.00 secs Thu Oct 7 01:14 ac root pts/1 0.00 secs Thu Oct 7 01:14 free root pts/1 0.00 secs Thu Oct 7 01:10 lastcomm root pts/1 0.00 secs Thu Oct 7 01:09 bash F root pts/1 0.00 secs Thu Oct 7 01:09 lastcomm root pts/1 0.00 secs Thu Oct 7 01:09 ifconfig root pts/1 0.00 secs Thu Oct 7 01:09 lastcomm root pts/1 0.00 secs Thu Oct 7 01:09 lastcomm root pts/1 0.00 secs Thu Oct 7 01:09 lastcomm root pts/1 0.00 secs Thu Oct 7 01:09 accton S root pts/1 0.00 secs Thu Oct 7 01:09 [root@xhot ~]# accton //關(guān)閉進(jìn)程統(tǒng)計(jì)日志監(jiān)控 3. 系統(tǒng)和服務(wù)日志 系統(tǒng)日志服務(wù)是由一個(gè)名為syslog的服務(wù)管理的,如一下日志文件都是由syslog日志服務(wù)驅(qū)動(dòng)的: /var/log/lastlog :記錄最后一次用戶(hù)成功登陸的時(shí)間、登陸IP等信息 /var/log/messages :記錄Linux操作系統(tǒng)常見(jiàn)的系統(tǒng)和服務(wù)錯(cuò)誤信息 /var/log/secure :Linux系統(tǒng)安全日志,記錄用戶(hù)和工作組變壞情況、用戶(hù)登陸認(rèn)證情況 /var/log/btmp :記錄Linux登陸失敗的用戶(hù)、時(shí)間以及遠(yuǎn)程IP地址 /var/log/cron :記錄crond計(jì)劃任務(wù)服務(wù)執(zhí)行情況 …... [root@xhot ~]# cat /var/log/lastlog Lpts/0218.192.87.4 Lpts/1218.192.87.4 Lpts/1218.192.87.4 Lpts/0218.192.87.46 Lpts/0218.192.87.4 …...
1. 在Linux系統(tǒng),大部分日志都是由syslog日志服務(wù)驅(qū)動(dòng)和管理的 配置文件, /etc/init.d/syslog是啟動(dòng)腳本,這里主講主配置文件/etc/syslog.conf: /etc/syslog.conf 語(yǔ)句結(jié)構(gòu): [root@xhot ~]# grep -v "#" /etc/syslog.conf //列出非#打頭的每一行 *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron *.emerg * uucp,news.crit /var/log/spooler local7.* /var/log/boot.log 選擇域(消息類(lèi)型.錯(cuò)誤級(jí)別) 動(dòng)作域 2. 消息類(lèi)型:auth,authpriv,security;cron,daemon,kern,lpr,mail, mark,news,syslog,user,uucp,local0~local7. 錯(cuò)誤級(jí)別:(8級(jí))debug,info,notice,warning|warn;err|error;crit,alert,emerg|panic 動(dòng)作域:file,user,console,@remote_ip 舉如上的/etc/syslog.conf文件三個(gè)例子: *.info;mail.none;authpriv.none;cron.none /var/log/messages 表示info級(jí)別的任何消息都發(fā)送到/var/log/messages日志文件,但郵件系統(tǒng)、驗(yàn)證系統(tǒng) 和計(jì)劃任務(wù)的錯(cuò)誤級(jí)別信息就除外,不發(fā)送(none表示禁止) cron.* /var/log/cron 表示所有級(jí)別的cron信息發(fā)到/var/log/cron文件 *.emerg * 表示emerg錯(cuò)誤級(jí)別(危險(xiǎn)狀態(tài))的所有消息類(lèi)型發(fā)給所有用戶(hù)
此服務(wù)器的配置非常簡(jiǎn)單,只是修改一個(gè)文件的一個(gè)地方,然后重啟服務(wù)即可: [root@xhot ~]# grep -v "#" /etc/sysconfig/syslog SYSLOGD_OPTIONS="-m 0 -r" //只要在這里添加“-r”就行咯 KLOGD_OPTIONS="-x" SYSLOG_UMASK=077 [root@xhot ~]# service syslog restart 關(guān)閉內(nèi)核日志記錄器: [確定] 關(guān)閉系統(tǒng)日志記錄器: [確定] 啟動(dòng)系統(tǒng)日志記錄器: [確定] 啟動(dòng)內(nèi)核日志記錄器: [確定] 對(duì)于發(fā)送消息到服務(wù)器的OS,只要在寫(xiě)/etc/syslog.conf主配置文件的時(shí)候,作用域 為@server-ip就行了,比如針對(duì)218.192.87.24這臺(tái)日志服務(wù)器,把一臺(tái)ubuntu系統(tǒng)的所有 info級(jí)別的auth信息發(fā)給日志服務(wù)器,那么對(duì)于ubuntu系統(tǒng)的/etc/syslog.conf文件最后一 行添加 auth.info @218.192.87.24 就OK了
系統(tǒng)工作到了一定時(shí)間后,日志文件的內(nèi)容隨著時(shí)間和訪問(wèn)量的增加而越來(lái)越多, 日志文件也越來(lái)越大。而且當(dāng)日志文件超過(guò)系統(tǒng)控制范圍時(shí)候,還會(huì)對(duì)系統(tǒng)性能 造成影響。轉(zhuǎn)儲(chǔ)方式可以設(shè)為每年轉(zhuǎn)儲(chǔ)、每月轉(zhuǎn)儲(chǔ)、每周轉(zhuǎn)儲(chǔ)、達(dá)到一定大小轉(zhuǎn)儲(chǔ)。 在Linux系統(tǒng),經(jīng)常使用“l(fā)ogrotate”工具進(jìn)行日志轉(zhuǎn)儲(chǔ),結(jié)合cron計(jì)劃任務(wù),可以輕松 實(shí)現(xiàn)日志文件的轉(zhuǎn)儲(chǔ)。轉(zhuǎn)儲(chǔ)方式的設(shè)置由“/etc/logrotate.conf”配置文件控制: [root@xhot ~]# cat /etc/logrotate.conf # see "man logrotate" for details //可以查看幫助文檔 # rotate log files weekly weekly //設(shè)置每周轉(zhuǎn)儲(chǔ) # keep 4 weeks worth of backlogs rotate 4 //最多轉(zhuǎn)儲(chǔ)4次 # create new (empty) log files after rotating old ones create //當(dāng)轉(zhuǎn)儲(chǔ)后文件不存儲(chǔ)時(shí)創(chuàng)建它 # uncomment this if you want your log files compressed #compress //以壓縮方式轉(zhuǎn)儲(chǔ) # RPM packages drop log rotation information into this directory include /etc/logrotate.d //其他日志文件的轉(zhuǎn)儲(chǔ)方式,包含在該目錄下 # no packages own wtmp -- we'll rotate them here /var/log/wtmp { //設(shè)置/var/log/wtmp日志文件的轉(zhuǎn)儲(chǔ)參數(shù) monthly //每月轉(zhuǎn)儲(chǔ) create 0664 root utmp //轉(zhuǎn)儲(chǔ)后文件不存在時(shí)創(chuàng)建它,文件所有者為root, 所屬組為utmp,對(duì)應(yīng)的權(quán)限為0664 rotate 1 //轉(zhuǎn)儲(chǔ)一次 } # system-specific logs may be also be configured here.
時(shí)將老的日志文件放到/var/log/news/old目錄下,若日志文件不存在,則跳過(guò)。完成后重啟 news新聞組服務(wù),轉(zhuǎn)儲(chǔ)時(shí)不壓縮。那么可以在/etc/logrotate.conf文件的最后添加如下: /var/log/news/*{ monthly rotate 2 olddir /var/log/news/old missingok postrotate kill -HUP `cat /var/run/inn.pid` endscript nocompress }
5次,轉(zhuǎn)儲(chǔ)時(shí)發(fā)送郵件給root@localhost用戶(hù),當(dāng)日志文件達(dá)到100KB時(shí)才轉(zhuǎn)儲(chǔ),轉(zhuǎn)儲(chǔ)后重啟 httpd服務(wù),那么可以直接在/etc/logrotate.conf文件的最后添加如下: /var/log/httpd/access.log /var/log/http/error.log{ rotate 5 mail root@localhost size=100k sharedscripts /sbin/killall -HUP httpd endscript } 自定義日志轉(zhuǎn)儲(chǔ)(/etc/logrotate.d/*) 通過(guò)下面一個(gè)例子將所有類(lèi)型錯(cuò)誤級(jí)別為info的日志轉(zhuǎn)儲(chǔ)到/var/log/test.log日志文件中,并設(shè)置 /var/log/test.log達(dá)到50KB后進(jìn)行轉(zhuǎn)儲(chǔ),轉(zhuǎn)儲(chǔ)10次,轉(zhuǎn)儲(chǔ)時(shí)壓縮,轉(zhuǎn)儲(chǔ)后重啟syslog服務(wù): 1、修改/etc/syslog.conf文件使得如下: [root@xhot ~]# tail -1 /etc/syslog.conf //查看該文件的最后一行 *.info /var/log/test.log 2、重啟syslog服務(wù): 關(guān)閉內(nèi)核日志記錄器: [確定] 關(guān)閉系統(tǒng)日志記錄器: [確定] 啟動(dòng)系統(tǒng)日志記錄器: [確定] 啟動(dòng)內(nèi)核日志記錄器: [確定] 3、創(chuàng)建/etc/logrotate.d/test.log日志轉(zhuǎn)儲(chǔ)參數(shù)配置文件,添加如下: [root@xhot ~]# cat /etc/logrotate.d/test.log /var/log/test.log{ rotate 10 size = 50k compress postrotate killall -HUP syslog endscript } 4、查看文件/etc/cron.daily/logrotate確保如下: [root@xhot ~]# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 5、查看轉(zhuǎn)儲(chǔ)后的文件 /var/log [root@xhot log]# ls test.log* …… //結(jié)果等要轉(zhuǎn)儲(chǔ)的時(shí)候會(huì)發(fā)現(xiàn)壓縮文件和原本的test.log文件 |
|