はじめに
こんにちは、山田です。
現在にかかわっている案件で、rsyslogに触れる機会があったため具体的に実装したことをまとめていきます。
構成図
ログ受信側のrsyslog.conf設定変更
/etc/rsyslog.conf
の以下のコメントアウトを外しログのTCP転送を受け入れるようにします。
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
ログ受信側のrsyslog設定ファイル作成
/etc/rsyslog.d
配下にtest.conf
を作成し、その中にログの転送先、転送条件を追記していきます。
:msg, regex, "test..log" /var/log/test.log
& ~
:fromhost-ip, isequal, "10.1.0.46" /var/log/test.log
& stop
基本的な構成以下のようになっています。
:<プロパティ>, <条件文>, "<値>" "<ログの送信先>"
プロパティ:チェックする対象を指定するもので今回はmsg(メッセージ本体)
,fronthost-ip(送信元IPアドレス)
を指定しています
条件文:プロパティと値をどのように比較するのかを指定するもので今回はregex(指定した値を正規表現とし、それにマッチするかどうか)
,isequal(指定した値と完全に一致する)
を指定しています。
ログ送信側のrsyslog.conf設定変更
/etc/rsyslog.conf
に追記しログを転送できるように設定する。
*.* @@10.1.0.58:514
記載方法については以下ようになっています。
<ファシリティ>.<ログレベル> <@ or @@> <ホスト名 or IP> : <ポート番号>
ファシリティ:要するにログメッセージのこと。
@ or @@:1個だとUDP転送、2個だとTCP転送になる。
動作確認
実際にログが転送されているのか確認していきます。
loggerにてログ出力
ログ送信側でloggerコマンドを使用して、転送条件にマッチするログを出力させます。
logger test01log
ログ転送確認
ログ受信側にて、ログが受信されていることを確認します。
Jun 15 05:01:56 ip-10-1-0-46 ec2-user[59482]: test01log
受信が確認できれば完了です!
終わりに
rsyslogの設定方法について記載しました。
自分なりにまとめてみたことで理解が深まった気がしてます。
また、学んだことを記載していければ良いなと思います。
終わり。