rsyslog配置含義

ryslog工作流,輸入-處理-輸出。linux系統(tǒng)自帶的日志收集工具,依賴守護進程。在linux系統(tǒng)中,/var/log/message,/var/log/cron,都是系統(tǒng)通過rsyslog收集的。我看了好多文章,都測試了一遍,整理了一下。

模塊

模塊modules,比如imfile.so,這個地方可以通過lsof |grep rsyslog來查看

module(load="imfile")#如果需要讀文件讀時候,需要加載imfile模塊

module(load="imtcp") # 開啟tcp,

input(type="imtcp" port="514")

規(guī)則:

facility.severity? ? target

local5.*? @@remote-host:514 ##local5下的所有類型通過tcp遠程輸出

*.info;mail.none;authpriv.none;cron.none;local5.none;local6.none/var/log/messages##所有的info存入/var/log/message,但是cron,local5,local6不存儲,這里是為了防止自定義的日志,寫入message,? 導致文件過大

facility

facility可以理解成日志類型,

auth #pam產生的日志,認證日志

authpriv #ssh,ftp等登錄信息的驗證信息,認證授權認證

cron #時間任務相關

kern #內核

lpr #打印

mail #郵件

mark(syslog) #rsyslog服務內部的信息,時間標識

news #新聞組

user #用戶程序產生的相關信息

uucp #unix to unix copy, unix主機之間相關的通訊

local 1~7 #自定義的日志設備,這個地方我們業(yè)務自定義,測試期間用的local5

serverity,

debug #有調式信息的,日志信息最多

info #一般信息的日志,最常用

notice #最具有重要性的普通條件的信息

warning, warn #警告級別

err, error #錯誤級別,阻止某個功能或者模塊不能正常工作的信息

crit #嚴重級別,阻止整個系統(tǒng)或者整個軟件不能正常工作的信息

alert #需要立刻修改的信息

emerg, panic #內核崩潰等嚴重信息

properties,

屬性,可以理解為內置變量,

msg #匹配message中的msg部分

rawmsg #從socket收到的信息,一般用來debug

rawmsg-after-pri #和rawmsg類似,但是syslog PRI被移除了

hostname #message的主機名

source #HOSTNAME的別名

fromhost #message來源的主機名,一般是用在relay chain中

fromhost-ip #同fromhost,不過獲取的是ip,這個地方在f

syslogtag #message的tag

programname #是tag的靜態(tài)部分,例如tag是named[123456],則programname是named,這個地方在php生成的消息的時候,會帶[]這種字符,做模板最好用這個

表達式:

contains 屬性包含指定的字符串

isequal 屬性等于指定的字符串

startswith 屬性由指定字符串開始

regex POSIX BRE 正則表達式

ereregex POSIX ERE 正則表達式

:fromhost-ip, isequal, "127.0.0.1" ?TestFormat

if $syslogfacility-text == 'local0' and $msg startswith 'DEVNAME' and ($msg contains 'error1' or $msg contains 'error0') then /var/log/somelog

模板

消息格式

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat ## 默認<接收內容的時間> <發(fā)送者的hostname> <$InputFileTag> <原始消息%msg%>

$template MsgFormat,"%msg%\n" ##只保留原始消息

###模板,給不同的類型配置模板,根據(jù)rule規(guī)則過濾,這個地方要和client約定好

template(name="NgAccessFormat" type="string"

string= "/data/log/ngaccessremote/%fromhost-ip%/%$YEAR%/%$MONTH%/%$DAY%.log"

)

template(name="NgErrorFormat" type="string"

string= "/data/log/ngerrorremote/%fromhost-ip%/%$YEAR%/%$MONTH%/%$DAY%.log"

)

template(name="PhpfpmFormat" type="string"

string= "/data/log/phpfpmremote/%fromhost-ip%/%$YEAR%/%$MONTH%/%$DAY%.log"

)

###這里要保證不同的日志不要命中同一個

:syslogtag,startswith,"errorng" ?NgErrorFormat;MsgFormat

:syslogtag,startswith,"access" ?NgAccessFormat;MsgFormat

:syslogtag,startswith,"phpfpm" ?PhpfpmFormat;MsgFormat

:syslogtag,startswith,"codelog" ?CodeLogFormat;MsgFormat


權限

###設置生成的文件權限,默認是rwx------

$FileOwner root

$FileGroup root

$DirCreateMode 0755

$FileCreateMode 0755

$Umask 0022

隊列

這個隊列是對output而言,在輸出數(shù)據(jù)對時候,加緩存隊列,可以保證消息發(fā)送對端失敗對情況緩存起來。比如tcp遠程發(fā)送消息的時候,對方宕機,可以使消息緩存,網(wǎng)絡恢復就可以繼續(xù)發(fā)出。緩存分內存,磁盤,還有內存+磁盤。

direact:沒有隊列,默認情況

disk:磁盤,這個情況下,如果傳輸失敗會在workdirectory下看到相應記錄,我在測試的時候,把server的端口關掉,就可以模擬網(wǎng)絡失敗。可以通過tcpdump抓包來看。

LinkedList,FixedArray 內存

$WorkDirectory /var/lib/rsyslog

$ActionQueueType LinkedList

$ActionQueueFileName local5 ###定義內存,同時制定名字就是內存+緩存的方式

$ActionResumeRetryCount -1

$ActionQueueSaveOnShutdown on

local5.* @@ip:514

配置

在配置機器的時候,要注意兩個地方。

1,selinux狀態(tài),不要是mac模式,否則syslogd進程沒辦法讀取imfile里定義的文件,即使777也沒用

2,如果需要tcp 或者udp,而且防火墻開了,記得開一下端口。telnet 一下

3,如果使用了內存加磁盤的方式,注意一下默認內存限制。

官網(wǎng)地址

http://www.rsyslog.com/doc/v8-stable/

后續(xù)

這個只是完成了日志的收集,后面是用通用的elk,還是其他工具,待研究。

這個rsyslog是基于tcp,查網(wǎng)上資料都說帶寬性能好,logstash耗性能,后續(xù)會繼續(xù)壓測,和性能測試。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 了解日志文件是很重要的事情。日志文件可以記錄系統(tǒng)在什么時間、哪臺主機、哪個服務、出現(xiàn)了什么信息等??梢栽谙到y(tǒng)出現(xiàn)問...
    Zhang21閱讀 5,531評論 0 5
  • 1 概述 系統(tǒng)日志是記錄系統(tǒng)中硬件、軟件和系統(tǒng)問題的信息,同時還可以監(jiān)視系統(tǒng)中發(fā)生的事件。用戶可以通過它來檢查錯誤...
    ghbsunny閱讀 4,218評論 0 0
  • 《ijs》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 5,676評論 0 7
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測試 ...
    KeKeMars閱讀 6,620評論 0 6
  • 給大家推薦一個我平常用的網(wǎng)站吧 可以看各大視頻網(wǎng)站的VIP視頻 能省不少錢呢 http://t.cn/RXqV5xj
    breakheartt閱讀 167評論 0 0

友情鏈接更多精彩內容