作者 主題: httpd2 Log可以透過Syslog-ng去接收嗎??  (閱讀 1447 次)

0 會員 與 1 訪客 正在閱讀本文。

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
httpd2 Log可以透過Syslog-ng去接收嗎??
« 於: 2013-05-04 11:32 »
各位先進大家好,

小弟目前公司使用Syslog-ng集中所有的Log
目前已經可以做到本機的system產生的log及vsftpd產生的log
但是在測試httpd2時,卻一直無法收集
小弟的設定如下:
代碼: [選擇]
filter f_apache_err { program("apache") and level(err); };
destination d_apache_err { file("/AP/base/logs/wms2g/error_log"); };
log { source(s_sys); filter(f_apache_err); destination( d_apache_err); destination(d_XXX); };

不知是那裡設定有問題
煩請各位先進不吝指教
謝謝

peteryang

  • 憂鬱的高中生
  • ***
  • 文章數: 105
    • 檢視個人資料
Re: httpd2 Log可以透過Syslog-ng去接收嗎??
« 回覆 #1 於: 2013-05-04 13:19 »
各位先進,

因為實在是找不到方法
所以小弟後來只好改成這個設定:
代碼: [選擇]
source s_httpd {
        file ("/AP/base/logs/wms2g/access_log" follow_freq(1) flags(no-parse));
        file ("/AP/base/logs/wms2g/error_log" follow_freq(1) flags(no-parse));
        internal();
};
以及
代碼: [選擇]
log { source(s_httpd); destination(d_host); };
目前httpd的access_log會傳到Syslog-ng Server
但是資訊會全寫到user.log這個檔案
不知是否有什麼方法可以將httpd的access_log及error_log再分別獨立出來
以免在查詢Log時,資訊太雜,無法search
煩請各位先進不吝指教
謝謝

hongbin

  • 憂鬱的高中生
  • ***
  • 文章數: 101
    • 檢視個人資料
Re: httpd2 Log可以透過Syslog-ng去接收嗎??
« 回覆 #2 於: 2013-05-05 16:33 »
小第提供一個作法:
假設syslog-ng server ip address :A.B.C.D

syslog-ng client 主機   syslog-ng.conf  新增以下內容:

source s_httpd_access {
    file("/var/log/httpd/access_log" flags(no-parse));
};
source s_httpd_error {
    file("/var/log/httpd/error_log" flags(no-parse));
};

destination d_httpd_access {
    udp("A.B.C.D" port(3331));
};
destination d_httpd_error {
    udp("A.B.C.D" port(3332));
};
log { source(s_httpd_access); destination(d_httpd_access); };
log { source(s_httpd_error); destination(d_httpd_error); };

=======================================================

syslog-ng server 主機   syslog-ng.conf  新增以下內容:

source s_httpd_access {
       udp(ip(A.B.C.D) port(3331));
};
source s_httpd_error {
       udp(ip(A.B.C.D) port(3332));
};
destination d_httpd_access { file("/var/log/httpd_access"); };
destination d_httpd_error     { file("/var/log/httpd_error"); };

log { source(s_httpd_access);  destination(d_httpd_access); };
log { source(s_httpd_error);   destination(d_httpd_error); };

=====================================================

小弟有驗證過,應該可以符合您的需求.....