CentOS 6 で rsyslog を使い、ログの受信・転送を行う基本を確認します。CentOS 5 の syslogd より機能は増えていますが、journald 前提の現代的な構成とは違います。古い環境では /etc/rsyslog.conf と /etc/rsyslog.d/ を確認します。
rsyslog の役割
- ローカルログをファイルへ保存する
- 他サーバーやネットワーク機器から syslog を受信する
- 別のログサーバーへ転送する
- facility / priority に応じて出力先を分ける
- テンプレートで保存ファイル名を変える
ログサーバーは障害調査の入口です。ログを受けるだけでなく、時刻同期、送信元制御、ローテーション、保存先容量も合わせて確認します。
サービスと設定確認
service rsyslog status
chkconfig --list rsyslog
rsyslogd -v
cat /etc/rsyslog.conf
ls -l /etc/rsyslog.dCentOS 6 では rsyslog が標準的に使われます。設定ファイルが複数に分かれている場合があるため、/etc/rsyslog.conf だけでなく /etc/rsyslog.d/ も確認します。
リモートログ受信
UDP 514 でログを受ける場合は、受信モジュールを有効にします。
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514UDP syslog は配送保証が強くありません。確実性が必要な場合は TCP や別のログ転送方式を検討します。古い環境では UDP 514 がよく使われているため、ネットワーク制御で送信元を限定するのが前提です。
ログ保存例
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* /var/log/maillog
cron.* /var/log/cronfacility ごとにログファイルを分けると、調査しやすくなります。ただし、分けすぎるとどこを見ればよいか分かりにくくなるため、運用ルールも合わせて確認します。
確認コマンド
rsyslogd -N1
service rsyslog restart
netstat -lunp | grep :514
logger -p local0.info "rsyslog test"
tail -f /var/log/messagesrsyslogd -N1 で設定の文法確認ができます。ログが届かない場合は、rsyslog 設定、iptables、送信元、時刻同期、保存先権限を分けて確認します。
まとめ
CentOS 6 の rsyslog では、ローカル保存、リモート受信、転送、送信元制御を分けて確認します。ログサーバーは障害調査の基盤になるため、受信できることだけでなく、時刻、保存先、ローテーションまで含めて運用設計を見る必要があります。
関連する記事
- CentOS 6 サーバー管理ガイド
CentOS 6 系の記事を役割別に確認できるハブページです。 - CentOS 6 rsyslog ommail 有効化時の大量ログ
rsyslog の通知設定で発生した問題を扱います。 - CentOS 6 NTP 時刻同期設定
ログ時刻を揃えるための前提です。
参考書籍
CentOS 6 のような古い Linux サーバー記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。
Amazon で見る
