1 頁 (共 1 頁)

rsyslogd server及client 的架設

發表於 : 2012-04-17 11:59:09
schumi
from http://go-linux.blogspot.com/2011/06/rh ... erver.html
http://linux.vbird.org/linux_basic/0570 ... ogd_server

RHEL6預設的log server由syslog改換成rsyslog,於是乎以往RHEL3/4/5的配置方法可能已經不適用了(也許有人還是習慣用syslog,那麼方法應該就一樣),不過不用擔心萬變不離其宗正是Linux的教條,只要理論有了,配置不過是理論的實現罷了,以下就簡單的說明一下怎麼改變吧。

1. Enable UDP port 514:
rsyslog預設上把port 514關掉了,請手動將它打開。
vi /etc/rsyslog.conf
打開udp 514 通訊埠
$ModLoad imudp.so
$UDPServerRun 514

重新啟動服務
# /etc/init.d/rsyslog restart

2. 檢查UDP port 514已開啟:
[root@rhel6 ~]# netstat -tupln | grep 514
udp 0 0 0.0.0.0:514 0.0.0.0:* 2713/rsyslogd
udp 0 0 :::514 :::* 2713/rsyslogd
順便把防火牆udp 514 打開

3. 配置允許接收對方的log events:
# vi /etc/rsyslog.conf to receive log from remote machine:
:fromhost-ip,isequal,"X.X.X.X" /var/log/test1_log
X.X.X.X -> remote IP address

- Restart rsyslog:
# /etc/init.d/rsyslog restart

4. 建立logrotate:
# vi /etc/logrotate.d/test1
/var/log/test1.log{
size +4096k #Trigger logrotate when file size more than 4096k
create 640 root root # File owner and permission
rotate 10 #maximum logrotate
compress
postrotate #restart rsyslog after trigger logrotate
/etc/init.d/rsyslog reload
endscript
}

- Restart rsyslog:
# /etc/init.d/rsyslog restart

Client 端
至於 client 端的設定就簡單多了!只要指定某個資訊傳送到這部主機即可! 舉例來說,我們的登錄檔伺服器 IP 為 192.168.1.100 ,而 client 端希望所有的資料都送給主機, 所以,可以在 /etc/syslog.conf 裡面新增這樣的一行:

代碼: 選擇全部

[root@www ~]# vim /etc/syslog.conf
*.*       @192.168.1.100
再重新啟動 syslog 後,立刻就搞定了!而未來主機上面的登錄檔當中,每一行的『主機名稱』就會顯示來自不同主機的資訊了。 很簡單吧! ^_^。

httpd 的log 也送入syslog server

發表於 : 2012-04-17 13:52:04
schumi
from http://sh790619.pixnet.net/blog/post/27585780-syslog


syslog server client set

重頭戲就是這個啦!!!

一開始就是想要利用這種方式,把所有的 log 集中在一台 server

然後可以利用一些軟體 如 graylog2 ,或是自己寫的分析系統來分析多台 server 的 log

在 server 的部分需要將 udp 的 port 514 打開監聽(設定檔、iptables)

代碼: 選擇全部

vim /etc/sysconfig/iptables
# 加入以下這行,對 port 514 放行

代碼: 選擇全部

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT

代碼: 選擇全部

vim /etc/sysconfig/syslog
# 修改這行~

代碼: 選擇全部

SYSLOGD_OPTIONS="-m 0 -r"
然後再將 syslog 重啟, server 的部分就差不多囉~



再來是 client,設定剛剛說的 /etc/syslog.conf 檔案

代碼: 選擇全部

vim /etc/syslog.conf
# 加入以下這行,將所有的 service log 傳送到 你的 server IP

代碼: 選擇全部

*.*    @your server ip
這樣就 ok 了~



設定 apache log 導入 syslog server

就如同剛剛說的

apache 需要自己設定 log 的存法[3]

代碼: 選擇全部

vim /etc/httpd/conf/httpd.conf
# error log 的部分就是這樣修改,將 apache 的 log 委託給 syslogd 處理
# 然後 syslogd 又會將這個 log 導入到剛剛的 syslog server~~

代碼: 選擇全部

ErrorLog syslog

# access 的 log 就是這樣設定,觀念跟剛剛是一樣的

代碼: 選擇全部

CustomLog |/usr/local/apache/bin/apache_syslog combined