====== 【Ubuntu Server】syslogサーバの構築 ====== ルータ機器などからのログを収集する為に、rsyslogサーバを構築した。 ===== rsyslogのインストール ===== Ubuntu Serverには、rsyslogパッケージはインストール済みだったが、もし入っていなければ下記コマンドを実行しインストール。 $ sudo apt install rsyslog ==== rsyslogサービスの設定 ==== 下記設定ファイルの以下の行をコメントを外し、外部ポートからのアクセスを有効にする。 # provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514") 記録先フォルダの作成(アクセス権限設定) $ sudo mkdir /var/log/rsyslog_host $ sudo chown syslog:adm /var/log/rsyslog_host/ rsyslogサービスの再起動 $ sudo service rsyslog restart rsyslogサービスの起動確認 $ sudo service rsyslog status ==== ホスト名別のログファイルを作成 ==== 下記のファイルを作成。 # Default rules for rsyslog. # # For more information see rsyslog.conf(5) and /etc/rsyslog.conf $template logFileName,"/var/log/rsyslog_host/log_%hostname%.log" # # First some standard log files. Log by facility. # :fromhost-ip,!isequal, "127.0.0.1" -?logFileName & stop rsyslogサービスの再起動 $ sudo service rsyslog restart これで、「%%/var/log/rsyslog_host/%%」フォルダに、ホスト名を含むログファイルが作成されるようになる。 === IPアドレス別のログファイル名にしたい場合 === 上記の指定を、以下のように指定するとIPアドレス別のファイルが作成される。 $template logFileName,"/var/log/rsyslog_host/log_%fromhost-ip%.log" ===== ログローテーションの設定 ===== ログファイル容量が大きくなりすぎないように、ログファイルを定期的に圧縮し削除する。\\ 下記の設定ファイルを作成する。 /var/log/rsyslog_host/log_*.log { rotate 7 daily missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog rotate > /dev/null endscript } logrotateサービスの再起動 $ sudo service logrotate restart logrotateサービスの起動確認 $ sudo service logrotate status ==== ログファイルをローテーションする間隔 ==== 以下に指定した間隔で、ログローテーションする。 * daily : 1日ごと * weekly : 1週間ごと * monthly : 1ヶ月ごと ===== ログファイルの確認 ===== syslog権限でファイル作成されるので、内容表示などするには %%sudo%% が必要。 $ ls -al /var/log/rsyslog_host/ -rw-r----- 1 syslog adm 445 6月 12 09:26 log_192.168.100.250.log -rw-r----- 1 syslog adm 695554 6月 12 09:28 log_192.168.100.251.log $ sudo less /var/log/rsyslog_host/log_log_192.168.100.250.log ===== 参考 ===== - [[https://www.skygroup.jp/tech-blog/article/429/|Ubuntuで​syslogサーバーを​構築しました]] - [[https://www.bnote.net/ubuntu/rsyslog_log_dest.html|r​syslog でログの出力先を変更する]] - [[https://www.secuavail.com/kb/tech-blog/tb-210521-01-2/|rsyslogをホスト名、IPアドレスごとにフォルダー分けする方法]] - [[https://tex2e.github.io/blog/infrastructure/logrotate-conf|logrotateの設定ファイル]]