一、rsyslog 介紹
ryslog 是一個(gè)快速處理收集系統日志的程序,提供了高性能、安全功能和模塊化設計。rsyslog 是syslog 的升級版,它將多種來(lái)源輸入輸出轉換結果到目的地,據官網(wǎng)介紹,現在可以處理100萬(wàn)條信息。
特性:1.多線(xiàn)程
2.支持加密協(xié)議:ssl,tls,relp
3.mysql、oracle、postgreSQL
4.等等..
二、實(shí)踐部署()
2.1 環(huán)境圖
2.2.rsyslog server上部署操作
安裝rsyslog 程序(rsyslog默認已經(jīng)在各發(fā)行版安裝,如果系統中沒(méi)有的話(huà),可以用yum 進(jìn)行安裝,如下:)
[root@opm ~]# yum install rsyslog -y
編輯rsyslog配置文件,路徑 /etc/rsyslog.conf,修改前最好先備份一份,修改后的文件內容如下
[root@opm log]# grep -v '^#' /etc/rsyslog.conf | grep -v '^$'$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)$ModLoad imjournal # provides access to the systemd journal$ModLoad immark # provides --MARK-- message capability$ModLoad imudp$UDPServerRun 514$ModLoad imtcp$InputTCPServerRun 514$WorkDirectory /var/lib/rsyslog$AllowedSender tcp, 192.168.30.0/24$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$template Remote,'/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log':fromhost-ip, !isequal, '127.0.0.1' ?Remote$IncludeConfig /etc/rsyslog.d/*.conf$OmitLocalLogging on$IMJournalStateFile imjournal.state*.info;mail.none;authpriv.none;cron.none /data/log/messagesauthpriv.* /var/log/securemail.* -/var/log/maillogcron.* /var/log/cron*.emerg :omusrmsg:*uucp,news.crit /var/log/spoolerlocal7.* /var/log/boot.log
View Code
a.$AllowedSender tcp, 192.168.30.0/24 允許 30.0網(wǎng)段內的主機以tcp協(xié)議來(lái)傳輸
b.$template Remote,'/data/log/%fromhost-ip%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log' 定義模板,接受日志文件路徑,區分了不同主機的日志
c.:fromhost-ip, !isequal, '127.0.0.1' ?Remote 過(guò)濾server 本機的日志。
d.$InputTCPServerRun 514 開(kāi)啟tcp,tcp和udp 可以共存的
創(chuàng )建日志目錄,盡量選擇系統內比較大的區域創(chuàng )建,因為考慮到要存放很多服務(wù)器的日志文件。
[root@opm ~]# mkdir -pv /data/log
修改完成無(wú)誤后,重啟rsyslog服務(wù),并查看監聽(tīng)端口,514 是否是tcp協(xié)議
[root@opm ~]# systemctl restart rsyslog[root@opm ~]# netstat -aulntp | grep rsyslogtcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 20228/rsyslogd tcp6 0 0 :::514 :::* LISTEN 20228/rsyslogd udp 0 0 0.0.0.0:514 0.0.0.0:* 20228/rsyslogd udp6 0 0 :::514 :::* 20228/rsyslogd
2.3 客戶(hù)端上操作:
node1 上進(jìn)行配置
打開(kāi)配置文件,老樣子,先備份下在進(jìn)行修改 /etc/rsyslog.conf,修改完記得要重啟程序
[root@node1 ~]# grep -v '^$' /etc/rsyslog.conf | grep -v '^#'$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)$ModLoad imjournal # provides access to the systemd journal$WorkDirectory /var/lib/rsyslog$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$template myFormat,'%timestamp% %fromhost-ip% %msg%\n'$ActionFileDefaultTemplate myFormat$IncludeConfig /etc/rsyslog.d/*.conf$OmitLocalLogging on$IMJournalStateFile imjournal.state*.info;mail.none;authpriv.none;cron.none @@192.168.30.55authpriv.* /var/log/securemail.* -/var/log/maillogcron.* /var/log/cron*.emerg :omusrmsg:*uucp,news.crit /var/log/spoolerlocal7.* /var/log/boot.log
View Codeceph1 上進(jìn)行配置,重啟rsyslog程序
打開(kāi)配置文件/etc/rsyslog.conf
[root@ceph1 ~]# grep -v '^$' /etc/rsyslog.conf | grep -v '^#'$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)$ModLoad imjournal # provides access to the systemd journal$WorkDirectory /var/lib/rsyslog$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat$IncludeConfig /etc/rsyslog.d/*.conf$OmitLocalLogging on$IMJournalStateFile imjournal.state*.info;mail.none;authpriv.none;cron.none @@192.168.30.55authpriv.* /var/log/securemail.* -/var/log/maillogcron.* /var/log/cron*.emerg :omusrmsg:*uucp,news.crit /var/log/spoolerlocal7.* /var/log/boot.log$template myFormat,'%timestamp% %fromhost-ip%%msg%\n'$ActionFileDefaultTemplate myFormat
View Code最后重啟客戶(hù)端上的rsyslog程序
2.4 驗證,在服務(wù)器上進(jìn)到 /data/log 目錄下,進(jìn)行查看,會(huì )發(fā)現以下類(lèi)似的文件結構
[root@opm ~]# tree /data/log//data/log/├── 192.168.30.56│ └── 192.168.30.56_2016-05-05.log├── 192.168.30.57│ └── 192.168.30.57_2016-05-05.log└── messages2 directories, 3 files
messages:server 端的系統日志
文件夾192.168.30.56: node1 客戶(hù)端的日志
文件夾192.168.30.57: ceph1 客戶(hù)端的日志
我們這里只查看node1 的系統日志吧。server 上進(jìn)行操作
[root@opm ~]# tail -f /data/log/192.168.30.56/192.168.30.56_2016-05-05.log May 5 20:50:45 node1 rsyslogd: [origin software='rsyslogd' swVersion='7.4.7' x-pid='9296' x-info='http://www.rsyslog.com'] exiting on signal 15.May 5 20:50:45 node1 rsyslogd: [origin software='rsyslogd' swVersion='7.4.7' x-pid='9334' x-info='http://www.rsyslog.com'] startMay 5 20:50:45 node1 systemd: Stopping System Logging Service...May 5 20:50:45 node1 systemd: Starting System Logging Service...May 5 20:50:45 node1 systemd: Started System Logging Service.
這里還可以在node1上在命令行里輸入 logger “this is test ” 發(fā)送消息,server上進(jìn)行查看下
[root@opm ~]# tail -1f /data/log/192.168.30.56/192.168.30.56_2016-05-05.log May 5 20:52:46 node1 root: this is test
三、總結
以前不知道,總以為很難,現在感覺(jué)rsyslog還是挺簡(jiǎn)單的。不過(guò)簡(jiǎn)單是因為我們只是用了最簡(jiǎn)單方法,而且功能也是只用了轉發(fā),后續會(huì )嘗試如何記錄轉發(fā)其它服務(wù)的日志,比如mysql、zabbix、以及nova 服務(wù)的日志。這些才是最終的目的。
本文章屬于原創(chuàng ),轉載引用時(shí)請注明出處