ryslog集中收集系統日誌

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,最好先重啓服務端,在重啓客戶端,這樣客戶端就能將隊列緩存日誌上傳給服務端了

集中日誌後,緊接着就是分析、報警之類的

相關文章
相關標籤/搜索