

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、?、 Template功能Rsyslog 的模板 template 詳解根據(jù)?戶需求指定任意格式動態(tài)?成?件名每個輸出都使 ?了?些模板,包括針對 ?件的,針對 ?戶消息等備注:舊版本: $template新版本: template() V6 之前是舊格式V7 版本,傳統(tǒng)語法與最新配置可在配置?件中混合使?,我們下 ?學(xué)習(xí)的是新格式。?、 Template()聲明1. 作?來定義模板,是 ?種靜態(tài)聲明,表 ?所有的模板都會在rsyslog 讀取配置 ?件的時候被定義。template 不會受到 if語句或嵌 ?配置的影響。2. 基本聲明結(jié)構(gòu)template(parameters)list te
2、mplates 則是 ?種擴(kuò)展的? 持 template(parameters) list-descriptions3. template 的類型類型參數(shù)指定不同的 template 類型,不同類型就可以使 ?不同的?法來定義template 的內(nèi)容,類型不會影響插件 ?作,合適的 template 類型會很好的匹配需求。List Subtree String Plugin下?具體講?下每種類型三、四種類型的學(xué)習(xí)1. list 類型List template 是由 ?系列反復(fù)出現(xiàn)的內(nèi)容和變量語句?成的,內(nèi)容“通過包 含”起來,這種類型?般 ?于已知輸出結(jié)構(gòu)的情況,? 如, ommongodb
3、。建議在有復(fù)雜屬性替換的情況下使 ?這種類型, ?較清晰List template 包含template 頭部( type = "list" )和緊接著的? ” 括 起”來的 constant 和property 部分。constant :不變的,對反復(fù)出現(xiàn)的?本進(jìn) ?描述property :描述屬性。對于 property 有多種可 ?的選項, ?多數(shù)選項被?來提取部分的屬性內(nèi)容或者?來修改 ?本( ?如將 ?寫字母轉(zhuǎn)換為?寫字母)舉例:template(name="tpl1" type= "list" ) constant(val
4、ue="Syslog MSG is: '")property(name= "msg" ) constant(value="', " )property(name= "timereported"dataFormat= "rfc3339" caseConversion="lower" ) constant(value="n" )備注:這個 ?例可能會被 ?于定位常見的 ?件輸出(1) 常量的聲明( constant statement )?種指
5、定常量 ?本的?法。常量主要 ?于基于?本的輸出。舉例:property(name=constant(value+"$!user!msgnum""n" )template(name="outfmt" type= "list" )下?是常量?本中可被識別的 ?系列轉(zhuǎn)義字符的含義: 單個反斜線n換 ?( line feed )000 三位 ?進(jìn)制數(shù)-數(shù)字值對應(yīng)的字符( 101 代表字母 A),三個數(shù)是必須的,但是建議使? 六進(jìn)制xhh ?六進(jìn)制數(shù) -表 ?數(shù)字值對應(yīng)的字符(x41 代表A),注意兩個數(shù)都是必須給定的如果
6、反斜線后 ?跟了?個不?持的字符,那么將會被當(dāng)做 ?個威脅報錯,這種情況會導(dǎo)致不可知的動作為結(jié)構(gòu)化輸出創(chuàng)建 name/value 樹的時候,沒有 outname 參數(shù)的常量( constant text )會被忽略掉。template(name="outfmt" type= "list" ) property(name= "$!usr!msgnum")constant(value="n" outname= "IWantThisInMyDB")常量聲明時可使 ?以下參數(shù)value常量的值outna
7、me 結(jié)構(gòu)化輸出中的字段名(2) property 的聲明property 聲明 ?于包含屬性?本,可以 ?于所有的屬性。選項options ?來指定提取或修改屬性的某些部分,對于property ?持以下參數(shù):name要訪問的屬性名outname結(jié)構(gòu)化輸出中的字段名dateformat?于指定 ?期相關(guān)屬性的?期格式caseconversion將 ?本字母轉(zhuǎn)換成?寫或 ?寫, ?持的value 有“ lowe和r“”upper ”controlcharacters指定如何處理控制字符,value :轉(zhuǎn)義字符( escape ),空格(? 個空格替換),從字符串中移除( drop ) secu
8、repath在dynafile templates 中 ?來創(chuàng)建 pathnames指定字段格式。 csv(csv ),json (沒有字段頭 field header 的json 格式), jsonf (完整的 json 段), jsonr (沒有雙反format斜線,但是可將其作為安全的 json 字段), jsonfr (jsonf 和jsonr 的結(jié)合格式)position.from從這個位置開始包含?字符串1(是第 ?個位置) position.to?直到這個位置開始包含?字符串position.relativetoendFrom 和to的位置與字符串的結(jié)尾有關(guān)field.numbe
9、r包含此字段的匹配field.delimiter字段提取的分隔符的?進(jìn)制值regex.expression使 ?的正則表達(dá)式regex.type要么ERE ,要么BRE regex.nomatchmode如果沒有匹配該怎么做regex.match所使 ?的匹配regex.submatch所使 ?的 ?匹配droplastLf如果有 ?串換 ?符(LF )則丟棄表?字段的強(qiáng)制性,如果設(shè)置為”on,”那么就算為空,這個字段也會在結(jié)構(gòu)化輸出的時候?直存在。如果設(shè)置mandatory為”of(f ”默認(rèn)值),那么當(dāng)為空得時候,這個字段就不會傳給結(jié)構(gòu)化輸出。這個選項在?持動態(tài)結(jié)構(gòu)的輸出中很有?(? 如
10、ommongodb )spifno1stsp?于處理 RFC3164 template 的專 ?選項2. ?樹( subtree )(1) 概念從 rsyslog 7.1.4 開始啟?的內(nèi)容。 subtree 主要?來?成基于完整(CEE )subtree 的template 。這種模板主要 ?于知道如何處理層級結(jié)構(gòu)的輸出, ?如 ommongodb ,對于這種類型,參數(shù) subtree 必須被指定以告知要使 ?哪個subtree 。例如template(name="tpl1" type="subtree" subtree=" 1")
11、 表 ?包含所有 CEE 數(shù)據(jù),? template(name="tpl2" type="subtree" subtree="!usr!tpl2") 則只包含以 "$!usr!tpl2" 開頭的subtree 。使?這種模板的核 ?理念是,真實地數(shù)據(jù)是通過set和unset 腳本語句預(yù) ?成的,同時結(jié)果的結(jié)構(gòu)會再模板內(nèi)部被使?。如果?個完整的subtree需要被直接放到對象的根部( object s roo)t ,則必須使 ?這種類型。相對于其他所有的模板類型,只有subcontainers 能夠被?成。注意sub
12、tree 類型同樣可以?于基本 ?本的輸出,如omfile 。不過,這種情況下,你是?法指定常量的,因此就?法包含換 ?符。由此,對于輸出使? subtree 同樣被?于做調(diào)試或者 ?些特殊的場合( ?如?本將會被JSON 解釋器所解析)(2) ?例subtree 的典型 ?例:先創(chuàng)建?個 ?定義的subtree 然后再 template 中使 ?, ?如:set $!usr!tpl2!msg = $msg;set $!usr!tpl2!dataflow = fied($msg,58 , 2 );template(name="tpl2" type= "subtre
13、e" subtree= "$!usr!tpl2" )這?,我們假設(shè) $msg 包含不同的字段,來 ?某字段的數(shù)據(jù)將會被提取出來并存儲 ?以與message ?起作為字段的內(nèi)容3.字符串( string )包含?個強(qiáng)制的參數(shù) string ,?來包含要使 ?的模板字符串,模板字符串是常量和replacement 變量的混合字符串。這種變量來? 于 message或者當(dāng)最后的字符串到達(dá)插件時候 ?成的動態(tài)內(nèi)容。基于字符串的模板是制定?本內(nèi)容的 ?種很好的 ?法,特別是當(dāng)對于屬性沒有復(fù)雜操作的情況下,特別適 ?。template(name="tpl3"
14、; type= "string"string ="%TIMESTAMP:date-rfc3339% %HOSTNAME% %syslogtag%msg:sp-if-no-1st-sp%msg:drop-last-lf%n")上例中,百分號之間的 ?本將會被 rsyslog 的property replacer 所解釋。在 nutshell 中,它包含了將要使 ?的屬性以及格式化所需的選項和其他處理,這與 list 模板中的 property 對象的功能類似(實際上僅僅是使 ?不同的語 ?來描述同樣地事情)所有百分號外的內(nèi)容都是常量,這上例中,在屬性值中間
15、主要含有?些空格,在字符串的最后,使 ?了?個轉(zhuǎn)義字符。轉(zhuǎn)義字符允許指定那些 ?法打印的字符,這與C以及其他語 ?中得轉(zhuǎn)義字符相似,他們是以 ?個反斜線引出并在其后跟上 ?個或多個字符來表?特定的字符, ?如“7在”US-ASCII 中代表BEL (響鈴), “n代”表新?。總之與 C和perl 語?持的相似,但會有 ?些限制4. 插件( plugin )使? plugin 類型的時候,模板是由 ?個插件(或者被稱為”strgen或”者”string generator )來”?成。它的格式是固定的,就像他被編碼時候? 樣。然?這種類型并不靈活,由于它提供了很 ?的性能(并不是說其他類型的模板
16、很緩慢,?是指在那些對實時性要求很 ?的環(huán)境中),所以會被使 ?。在這種類型中,plugin 參數(shù)必須被指定,并且要包含插件名 ?來識別它。注意在模板中,插件必須要被實現(xiàn)加載好,例如:template(name="tpl4" type= "plugin" plugin= "mystrgen" )五、選項( options)選項是可選的,注意不要混淆模板的選項和屬性的選項-屬性選項會被屬性替換器(property replacer )處理并 ?于單個屬性 ?整個模板。模板選項是 ?寫敏感的, ?前模板屬性有:option.sql - ?
17、于為 MySQL 將字符串格式化為 SQL語句,其中的單引號( )和反斜線 () 會被對應(yīng)的轉(zhuǎn)義字符替換(即 “ 和 “”) ”。注意在MySQL 配置中,必須禁? NO_BACKSLASH_ESCAPES模式(默認(rèn)就是禁?的)option.stdsql -將字符串格式化為 SQL 語句以發(fā)送給表在哪混的 sql 服務(wù)器。這種?式會將字段中的單引號( ?兩)個單引號來替換 ( ,如)果MySQL 配置?件中 NO_BACKSLASH_ESCAPES設(shè)置為 on那么就必須使 ?這個stdsql 選項option.json - 將字符串格式化為 JSON 形式,這種?式會講字段中的單引號( ?兩)
18、個單引號 ( 來替)換。不管什么時候,絕對不要同時使?多個模板選項,因為會引起未知的故障和邏輯錯誤當(dāng)模板是 ?以寫?數(shù)據(jù)庫的時候,則必須指定要么為sql選項要么為 stdsql 選項,否則有可能出現(xiàn) SQL 注?的問題。需要注意的是,由于在現(xiàn)實情況,有的 ?商并不遵守標(biāo)準(zhǔn)的sql規(guī)則?引?的轉(zhuǎn)義?法,所以 ?種選項并不能滿 ?所有的?作,因此你必須確保你使 ?的是正確地格式。如果格式錯誤,仍然有可能遭遇sql 注?的威脅。數(shù)據(jù)庫寫 ?程序會檢查模板中存在的SQL 選項,如果不存在,那么數(shù)據(jù)庫寫 ?操作就會被禁 ?,這也主要是為了防 ?由于你忘記配置sql選項?導(dǎo)致的SQL 注?問題。 SQL
19、選項對于 ?件也很有 ?,特別是在出于性能考慮,你想要將 ?件導(dǎo)出到另外 ?臺機(jī)器的數(shù)據(jù)庫中得情況。對于其他的情況,如果沒有特別需要,建議不要使?,因為這會帶來 ?些處理時間上的開銷,雖然不多,但是對于某些在這?敏感的系統(tǒng)來說,這就顯得尤為重要了。對于寫?數(shù)據(jù)庫動作來說,默認(rèn)情況下使?的是sql 選項,由于當(dāng)前我們只M?持ySQL 并且sql 選項也兼容了 MySQL 默認(rèn)的配置,所以這就是個最佳選擇了。當(dāng)然如果你將NO_BACKSLASH_ESCAPES設(shè)置為 on 的話,則就需要使? stdsql 選項以避免 SQL 注意的威脅。六、備注(附加)1. 為omfile 創(chuàng)建動態(tài) ?件名tem
20、plate(name="DynFile" type= "string" string ="/var/log/system-%HOSTNAME%.log")2. 傳統(tǒng)格式傳統(tǒng)語法格式如下:$template name,param,optionsname: 模板名param :指定模板內(nèi)容的參數(shù)options :設(shè)置模板選項3. 預(yù)留的模板名以”RSYSLOG”_ 開頭的模板名是位 rsyslog 預(yù)留使?的,?定義的模板不要使 ?這些名字,否則有可能產(chǎn) ?沖突導(dǎo)致未知故障。下 ?就是?直預(yù)留共使 ?的系統(tǒng)模板RSYSLOG_TraditionalFileFormat -傳統(tǒng)風(fēng)格的使?不怎么精確的時間戳的默認(rèn)?志 ?件格式RSYSLOG_FileFormat -現(xiàn)代“風(fēng)格 ”的 ?志 ?件格式,與 TraditionalFileFormat類似,但是使?的是更 ?精度的時間戳和時區(qū)信息RSYSLOG_TraditionalForwardFormat -傳統(tǒng)風(fēng)格的轉(zhuǎn)發(fā)格式,時間戳精度低,通常?于將 ?
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育創(chuàng)新讀書心得體會見解
- 2025語文高考提分策略計劃
- 中醫(yī)科火災(zāi)事故應(yīng)急預(yù)案及處理流程
- 大型活動急危重癥搶救流程他
- 消防材料應(yīng)用實習(xí)總結(jié)范文
- 零售行業(yè)財務(wù)審計流程
- 房地產(chǎn)物業(yè)項目部安委會組織機(jī)構(gòu)及職責(zé)
- 2025初一班主任學(xué)生心理健康計劃
- 2025年脫貧攻堅專項資金精準(zhǔn)扶貧驗收報告范文
- 綠化帶定期養(yǎng)護(hù)措施
- 形勢與政策(一)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024-2030年中國工業(yè)軟管總成行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- ISO56002-2019創(chuàng)新管理體系管理手冊及程序文件
- 糖尿病足的血管腔內(nèi)治療
- 新教材北師大版必修第一冊unit1 life choices單詞短語句型寫作知識點提煉
- 小學(xué)六年級數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 譯林版六年級上冊英語1-8單元-單元測試卷(含答案)sc
- 貴州省貴陽市2023-2024學(xué)年七年級下學(xué)期期末考試生物試題(無答案)
- 廣東省湛江市2023-2024學(xué)年高二下學(xué)期7月期末考試化學(xué)試題
- 河南省周口市恒大中學(xué)2023-2024學(xué)年高二下學(xué)期7月期末考試數(shù)學(xué)試題
- 河南省鄭州市2023-2024高一下學(xué)期期末考試數(shù)學(xué)試卷及答案
評論
0/150
提交評論