The rocket-fast Syslog Server - rsyslog
rsyslogでリモートからのログ出力を受け付ける設定とlogger
の簡単な使い方。
図で言うと、右側のrsyslogの設定。
(図の左側に当たる送信側については別記事参照)
(確認用)loggerコマンド
特に指定がなければローカルのsyslogサーバにログが記録される。
基本
$ logger "hello"
出力ログ
Mar 22 18:00:11 manager-dev zaki: hello
オプション
-i
: pidを付与-t <tag>
: tag名を付与
$ logger "hello" -i -t "sample"
Mar 22 18:03:51 manager-dev sample[77216]: hello
出力先の変更
出力先の指定は-p
で指定するが、どこへ出力されるかは/etc/rsyslog.conf
の設定に依る。
例えば
# Log cron stuff cron.* /var/log/cron
という設定があった場合
$ logger "hello" -i -t "sample" -p "cron.err"
の実行で、/var/log/messages
には何も出力されず、/var/log/cron
へ以下のログが記録される。
Mar 22 18:10:00 manager-dev sample[77272]: hello
リモートへのログ出力については後述
UDP設定
以下の設定を追加(コメントアウトされてるはずなので有効にする)してrestartする。
# Provides UDP syslog reception $ModLoad imudp $UDPServerRun 514
# systemctl restart rsyslog # # ss -anpu | grep rsyslogd UNCONN 0 0 *:514 *:* users:(("rsyslogd",pid=77530,fd=3)) UNCONN 0 0 [::]:514 [::]:* users:(("rsyslogd",pid=77530,fd=4))
この状態でlogger
で-d
でUDP指定と、-n
で宛先サーバを指定して
$ logger "hello" -i -t "sample" -n 192.168.0.20
を実行すると
Mar 22 18:20:06 manager-dev.okd4.naru.jp-z.jp sample[77551]: hello
が記録される。
(なお、デフォルトでUDP動作のため-d
は省略可能)
TCP設定
UDPと同じ要領で、以下の設定を有効にすればTCPでもリモートからのログの出力を受け付ける。
# Provides TCP syslog reception $ModLoad imtcp $InputTCPServerRun 514
[root@manager-dev ~]# ss -anpt | grep rsyslogd LISTEN 0 25 *:514 *:* users:(("rsyslogd",pid=77580,fd=3)) LISTEN 0 25 [::]:514 [::]:* users:(("rsyslogd",pid=77580,fd=4))
この状態でlogger
で-T
でTCP指定と、-n
で宛先サーバ・-P
でポート番号を指定して
$ logger "hello" -i -t "sample" -T -n 192.168.0.20 -P 514
を実行すると、以下が記録される
Mar 22 18:24:23 manager-dev.okd4.naru.jp-z.jp sample[77609]: hello
UDP設定と違って、-T
は省略不可だった。また、-P
によるポート番号も必要だった(省略時にウェルノウンポートで動作しなかった)
送信元制御について
$AllowedSender
を使って送信元アドレスを限定できる。
ただし、現在は後方互換性のために残っている機能のため、ファイヤウォールで制御するのが望ましいとのこと。
$AllowedSender
Note: this feature is supported for backward-compatibility, only. The rsyslog team recommends to use proper firewalling instead of this feature.
なお、firewalld使用時にリモートからのSyslog転送を許可するには以下。
sudo firewall-cmd --add-service=syslog --permanent sudo firewall-cmd --reload
環境
[zaki@manager-dev ~]$ hostname -f manager-dev [zaki@manager-dev ~]$ cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) [zaki@manager-dev ~]$ logger --version logger from util-linux 2.23.2 [zaki@manager-dev ~]$ rsyslogd -version rsyslogd 8.24.0-41.el7_7.4, compiled with: PLATFORM: x86_64-redhat-linux-gnu PLATFORM (lsb_release -d): FEATURE_REGEXP: Yes GSSAPI Kerberos 5 support: Yes FEATURE_DEBUG (debug build, slow code): No 32bit Atomic operations supported: Yes 64bit Atomic operations supported: Yes memory allocator: system default Runtime Instrumentation (slow code): No uuid support: Yes Number of Bits in RainerScript integers: 64 See http://www.rsyslog.com for more information.