rsyslogでRELPプロトコル経由でsyslogを送受信する方法
RELPとは?
RELPは信頼性が高く、syslogがどこかに行ってしまいにくいプロトコルです。
普通にTCPで送信するのよりも信頼性が高いのでrsyslogはRELPの使用を強く提案(highly suggested)しています。
RELP, even with the small nits outlined above, is a much more reliable solution than plain tcp syslog and so it is highly suggested to use RELP instead of plain tcp.
imrelp: RELP Input Module — rsyslog 8.1907.0 documentation
https://www.rsyslog.com/doc/v8-stable/configuration/modules/imrelp.html
サーバー側の設定
syslogを受けるサーバーはRaspberry Pi(Raspbian 9.9)です。
最初にrsyslogとrsyslog-relpをインストールします。
1 |
sudo apt install rsyslog rsyslog-relp |
rsyslogdがRELPで送信されたsyslogを読めるようにします。
これは2514番ポートでsyslogを受ける場合の設定ファイルへの記述例です。
1 2 |
module(load="imrelp") input(type="imrelp" port="2514") |
新しい設定ファイルを反映させるためにrsyslogを再起動します。
1 |
sudo systemctl restart rsyslog |
クライアントの設定
syslogを送信するクライアントはCentOS 7.6です。
rsyslogはバージョンによって設定ファイルの書き方が変わるので注意してください。
rsyslogはもちろんですが、RELPを使うためのパッケージを併せてインストールしてください。
1 |
yum install rsyslog rsyslog-relp |
これはすべてのログを送信する場合の設定ファイルへの記述例です。
xxx.xxx.xxx.xxx
はサーバーのIPアドレスに置き換えてください。
1 |
*.* :omrelp:xxx.xxx.xxx.xxx:2514 |
新しい設定ファイルを反映させるためにrsyslogを再起動します。
1 |
sudo systemctl restart rsyslog |