syslogサーバー構築とログ保存先の変更

Linux
この記事は約6分で読めます。

Endeavor NP15にUbuntu 20.04.1 LTSをインストールし、さっそくSyslogサーバーを構築してみました。

Raspberry PiでSyslogサーバーを構築したときより、かなりすんなり構築できました。

そして管理しやすいようにログの出力場所も設定してみました。

 

                 

Syslogサーバー構築

環境

  • Endeavor NP15(CPU:Intel Atom D525、RAM:4GB)
  • Ubuntu 20.04.1 LTS
  • LANのIPは固定化設定済み
  • 自宅で使用しているLAN内のルーター機器(RT-AX56U、WHR-300HP2、WZR-HP-G302H)からのログを保存する

作業はroot権限で行いました。

                 

rsyslogのインストール

ログを収集するためのツールとして、rsyslogを使います。

Ubuntu 20.04.1 LTSには初めからインストールされていました。

インストールされていたバージョンは以下のとおり。

 

                 

/etc/rsyslog.confの編集

ログ受信の有効化

rsyslogではデフォルトでは外部からのログ送信を受信しない設定になっています。

設定を変更し、外部からのログを受信できるように/etc/rsyslog.confを編集します。

17~18行目がコメントアウトされているので、#を削除して上書き保存します。

そして、rsyslogを再起動すると、外部からポート番号514/UDPでログが受信可能となります。

 

ログの保存場所は、/var/log/syslogです。

 

                 

出力先の変更

デフォルトでは、/var/log/syslogにログが出力されます。

この場所以外にログを出力させるためには、rsyslogの設定ファイルの編集が必要です。

/etc/rsyslog.confにログの出力先を記述してもよいですが、/etc/rsyslog.d/50-default.confを編集する方法を書いていきます。

 

/etc/rsyslog.confにはrsyslogの設定が記述されていますが、/etc/rsyslog.d/50-default.confの設定も読み込むと記述されています。

デフォルトのsyslog出力先である、/var/log/syslogはこのファイルで設定されています。

9行目の”*.*;auth,authpriv.none -/var/log/syslog”を任意の場所に変更します。

↓の例では、/var/log/syslog/syslogに出力するように設定しています。

※/var/log/syslog/syslogを作成するために、既存の/var/log/syslogを削除する必要があるので注意。

rsyslogを再起動すると、設定が読み込まれログの出力先が変わります。

                 

ホスト別に出力振り分け

ログを任意の出力先に保存するという目的は達成されました。

ログを見てみると、syslogを送信しているすべてのホストからのログがごちゃ混ぜになっていました。

これはこれで問題はありませんが、個人的には見辛いので、ホスト毎にログの出力先を変更してみました。

以下のページを参考にしました。

水銀室 rsyslogで送信元別にログを振り分ける -CentOS最短構築支援-

/etc/rsyslog.confに追記します。

参考にしたページでは%hostname%ではなく、%fromhost%を使用していましたが、%fromhost%だと、ゲートウェイとなるルーターが”_gateway”という名前になり、若干面倒な名前のため%hostname%としました。

これで、/var/log/syslog/ホスト名/message_ホスト名_年月日.logというファイルにログを出力するようになります。

 

ここで注意点が1つあります。

/etc/rsyslog.d/50-default.confにもログの出力が記述されています。そのため、デフォルトであれば/var/log/syslogにもログが書き込まれ続けます。

つまり、保存場所は異なるものの同じログを二重で保存してしまう状態になります。

そのため、/etc/rsyslog.d/50-default.confの9行目をコメントアウトし、/etc/rsyslog.confに追記した設定が有効になるようにしました。

 

編集後にrsyslogを再起動すると、設定が読み込まれログの出力先が変わります。

これでホスト毎に任意のファイル名でログを受信し保存するようにできました。

ゲートウェイとなっているRT-AX56Uからのログの量が多いので、ログローテーションやログ出力のレベルやファシリティについて勉強していこうと思います。

                 

ディレクティブの変更

syslogが受信されないトラブルが発生しました。

詳細は別記事で説明しますが、原因は/etc/rsyslog.confの設定が適切にされていないことでしたので、設定を書いていきます。

修正前

修正後

こうすることで、syslogが受信され続けます。

ルーターの設定

サーバー側の設定は完了したので、最後にログの送信元である各ネットワーク機器の設定を変更します。

ASUS RT-AX56U

インターネットへのゲートウェイとなっているルーターで、一番ログの量が多いです。

設定箇所は、[システムログ]→[全般ログ]のリモートログサーバーです。

ここにSyslogサーバーのIPを入力し、適用をクリックします。

                 

WHR-300HP2とWZR-HP-G302H

Wi-Fi中継器兼イーサーネットコンバータとして使っているWHR-300HP2と、ハブとして使っているWZR-HP-G302Hはどちらもバッファロー製です。

そのため、WebUIがほぼ同じで設定画面も同じです。

[管理設定]→[ログ]のsyslogサーバーにSyslogサーバーのIPを入力し、設定をクリックします。

コメント

タイトルとURLをコピーしました