rsyslog是一個開源工具,被廣泛用於Linux系統以通過TCP/UDP協議轉發或接收日志消息。 rsyslog守護進程可以被配置成兩種環境,一種是配置成日志收集服務器,rsyslog進程可以從網絡中收集其它主機上的日志數據,這些主機會將日志 配置為發送到另外的遠程服務器。rsyslog的另外一個用法,就是可以配置為客戶端,用來過濾和發送內部日志消息到本地文件夾(如/var/log)或 一台可以路由到的遠程rsyslog服務器上。
假定你的網絡中已經有一台已經配置好並啟動的rsyslog服務器,本指南將為你展示如何來設置CentOS系統將其內部日志消息路由到一台遠程rsyslog服務器上。這將大大改善你的系統磁盤空間的使用,尤其是當你還沒有一個用於/var目錄的獨立的大分區。
# rpm -qa | grep rsyslog # rsyslogd -v
# yum install rsyslog
# nano /etc/rsyslog.conf開啟文件用於編輯後,你需要添加以下聲明到文件底部。將IP地址替換為你的遠程rsyslog服務器的IP地址。
*.* @192.168.1.25:514
上面的聲明告訴rsyslog守護進程,將系統上各個設備的各種日志消息路由到遠程rsyslog服務器(192.168.1.25)的UDP端口514。
如果出於某種原因,你需要更為可靠的協議,如TCP,而rsyslog服務器也被配置為監聽TCP連接,你必須在遠程主機的IP地址前添加一個額外的@字符,像下面這樣:
*.* @@192.168.1.25:514注意,你也可以將rsyslog服務器的IP地址替換成它的主機名(FQDN)。
如果你只想要轉發服務器上的指定設備的日志消息,比如說內核設備,那麼你可以在rsyslog配置文件中使用以下聲明。
kern.* @192.168.1.25:514修改配置文件後,你需要重啟進程以激活修改:
CentOS 7:
# systemctl restart rsyslog.serviceCentOS 6:
# service rsyslog restart
首先,加載imfile模塊,這只需做一次。
module(load="imfile" PollingInterval="5")然後,指定日志文件的路徑以便imfile模塊可以檢測到:
input(type="imfile" File="/var/log/foobar.log" Tag="foobar" Severity="error" Facility="local7")最後,定向local7設備到遠程rsyslog服務器:
local7.* @192.168.1.25:514別忘了重啟rsyslog進程哦!
CentOS 7:
# systemctl enable rsyslog.service
CentOS 6:
# chkconfig rsyslog on
原文:http://linux.cn/article-4835-1.html