小紅帽技術論壇 在這裡你可以看到你訂閱的主題,悄悄話,編輯個人資料及環境設定 免費註冊! 行事曆 搜尋其他會員 常見問題
搜尋 小紅帽流量分析 小紅帽專用irc 聊天室 Web 版!建議安裝使用 hmirc 軟體! 回首頁 登出
小紅帽技術論壇 : Powered by vBulletin version 2.2.9 小紅帽技術論壇 > 電腦類 > Unix-like 系統討論板 > FreeBSD 系統討論板 > 關於 FreeBSD 的 logfile 說明..
  上一篇主題   下一篇主題
作者
主題、內容    發表新的文章     回覆文章

CreMaker
板主


註冊日期: Aug 2001
來自: 台北縣永和市
發表文章數: 2533

關於 FreeBSD 的 logfile 說明..

由於,FreeBSD 大多是用來架設主機用,因此在架設好了之後,最重要的就是常常檢視系統日誌檔,這也是一個優秀系統管理員必備的條件..

由於篇幅較長,所以分為幾個部份來說明..


● 系統日誌檔的種類


1. FreeBSD 的日誌檔(log files),放在 /var/log/ 之下,以下是一台 FreeBSD 的主機剛裝好時的 /var/log/ 下的檔案

cron
dmesg.today
httpd-access.log
httpd-error.log
lastlog
lpd-errs
maillog
maillog.0.gz
messages
mount.today
ppp.log
security
sendmail.st
sendmail.st.0
sendmail.st.1
setuid.today
slip.log
userlog
wtmp

ps: 可能你的檔案會不一樣,視你所裝的軟體而定

2. 這些檔案儲存的格式不太一樣,一般有三種方式..

•一般的文字檔: 如 cron、dmesh.today、dmesg.yesterday、httpd-access.log.. 這種檔案可用一般的文字編輯軟體,如 vi、ee 等直接開啟,這也是大部份的 log file 採取的格式..

•gzip 或 bzip2 壓縮檔:一般是用來做備份 log 檔的,如 maillog.0.gz

•二位元檔或特殊的格式:有些檔案採取二位元檔的方式如 wtmp lastlog..這種類類型,必需要用指令去開啟,如 ac 或 last 來看

例如:

# ac -d <USER> => 顯示某個 user 的使用時間合計

# last <user> 顥示某個 user 的使用情況

2. 檔案內容簡單說明

cron => cron 的 log file
dmesg.today => 最近的 dmesg 訊息
dmesg.yesterday => 上一次的 dmesg
httpd-access.log => apache 的存取
httpd-error.log => apache 存取的 error message
lastlog => 所有使用者的使用資料,為一二進位檔
lpd-errs => 列表機的 error message
maillog => 信件的 log file,如 sendmail 或是 postix 都會在此記錄
maillog.0.gz => maillog 的備份檔,一般有 0-7 個
messages => 一些重要的訊息,如 mail 、系統..
mount.today => mount 的訊息
ppp.log => 使用撥接的 log file
security => 如 root 登入、ssh.. 等的記錄
sendmail.st => sendmail 的記錄檔
sendmail.st.0 => sendmail 備份,一般有多個,如 *.1 *.2
setuid.today => 一些使用 setuid 的記錄,由於某些程式執行時需有 root 的身份,因此必需在程式執行轉換成 root 身份以便執行。這個記錄檔便是記錄這些資料,如以前舊版的 sendmail 或 openwebmail 都是典型的例子..
slip.log => 使用 slip 的記錄,和 ppp 類似,目前已很少人在使用
userlog => 通常記錄一些 daemon 的登入記錄
wtmp => 使用者登入記錄


● 日誌檔(log files)是如何產生的


日誌檔的產生,一般可分為幾種

1. 由 syslogd 產生,其相關設定在 /etc/syslog.conf 中
2. 由程式自行產生,典型的如 apache、一般自行安裝的軟體..
3. 由 newsyslog,這個軟體會參照 /etc/newsyslog.conf 的設定,其實標準說法該是說,newsyslog 決定了相關 log file 的儲存方式及備份時間


● 有關 syslogd 的介紹


syslogd 是以一個 daemon 的方式在執行(也就是長駐在記憶體內),如 httpd inetd 都是如此..

本來 syslogd 是 sendmail 設計的,不過後來大部份的 unix-like 都使用類似的方法來記錄某部份的 log files(不是全部)

