私はrsyslogを介してリモートサーバーにクエリを記録する忙しいDNSサーバーを実行しています。
私たちが処理しているトラフィック量のため、rsyslog.confの速度制限を高める必要がありました。サーバーは、毎秒最大約 1.2K DNS 要求を処理します。これは、リモートロガーへのトラフィックが約2Mbpsであることを意味します。
ただし、$AddUnixListenSocket /var/named/chroot/dev/log
rsyslogディレクティブを使用すると、リモートサーバーに送信されるデータが急激に減少することがわかります。このディレクティブがない場合は、rsyslogが再起動された後にロギングが停止し、BINDを再起動する必要があることを除いて、すべてが正常です。
$AddUnixListenSocket
追加すると、rsyslogの速度制限の増加が「中断」されているようです。ここで何が起こっているのでしょうか?
ソフトウェアバージョン: - CentOS 6.7 x86_64 - rsyslog-5.8.10-10.el6_6.x86_64 - bind-9.8.2-0.37.rc1.el6_7.2.x86_64
私のもの/etc/rsyslog.conf
:
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$SystemLogRateLimitInterval 10
$SystemLogRateLimitBurst 15000
$ModLoad imklog # provides kernel logging support (previously done by rklogd)
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg *
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
そして/etc/rsyslog.d/fwd.conf
:
# keep logging after rsyslog restart
$AddUnixListenSocket /var/named/chroot/dev/log
# ### begin forwarding rule ###
# The statement between the begin ... end define a SINGLE forwarding
# rule. They belong together, do NOT split them. If you create multiple
# forwarding rules, duplicate the whole block!
# Remote Logging (we use TCP for reliable delivery)
#
# An on-disk queue is created for this action. If the remote host is
# down, messages are spooled to disk and sent when it is up again.
$WorkDirectory /var/lib/rsyslog # where to place spool files
$ActionQueueFileName tso_fwd # unique name prefix for spool files
$ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible)
$ActionQueueMaxFileSize 100M # AF: limit open file descriptors
$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
$ActionQueueType LinkedList # run asynchronously
$ActionQueueTimeoutEnqueue 0 # AF: discard when queue is full
$ActionResumeRetryCount -1 # infinite retries if host is down
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
#*.* @@remote-host:514
local0.* @@1.1.1.1:514
& ~
# ### end of the forwarding rule ###
答え1
まあ、速度制限設定は本当に無視したようですね。
追加すると、$AddUnixListenSocket
入力がimuxsock
独自の速度制限設定を持つモジュールに変更されました。
上部は/etc/rsyslog.d/fwd.conf
次のとおりです。
# raise logging limits
$IMUXSockRateLimitInterval 10
$IMUXSockRateLimitBurst 15000
# keep logging after rsyslog restart
$AddUnixListenSocket /var/named/chroot/dev/log
これで問題が解決しました。