RHEL8 の rsyslog で syslog サーバを作る
たくさんのログファイルを開くため,ディスクリプタを増やしておく.
次のようなファイルを作成する
# vi /etc/systemd/system/rsyslog.service.d/limit_nofile_limit.conf [Service] LimitNOFILE=16384
RHEL8 では,元々 16384 になっているようだ.
# cat /proc/`pidof rsyslog`/limits | grep -i "max open files"
ホスト名/年/月/ホスト名_年月日.log
時間 ホスト名 ログレベル ファシリティ タグ ログ本文
/etc/rsyslog
#### GLOBAL DIRECTIVES ####
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
#### TEMPLATE #####
template(name="VERBOSE" type="list"){
property(name="timestamp")
constant(value=" ")
property(name="hostname")
constant(value=" ")
property(name="syslogseverity-text")
constant(value=" ")
property(name="syslogfacility-text")
constant(value=" ")
property(name="syslogtag")
property(name="msg" spifno1stsp="on")
property(name="msg" droplastlf="on")
constant(value="\n")
}
template(name="FWlog" type="string"
string="/Log/%hostname%/%$year%/%$month%/%hostname%_%$year%%$month%%$day%.log" )
#### RULES ####
if ( $hostname != "localhost" and $syslogseverity < '5') then {
action(type="omfile" DynaFile="FWlog" template="VERBOSE")
stop
}