這塈畯怚來討論一下有關 syslogd 的部份,syslogd 執行時會參考 /etc/syslog.conf 的設定,以下是一個典型的例子每一行分成二個項目)

ps:其中是用 tab 來分割二個項目,不是用空白..!!

code:

#*.err;kern.debug;auth.notice;mail.crit /dev/console
*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
cron.* /var/log/cron
#*.err root
#*.notice;news.err root
#*.alert root
*.emerg *
# uncomment this to log all writes to /dev/console to /var/log/console.log
#console.info /var/log/console.log
# uncomment this to enable logging of all log messages to /var/log/all.log
#*.* /var/log/all.log
# uncomment this to enable logging to a remote loghost named loghost
#*.* @loghost
# uncomment these if you're running inn
# news.crit /var/log/news/news.crit
# news.err /var/log/news/news.err
# news.notice /var/log/news/news.notice
!startslip
*.* /var/log/slip.log
!ppp
*.* /var/log/ppp.log


看起來好像很亂,我們分析一下

1. 每一行分為二個部份,一個是訊息定義部份,另一個是訊息處理部份,如

*.err;kern.debug;auth.notice;mail.crit /dev/console

前面 *.err;kern.debug;auth.notice;mail.crit 是定義部份,而 /dev/console 代表要如何處理,在此為將訊息傳到 console,也就是螢幕

2. 訊息的定義

訊息定義又分為二個部份,訊息產生者及類別,其格式為 [訊息產生者].[類別],像 1 中就有四個訊息的定義,每一個訊息定義用 ; 分開..

•*.err
•kern.debug
•auth.notice
•mail.crit

=> 第一個部份一般有

* -> 代表所有的產生者
kern -> 代表 kernel 產生的訊息
auth -> 認證的訊息
mail -> 由 mail 所產生的訊息
lpr -> 列表機產生的訊息

=> 訊息類別有以下幾種

.* -> 所有的類別
.emerg -> 非常重要的緊急訊息類別
.err -> 錯誤
.alert -> 系統警告
.warning -> 一般性警告
.crit -> 關鍵狀態類別
.notice -> 提示類別
.info -> 一般資訊
.debug -> 一些除錯的資訊

=> 實例

mail.* -> 代表 mail 產生的所有訊息類別
mail.info -> 代表由 mail 產生的一般性訊息

3. 處理部份

處理部份可分為二個部份來說明:

•轉到 log 檔

如以下:

code:

*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
security.* /var/log/security
mail.info /var/log/maillog
lpr.info /var/log/lpd-errs
cron.*
/var/log/cron

•轉給某個人,如 console root (在 monitor 顯示)

code:

#*.err;kern.debug;auth.notice;mail.crit /dev/console
*.err root
*.notice;news.err root
*.alert root


以上這些會在螢幕上顯示

● 後記及題外話

•剛開始使用 FreeBSD 的人,在 console 下常會被突如其來的一些訊息嚇一跳,有時也會造成一些困擾,如你在編輯文件檔時,因此可把一些不必要輸出到 colsole 的訊息 mark 掉,如以下

code:

#*.err;kern.debug;auth.notice;mail.crit /dev/console
*.err root
*.notice;news.err root
*.alert


這些並不是很重要,但這個最好保留:

*.emerg *

因為這是一個緊急的訊息,所以建議保留..

另外你的 syslogd.conf 可能和我不太一樣,因我有些已經 mark 掉了,你可視你的需要修改,建議修改前先將 syslog.conf 備份..

記得修改完後,重新啟動 syslogd 這個 daemon

# killall -1 syslogd

● 資料來源

man syslogd
man syslog.conf


下次,我們繼續討論 newsyslog 相關議題..

另由於手上資料不夠,如內容有所謬誤,歡迎指正..互相漏氣求進步..cc

---
hsiao註: 我幫你改了一下, 這樣看起來會比較整齊...



---------------------------------------------------------- 簽名列 -----------

^^魔 誤^^

心魔 <=> 人生最大的苦..
幾多波折,我終於知道自己要些什麼,那你呢?


歡迎來unix-like 系統討論板 看看..
天馬行空板 也歡迎你哦..

----------------------------------------------------------
發問時,請言簡意賅的陳述您的問題..
並請善用小紅帽 搜尋功能
說不定答案就在堶掖..^.^
----------------------------------------------------------

------------------------------RedHat Forum------------------------
被 hsiao 修改於 04-11-2002 at 16:09
------------------------------------------------------------------

文章編號:0 | 向板主反映這篇文章 | 顯示 IP

