~~NOCACHE~~ ## 52.ログ管理-rsyslog-syslogサーバ設定 rsyslogでsyslogサーバを構築する手順を記載する。 ### 概要 ・%%/etc/rsyslog.conf%%でsyslog待ち受けの有効化 ・%%/etc/logrotate.d/syslog%%でログローテを設定 ## /etc/rsyslog.conf設定詳細 ### MODULES syslog受信のUDP514ポートを有効にする。 #### 変更前 # Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html #module(load="imudp") # needs to be done just once #input(type="imudp" port="514") #### 変更後 # Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once input(type="imudp" port="514") ### RULES ・送信元ごとにログを書き出す。 ・messegesにsyslogサーバのログを重複させないようにする。 #### 変更前 # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages #### 変更後 ・[& stop]を[/var/log/messages]書き出し前に入れることで重複を回避している。 ・送信元は[%fromhost-ip%]で送信元IPごとにディレクトリを分けて、ディレクトリ配下に送信元ごとのファイルを書き出している。 ※[127.0.0.1.log]がホストのmessegesにあたるログになります。 $template syslogFileName,"/var/log/syslog/%fromhost-ip%/%fromhost-ip%.log" *.info;mail.none;authpriv.none;cron.none -?syslogFileName & stop # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages ## /etc/logrotate.d/syslog設定詳細 参考までに[/etc/logrotate.d/syslog]に追記する方法でログローテの設定をしている。 #### 変更前 /var/log/cron /var/log/maillog /var/log/messages /var/log/secure /var/log/spooler { missingok notifempty sharedscripts postrotate /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true endscript } #### 変更後 [/var/log/messages]は書き出されないけどコメントアウトを、[notifempty]で空ログ回避を入れても良い。 /var/log/cron /var/log/maillog # /var/log/messages /var/log/secure /var/log/spooler /var/log/syslog/*/*.log { missingok sharedscripts postrotate /usr/bin/systemctl kill -s HUP rsyslog.service >/dev/null 2>&1 || true endscript } {{tag>AWS RHEL 実践的}}