• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            八葉草

            學(xué)習(xí)資料記錄

            syslog

            日志模塊進(jìn)化史
            ver1 CEidt重載<<
            ver2 多標(biāo)簽 Richedit  CLogFile <<
            ver3 多標(biāo)簽 ListCtrl  PrintLog(...)

            ver4
            開(kāi)始想到kiwi syslog, 測(cè)試了一下 fwrite 和 sendto 的速度,放棄
            這個(gè)方法更好,fwrite + 文件監(jiān)視





            http://blog.csdn.net/xcj0535/archive/2009/05/07/4158624.aspx
             在網(wǎng)上搜的文章,寫(xiě)的很全乎。摘抄如下,供大家參考學(xué)習(xí)

            1、介紹

            在Unix類操作系統(tǒng)上,syslog廣泛應(yīng)用于系統(tǒng)日志。syslog日志消息既可以記錄在本地文件中,也可以通過(guò)網(wǎng)絡(luò)發(fā)送到接收syslog的服務(wù)器。接收syslog的服務(wù)器可以對(duì)多個(gè)設(shè)備的syslog消息進(jìn)行統(tǒng)一的存儲(chǔ),或者解析其中的內(nèi)容做相應(yīng)的處理。常見(jiàn)的應(yīng)用場(chǎng)景是網(wǎng)絡(luò)管理工具、安全管理系統(tǒng)、日志審計(jì)系統(tǒng)。

            完整的syslog日志中包含產(chǎn)生日志的程序模塊(Facility)、嚴(yán)重性(Severity或 Level)、時(shí)間、主機(jī)名或IP、進(jìn)程名、進(jìn)程ID和正文。在Unix類操作系統(tǒng)上,能夠按Facility和Severity的組合來(lái)決定什么樣的日志消息是否需要記錄,記錄到什么地方,是否需要發(fā)送到一個(gè)接收syslog的服務(wù)器等。由于syslog簡(jiǎn)單而靈活的特性,syslog不再僅限于 Unix類主機(jī)的日志記錄,任何需要記錄和發(fā)送日志的場(chǎng)景,都可能會(huì)使用syslog。

            長(zhǎng)期以來(lái),沒(méi)有一個(gè)標(biāo)準(zhǔn)來(lái)規(guī)范syslog的格式,導(dǎo)致syslog的格式是非常隨意的。最壞的情況下,根本就沒(méi)有任何格式,導(dǎo)致程序不能對(duì)syslog 消息進(jìn)行解析,只能將它看作是一個(gè)字符串。

            在2001年定義的RFC3164中,描述了BSD syslog協(xié)議:
            http://www.ietf.org/rfc/rfc3164.txt
            不過(guò)這個(gè)規(guī)范的很多內(nèi)容都不是強(qiáng)制性的,常常是“建議”或者“約定”,也由于這個(gè)規(guī)范出的比較晚,很多設(shè)備并不遵守或不完全遵守這個(gè)規(guī)范。接下來(lái)就介紹一 下這個(gè)規(guī)范。

            約定發(fā)送syslog的設(shè)備為Device,轉(zhuǎn)發(fā)syslog的設(shè)備為Relay,接收syslog的設(shè)備為Collector。Relay本身也可以發(fā)送自身的syslog給Collector,這個(gè)時(shí)候它表現(xiàn)為一個(gè)Device。Relay也可以只轉(zhuǎn)發(fā)部分接收到的syslog消息,這個(gè)時(shí)候它同時(shí)表現(xiàn)為Relay和Collector。

            syslog消息發(fā)送到Collector的UDP 514端口,不需要接收方應(yīng)答,RFC3164建議 Device 也使用514作為源端口。規(guī)定syslog消息的UDP報(bào)文不能超過(guò)1024字節(jié),并且全部由可打印的字符組成。完整的syslog消息由3部分組成,分別是PRI、HEADER和MSG。大部分syslog都包含PRI和MSG部分,而HEADER可能沒(méi)有。

            2、syslog的格式

            下面是一個(gè)syslog消息:
            <30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.
            其中“<30>”是PRI部分,“Oct 9 22:33:20 hlfedora”是HEADER部分,“auditd[1787]: The audit daemon is exiting.”是MSG部分。

            2.1、PRI部分
            PRI部分由尖括號(hào)包含的一個(gè)數(shù)字構(gòu)成,這個(gè)數(shù)字包含了程序模塊(Facility)、嚴(yán)重性(Severity),這個(gè)數(shù)字是由Facility乘以 8,然后加上Severity得來(lái)。不知道他們?yōu)槭裁窗l(fā)明了這么一種不直觀的表示方式。
            也就是說(shuō)這個(gè)數(shù)字如果換成2進(jìn)制的話,低位的3個(gè)bit表示Severity,剩下的高位的部分右移3位,就是表示Facility的值。
            十進(jìn)制30 = 二進(jìn)制0001 1110
            0001 1... = Facility: DAEMON - system daemons (3)
            .... .110 = Severity: INFO - informational (6)

            Facility的定義如下,可以看出來(lái)syslog的Facility是早期為Unix操作系統(tǒng)定義的,不過(guò)它預(yù)留了User(1),Local0~7 (16~23)給其他程序使用:

                  Numerical             Facility
                     Code

                      0             kernel messages
                      1             user-level messages
                      2             mail system
                      3             system daemons
                      4             security/authorization messages (note 1)
                      5             messages generated internally by syslogd
                      6             line printer subsystem
                      7             network news subsystem
                      8             UUCP subsystem
                      9             clock daemon (note 2)
                     10             security/authorization messages (note 1)
                     11             FTP daemon
                     12             NTP subsystem
                     13             log audit (note 1)
                     14             log alert (note 1)
                     15             clock daemon (note 2)
                     16             local use 0  (local0)
                     17             local use 1  (local1)
                     18             local use 2  (local2)
                     19             local use 3  (local3)
                     20             local use 4  (local4)
                     21             local use 5  (local5)
                     22             local use 6  (local6)
                     23             local use 7  (local7)

                   Note 1 - Various operating systems have been found to utilize
                      Facilities 4, 10, 13 and 14 for security/authorization,
                      audit, and alert messages which seem to be similar.
                   Note 2 - Various operating systems have been found to utilize
                      both Facilities 9 and 15 for clock (cron/at) messages.

            Severity的定義如下:

                   Numerical         Severity
                    Code

                     0       Emergency: system is unusable
                     1       Alert: action must be taken immediately
                     2       Critical: critical conditions
                     3       Error: error conditions
                     4       Warning: warning conditions
                     5       Notice: normal but significant condition
                     6       Informational: informational messages
                     7       Debug: debug-level messages

            也就是說(shuō),尖括號(hào)中有1~3個(gè)數(shù)字字符,只有當(dāng)數(shù)字是0的時(shí)候,數(shù)字才以0開(kāi)頭,也就是說(shuō)00和01這樣在前面補(bǔ)0是不允許的。

            2.2、HEADER部分
            HEADER部分包括兩個(gè)字段,時(shí)間和主機(jī)名(或IP)。
            時(shí)間緊跟在PRI后面,中間沒(méi)有空格,格式必須是“Mmm dd hh:mm:ss”,不包括年份。“日”的數(shù)字如果是1~9,前面會(huì)補(bǔ)一個(gè)空格(也就是月份后面有兩個(gè)空格),而“小時(shí)”、“分”、“秒”則在前面補(bǔ)“0”。月份取值包括:
            Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec

            時(shí)間后邊跟一個(gè)空格,然后是主機(jī)名或者IP地址,主機(jī)名不得包括域名部分。

            因?yàn)橛行┫到y(tǒng)需要將日志長(zhǎng)期歸檔,而時(shí)間字段又不包括年份,所以一些不標(biāo)準(zhǔn)的syslog格式中包含了年份,例如:
            <165>Aug 24 05:34:00 CST 1987 mymachine myproc[10]: %% It's
            time to make the do-nuts. %% Ingredients: Mix=OK, Jelly=OK #
            Devices: Mixer=OK, Jelly_Injector=OK, Frier=OK # Transport:
            Conveyer1=OK, Conveyer2=OK # %%
            這樣會(huì)導(dǎo)致解析程序?qū)?#8220;CST”當(dāng)作主機(jī)名,而“1987”開(kāi)始的部分作為MSG部分。解析程序面對(duì)這種問(wèn)題,可能要做很多容錯(cuò)處理,或者定制能解析多種syslog格式,而不僅僅是只能解析標(biāo)準(zhǔn)格式。

            HEADER部分后面跟一個(gè)空格,然后是MSG部分。
            有些syslog中沒(méi)有HEADER部分。這個(gè)時(shí)候MSG部分緊跟在PRI后面,中間沒(méi)有空格。

            2.3、MSG部分
            MSG部分又分為兩個(gè)部分,TAG和Content。其中TAG部分是可選的。
            在前面的例子中(“<30>Oct 9 22:33:20 hlfedora auditd[1787]: The audit daemon is exiting.”),“auditd[1787]”是TAG部分,包含了進(jìn)程名稱和進(jìn)程PID。PID可以沒(méi)有,這個(gè)時(shí)候中括號(hào)也是沒(méi)有的。
            進(jìn)程PID有時(shí)甚至不是一個(gè)數(shù)字,例如“root-1787”,解析程序要做好容錯(cuò)準(zhǔn)備。

            TAG后面用一個(gè)冒號(hào)隔開(kāi)Content部分,這部分的內(nèi)容是應(yīng)用程序自定義的。


            3、RFC3195
            BSD syslog協(xié)議使用UDP協(xié)議在網(wǎng)絡(luò)中傳遞,然而UDP是一個(gè)不可靠的協(xié)議,并且syslog也沒(méi)有要求接收方有所反饋。為了解決這個(gè)問(wèn)題,RFC又定義了一個(gè)新的規(guī)范來(lái)可靠的傳遞syslog消息,它使用TCP協(xié)議:
            http://www.ietf.org/rfc/rfc3195.txt
            不過(guò)大多數(shù)情況下,使用UDP發(fā)送不需要確認(rèn)的syslog消息,已經(jīng)能夠滿足要求了,并且這樣做非常簡(jiǎn)單。因此到目前為止,RFC3195的應(yīng)用還是很少見(jiàn)的

            posted on 2010-11-17 16:00 八葉草 閱讀(1671) 評(píng)論(0)  編輯 收藏 引用 所屬分類: log

            久久综合精品国产二区无码| 久久久久久国产精品免费免费 | 久久久久亚洲爆乳少妇无| 久久精品一区二区三区中文字幕| 国产精自产拍久久久久久蜜| 亚洲中文字幕久久精品无码喷水| 国产精品久久精品| 久久久噜噜噜久久中文字幕色伊伊 | 99国内精品久久久久久久| 久久精品成人免费观看97| 国产精品熟女福利久久AV| 亚洲αv久久久噜噜噜噜噜| 久久国产精品成人免费| 久久久噜噜噜久久中文字幕色伊伊| 国产精品久久久久影院色| 人妻丰满AV无码久久不卡| 中文成人无码精品久久久不卡| 伊人色综合久久天天| 91精品国产91久久综合| 亚洲伊人久久大香线蕉综合图片| 久久久精品视频免费观看| 国产激情久久久久影院小草| 久久久噜噜噜久久中文福利| 久久精品aⅴ无码中文字字幕不卡 久久精品成人欧美大片 | 久久线看观看精品香蕉国产| 亚洲国产成人久久精品99 | 亚洲精品国产综合久久一线| 久久99精品久久久久久| 久久99精品国产自在现线小黄鸭 | 欧美成a人片免费看久久| www亚洲欲色成人久久精品| 亚洲一区中文字幕久久| 91精品免费久久久久久久久| 亚洲国产精品热久久| 久久精品国产免费| 亚洲国产精久久久久久久| 亚洲国产成人久久综合碰碰动漫3d | 国产精品久久午夜夜伦鲁鲁| 欧洲人妻丰满av无码久久不卡| 久久久久亚洲AV无码专区首JN| 亚洲七七久久精品中文国产|