CreMaker 已離線! Old Post 04-11-2002 14:03
點選這裡查看 CreMaker 的個人檔案 按這裡傳送悄悄話給 CreMaker 參觀 CreMaker 的個人首頁! 按這裡搜尋 CreMaker 所發表的文章 按這裡將 CreMaker 加入你的好友名單 回應這篇文章含引言 按這裡編輯或刪除文章

CreMaker
板主


註冊日期: Aug 2001
來自: 台北縣永和市
發表文章數: 2533

newsyslog 的 log files 設定

● 前言

newsyslog 其功能和 syslogd 一樣,也是用來管理 log files,不過其主要用途並非產生 log files,而是在於管理維護 log files,其主要功能如下:

1. 可自行設定 log files 的備份時間
2. 可設定檔案達到某個大小時,就做備份的動作
3. 在備份時,可將備份檔壓縮(使用 gzip 或 bzip2),或是使用二位元檔
4. 可指定備份的次數

● newsyslog 原理說明

執行 newsyslog 時有二個重要因素會影響 newsyslog,如下:

1. /etc/newsyslog.conf -> 這個是 newsyslog 的設定檔
2. /etc/crontab -> 這個檔案內有設定使用 cron 啟動 newsyslog 時的相關設定

newsyslog 必需依賴 cron 來做排程(在某個時間內啟動 newsyslog),這個設定檔案如下..
code:

# /etc/crontab - root's crontab for FreeBSD
#
# $FreeBSD: src/etc/crontab,v 1.21.2.3 2000/12/08 10:56:07 obrien Exp $
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
#minute hour mday month wday who command
#
*/5 * * * * root /usr/libexec/atrun
#
# rotate log files every hour, if necessary
0 * * * * root newsyslog
#
# do daily/weekly/monthly maintenance
1 3 * * * root periodic daily
15 4 * * 6 root periodic weekly
30 5 1 * * root periodic monthly
#
# time zone change adjustment for wall cmos clock,
# does nothing, if you have UTC cmos clock.
# See adjkerntz(8) for details.
1,31 0-5 * * * root adjkerntz -a

其中請注意這一行,這代表著,每個小時執行一次 newsyslog
code:

# rotate log files every hour, if necessary
0 * * * * root newsyslog

3. 所以 newsyslog 每個小時會依 /etc/newsyslog.conf 的設定,執行一次

● /etc/newsyslog.conf 的說明:

以下是一個典型的設定檔:
code:


# configuration file for newsyslog
# $FreeBSD: src/etc/newsyslog.conf,v 1.25.2.8 2001/12/14 11:50:42 rwatson Exp $
#
# Note: some sites will want to select more restrictive protections than the
# defaults. In particular, it may be desirable to switch many of the 644
# entries to 640 or 600. For example, some sites will consider the
# contents of maillog, messages, and lpd-errs to be confidential. In the
# future, these defaults may change to more conservative ones.
#
# logfilename [owner:group] mode count size when [ZJB] [/pid_file] [
/var/log/cron 600 3 100 * Z
/var/log/amd.log 644 7 100 * Z
/var/log/kerberos.log 600 7 100 * Z
/var/log/lpd-errs 644 7 100 * Z
/var/log/maillog 644 7 * @T00 Z
/var/log/sendmail.st 644 10 * 168 B
/var/log/messages 644 5 100 * Z
/var/log/all.log 600 7 * @T00 Z
/var/log/slip.log 600 3 100 * Z
/var/log/ppp.log 600 3 100 * Z
/var/log/security 600 10 100 * Z
/var/log/wtmp 644 3 * @01T05 B
/var/log/daily.log 640 7 * @T00 Z
/var/log/weekly.log 640 5 1 $W6D0 Z
/var/log/monthly.log 640 12 * $M1D0 Z
/var/log/console.log 600 5 100 * Z

總共計 9 個欄位,不過最後兩個欄位一般不用設定,所以我們只說明 1- 7 個欄位

1.logfilename

這個是要處理的檔案,一般都是放在 /var/log/ 這個目錄下,如 cron、maillog .. 等

2.[owner:group]

檔案所有者及群組,一般不用設定

3.mode

產生的備份檔其檔案屬性,如 640 600 等

4.count

產生的備份次數,如 3 7 10

5.size

以 KB 為單位,代表檔案達多少大小時就備份

6.when

設定的時間,有二種方式,待會會做說明

7.[ZJB]

備份時處理的格式,如:

