CentOS 5 で syslogd を使い、ログの受信・転送を行う基本を確認します。現在の Linux では rsyslog や journald を見ることが多いですが、CentOS 5 系では古い syslog 構成が残っていることがあります。
syslogd の役割
syslogd は、システムやアプリケーションのログを受け取り、ファイルへ保存したり、別のログサーバーへ転送したりする仕組みです。古い環境では、監視や障害調査の入口として /var/log/messages が重要でした。
- ローカルログをファイルへ保存する
- ネットワーク機器やサーバーから syslog を受信する
- 別のログ集約サーバーへ転送する
- facility と priority に応じて出力先を分ける
サービス状態を確認する
まず、syslog サービスが起動しているかを確認します。CentOS 5 では syslog サービス名で管理されることがあります。
service syslog status
chkconfig --list syslog
ps aux | grep [s]yslog
tail -f /var/log/messagesログが出ていない場合は、サービス停止だけでなく、ログローテーション、ディスク容量、権限、設定ファイルの出力先も確認します。
syslog.conf の基本
/etc/syslog.conf では、facility.priority と出力先を組み合わせて設定します。
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* /var/log/maillog
cron.* /var/log/cron
*.emerg *左側がログの種類と重要度、右側が出力先です。古い環境では、この設定が長年継ぎ足されていることがあるため、何がどのファイルに出ているかを確認して読む必要があります。
リモート syslog を受信する
ログサーバーとして使う場合は、UDP 514 で syslog を受け付ける設定が必要です。CentOS 5 では起動オプション側でリモート受信を有効にする構成が使われます。
cat /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r"
service syslog restart
netstat -lunp | grep :514-r によりリモートログ受信を有効にします。ただし、UDP 514 を広く開けると不要なログや偽装ログも受け取るため、ファイアウォールやネットワーク設計で送信元を制限するのが前提です。
ログ転送の例
クライアント側からログサーバーへ転送する場合は、出力先に @logserver を指定します。
*.info @log01.example.localこの形式は UDP 転送です。配送保証は強くないため、確実なログ保全が必要な用途では、より新しいログ基盤や転送方式への移行を検討します。CentOS 5 の syslog は、あくまで当時の標準的なログ集約手段として読むのが自然です。
確認ポイント
/etc/syslog.confの出力先が存在するか/etc/sysconfig/syslogの起動オプションに-rがあるか- UDP 514 を受信しているか
- 送信元ネットワークが制限されているか
- ログローテーションで古いログが保持されているか
まとめ
CentOS 5 の syslogd は、古いサーバー運用におけるログ確認の中心です。ログサーバーとして使う場合は、受信設定、転送設定、送信元制御、時刻同期を合わせて確認します。移行時には、単にログファイルを見つけるだけでなく、どの機器・サーバーのログがどこに流れていたのかを棚卸しすることが重要です。
関連する記事
- CentOS 5 サーバー管理ガイド
CentOS 5 系の記事を役割別に確認できるハブページです。 - CentOS 5 ntpd 時刻同期設定
ログの時刻を揃えるための前提です。 - CentOS 5 Net-SNMP 設定
監視とログを合わせて運用確認する記事です。
参考書籍
古い Linux サーバーの記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。
Amazon で見る
