最近在項(xiàng)目開發(fā)過程中使用到點(diǎn)擊記錄的功能檬嘀,實(shí)現(xiàn)方式是通過syslog的方式將日志送到log服務(wù)器披摄,由log服務(wù)器統(tǒng)計(jì)點(diǎn)擊數(shù)據(jù)供服務(wù)端參考帅韧。
centos6.5及以上版本使用的是rsyslog服務(wù),可以理解為syslog的增強(qiáng)版惨好。下邊記錄一下客戶端和服務(wù)端的配置煌茴,以便下次使用的時(shí)候方便查詢。
服務(wù)端配置
$ModLoad imtcp
$InputTCPServerRun 514
$template RemoteLogs,"/var/log/%HOSTNAME/%PROGRAMNAME%.log"
local5.* ?RemoteLogs
主要是上述四行日川,開啟tcp端口蔓腐,保持默認(rèn)端口即可,更改端口注意在防火墻開發(fā)相應(yīng)端口龄句。另外就是指定模板回论,最后一行是需要使用這個(gè)模板輸出的日志類型。
我們看一下模板規(guī)則分歇,這個(gè)規(guī)則是以主機(jī)名為目錄傀蓉,然后以輸出的項(xiàng)目名為文件名記錄log,這次主機(jī)記錄的是local5級(jí)別的日志卿樱,主要目的是通過不同的log名僚害,統(tǒng)計(jì)用戶的點(diǎn)擊數(shù)量,所以服務(wù)器的模板規(guī)則應(yīng)該就是這一種繁调。
客戶端配置
local5.* @@192.168.1.170
$EscapeControlCharactersOnReceive off
客戶端就簡(jiǎn)單許多了,就是制定輸出的服務(wù)器地址@@代表的是通過tcp方式傳輸靶草,@就是udp了蹄胰,如果我們更改端口的話就加上一個(gè)端口號(hào),默認(rèn)端口的話可以帶端口奕翔。
后邊這一行的作用是關(guān)閉rsyslog默認(rèn)轉(zhuǎn)譯ASCII的所有怪異字符裕寨,包括換行符等。
最后我們測(cè)試一下效果派继,通過c代碼來測(cè)試
#include <syslog.h>
int main(int argc, char **argv)
{
openlog("可變更的日志名", LOG_CONS | LOG_NDELAY, LOG_LOCAL5);
syslog(LOG_INFO,"This is a syslog test file!");
closelog();
return 0;
}
在客戶端編譯執(zhí)行宾袜,查看結(jié)果!