Z -> 使用 gzip 壓縮
J -> 使用 bzip2 壓縮
B -> 使用 二位元 檔

● newsyslog 備份時間的說明

newsyslog 的備份時間有二種方式

1. 使用日期:

前面要加上 @ 符號

其標準格式為(假設時間是 2002-04-14 16:00:47)

則可設定成這樣:

20020414T160047

注意: 日期 20020414 和時間 160047 中以 T 分開,其中日期部份可省略,分秒部份也可省略..

在實用上,我們都是設定到日及時間(你總不會希望只在某年某月執行吧),如以下:

@T00 => 代表每日 0 時執行
@01T05 => 代表每個月的 01 日 05 時執行

舉一個 maillog 的設定及產生檔案為例:
code:

/var/log/maillog 644 7 * @T00 Z

這代表著,檔案屬性為 644,產生 7 次備份檔,不設定檔案大小,
備份時間為每天 00 點正,使用 gzip 壓縮,其產生的檔案如下..

-rw-r--r-- 1 root wheel 26326 Apr 13 06:41 maillog
-rw-r--r-- 1 root wheel 9191 Apr 13 00:00 maillog.0.gz
-rw-r--r-- 1 root wheel 14024 Apr 12 00:00 maillog.1.gz
-rw-r--r-- 1 root wheel 12542 Apr 11 00:00 maillog.2.gz
-rw-r--r-- 1 root wheel 14706 Apr 10 00:00 maillog.3.gz
-rw-r--r-- 1 root wheel 8992 Apr 9 00:00 maillog.4.gz
-rw-r--r-- 1 root wheel 7427 Apr 8 00:00 maillog.5.gz
-rw-r--r-- 1 root wheel 3682 Apr 7 00:00 maillog.6.gz
-rw-r--r-- 1 root wheel 7322 Apr 6 00:00 maillog.7.gz


2. 使用 M W D (每月第幾天、每週第幾天、每天第幾個小時) 的方式

在使用時要用 $ 來做前導符號,如:

$M5D6 -> 代表每個月第 5 天的 早上 6 點
$W0D4 -> 代表每週第一天(星期天)早上 4 點

● 後記

1. 在了解 newsyslog 的原理及運作方式後,對於有些沒自行備份的 log files,如 httpd-access 等,你就可自行加進來了,請自行試試..

2. 另外在 FreeBSD 中還有另一個好用的類似軟體 => logrotate,這需透過 ports 來安裝,請參考以下文章:

http://redhat.ecenter.idv.tw/bbs/sh...light=logrotate

至於要使用何種方式,那就視你的喜好了.. ^.^

參考資料:

man newsyslog



---------------------------------------------------------- 簽名列 -----------

^^魔 誤^^

心魔 <=> 人生最大的苦..
幾多波折,我終於知道自己要些什麼,那你呢?


歡迎來unix-like 系統討論板 看看..
天馬行空板 也歡迎你哦..

----------------------------------------------------------
發問時,請言簡意賅的陳述您的問題..
並請善用小紅帽 搜尋功能
說不定答案就在堶掖..^.^
----------------------------------------------------------

------------------------------RedHat Forum------------------------
被 CreMaker 修改於 04-13-2002 at 14:00
------------------------------------------------------------------

文章編號:1 | 向板主反映這篇文章 | 顯示 IP

CreMaker 已離線! Old Post 04-13-2002 08:06
點選這裡查看 CreMaker 的個人檔案 按這裡傳送悄悄話給 CreMaker 參觀 CreMaker 的個人首頁! 按這裡搜尋 CreMaker 所發表的文章 按這裡將 CreMaker 加入你的好友名單 回應這篇文章含引言 按這裡編輯或刪除文章

目前使用的時域為(台北時間),現在時間是 13:01 。    發表新的文章     回覆文章
上一篇主題   下一篇主題
友善列印 | 把這一篇寄給好朋友! | 訂閱這個主題

跳至:
評分主題:
 

討論區權限說明:
不可以 發表新文章
不可以 回覆文章
不可以 上傳附加檔案
不可以 修改你發表的文章
HTML code 目前狀態是 關閉
vB code 目前狀態是 開啟
表情符號 目前狀態是 開啟
[IMG] code 目前狀態是 開啟



< 聯絡我們 - 小紅帽全球資訊網 >

中文化:第一版 by Eric 第二版 by Jolin 於 小紅帽全球資訊網
(版權所有,翻拷必究)
小紅帽技術論壇創立於 2000/09/15 ,使用 vBulletin 合法註冊版權