Update History
2014年04月25日 - 撰寫初稿
引言
在自動化部署AutoYast,自動化監控BMC Patrol兩方面形成雛形後,日誌的收集、管理、分析也順勢成為我們需要考慮的問題,結合自身業務系統平台特點,大多數系統基於sles_11_sp1或者sp2,對比rsyslog和syslog-ng後最終選擇syslog-ng ose(open source edition)作為研究對象。以下內容中的參數解釋請參閱官方文檔,後續會補充有關Oracle日誌寫入方式,如果實力不行再考慮MySQL。
#檢查版本
rpm -qa | grep syslog-ng
syslog-ng-2.0.9-27.32.1
服務端Server配置
#建立檔案夾
mkdir /var/log/syslog-ng
#編輯設定檔
vi /etc/syslog-ng/syslog-ng.conf
#---------------------------- code ---------------------start
#全域變數
options {
sync (0);
flush_lines(0);
time_reopen (10);
use_dns (no);
use_fqdn(no);
chain_hostnames(off);
keep_hostname(off);
create_dirs (yes);
owner(root) ;
group(root);
perm(0640) ;
dir_perm(0750) ;
};
source src
{
# message generated by Syslog-NG
#internal();
# standard Linux log source (this is the default place for the syslog()
# function to send logs to)
#unix-stream("/dev/log");
# messages from the kernel
#pipe("/proc/kmsg");
# remote port
tcp(ip(0.0.0.0) port(514));
#udp(ip(0.0.0.0) port(514));
};
#定義日誌過濾規則
#filter f_filter1 { level(info)};
#定義日誌寫入模板
#template t_filetemplate {template("${ISODATE} ${HOST} ${MSG}\n"); template_escape(no); };
template t_filetemplate {template("${MSG}\n"); template_escape(no); };
#定義用戶端日誌在伺服器上儲存的格式,位置和許可權等
destination d_mesg { file("/var/log/syslog-ng/$YEAR$MONTH$DAY/$HOST/messages",perm(0777),template(t_filetemplate)); };
#輸出自訂訊息路徑
log { source(src); destination(d_mesg); };
#log { source(src); filter(f_filter1); destination(d_mesg); };
#-----------------------------------------------------------
#splunk use 1999 port
destination d_splunk { tcp("127.0.0.1" port(1999) localport(999)); };
log { source(src); destination(d_splunk); };
#---------------------------- code ---------------------end
用戶端Client配置
#配置用戶端
#vi /etc/syslog.conf
#*.* @loghost
vi /etc/syslog-ng/syslog-ng.conf
#添加如下:
source s_tail {file("/monitor/auditlog/osaudit.txt" follow_freq(1) flags(no-parse));};
destination d_loghost { tcp("198.15.0.205" port (514)); };
#filter f_info { level(info); };
log {source(s_tail); destination(d_loghost);};
--禁用服務重啟syslog
rcapparmor stop
rcsyslog restart
#啟動服務端
rcsyslog restart
整合splunk
添加syslog-ng步驟:
在Admin->Data Inputs->Network Ports上點選New Input.選擇TCP 1999 port, Set Source Type選Form List,Source Type選Syslog,這樣的設定就可以給Syslog-ng傳log了。
修改syslog-ng步驟:
如上述code所示,如果不是付費使用者,有500M索引限制,求大神幫忙Crack下
#參考文檔
http://www.balabit.com/sites/default/files/documents/syslog-ng-ose-3.5-guides/en/syslog-ng-ose-v3.5-guide-admin/html-single/index.html
http://www.splunk.com/download?r=header