rsyslog可用於系統日誌、交換機、路由器等日誌的集中收集,研究的較淺,瞭解到:客戶端可收集多個系統日誌,如corn、message、secure等;服務端收到日誌後經過template將不一樣主機的日誌,按IP或主機名存放到同一個文件中,若日誌格式固定,也可經過action來抽取日誌存放到其餘文件或轉發給其餘主機。html
基本架構是c/s模式vim
最新版本8.35centos
官方手冊:https://www.rsyslog.com/doc/v8-stable/configuration/index.html緩存
安裝服務器
centos7 x86_64架構
cd /etc/yum.repos.d/app
wget http://rpms.adiscon.com/v8-stable/rsyslog.repo異步
yum update -y rsyslogtcp
Client端配置ide
cp /etc/rsyslog.conf /etc/rsyslog.conf.bk
1)
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
vim /etc/rsyslog.d/application_log.conf
$ModLoad imfile
$InputFilePollInterval 10
$InputFileName /alidata/www/ultron/runtime/log/*.log
$InputFileTag backen_A:
$InputFileStateFile info
$InputRunFileMonitor
#使用 TCP 發送到 "example.com" 的518端口
\*.\* @@example.com:518
*.* @@remote-hos:514.該配置默認是註釋掉的,能夠取消註釋。並將remote-host修改成本身的服務器地址
2)
也可對非系統日誌作轉發,在/etc/rsyslog.d/下新增配置文件
vim app.conf
ruleset(name="remote"){
action(type="omfwd"
target="log_server_ip"
port="514" #端口
protocol="tcp" #使用協議
queue.type="linkedList" #使用異步處理
queue.spoolDirectory="/var/run/rsyslog" #隊列目錄
queue.fileName="remoteQueue" #隊列名稱
queue.maxDiskSpace="5g" #隊列佔最大磁盤空間
queue.saveOnShutdown="on" #保存內存數據若是rsyslog關閉
action.resumeRetryCount="-1" #無限重試插入失敗
)
stop
}
$WorkDirectory /var/run/rsyslog #默認爲/var/lib/rsyslog
module(load="imfile" PollingInterval="5")
input(type="imfile"
File="/alidata/www/runtime/log/201806/*.log" #日誌路徑
Facility="local1"
Severity="info"
Tag="clilog" #定義日誌標籤,重要,服務端根據這個標籤能夠識別日誌
PersistStateInterval="1" #回寫偏移量數據到文件間隔時間(秒),根據實際狀況而定
Ruleset="remote" #rsyslog.conf中定義的rule名稱
)
重啓rsyslog:systemctl restart rsyslog
Server端配置
cp /etc/rsyslog.conf /etc/rsyslog.conf.bk
編輯配置文件/etc/rsyslog.conf:取消TCP、UDP鏈接的註釋,修改爲以下
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCP
#在global device前配置日誌收集後按主機名和日期存放在/data/log目錄下
$template Remote,"/data/log/%hostname%/%$year%%$month%/%$DAY%_cli.log"
:fromhost-ip, !isequal, "127.0.0.1" ?Remote
@ ~
重啓rsyslog:systemctl restart rsyslog
ps,最好先重啓服務端,在重啓客戶端,這樣客戶端就能將隊列緩存日誌上傳給服務端了
集中日誌後,緊接着就是分析、報警之類的