- 更新日: 2016年3月22日
- CentOS & Linux
シスログの管理 rsyslog.conf の設定 〜 CentOS6
CentOS 6.4 ではデフォルトでは syslogd ではなくて rsyslogd が入っています。rsyslog を使い設定を行います。rsyslog/syslog は、システムのメッセージ送受信をネットワーク間の機器同士で転送したり、それらのメッセージをファイルにログとして記録を行ったりするためのデーモンです。
syslogd/rsyslogd の確認。
1 2 3 4 5 6 7 8 |
# chkconfig --list | grep syslog rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off # which syslogd /usr/bin/which: no syslogd in (/usr/local...) # which rsyslogd /sbin/rsyslogd |
このエントリーは、CentOS 6.4 インストール~設定手順の目次 の一部です。
設定ファイルの確認
設定ファイルは以下。
/etc/rsyslog.conf :共通設定ファイル
/etc/rsyslog.d/*.conf :個別の設定ファイル
/etc/sysconfig/rsyslog :起動オプション
起動オプションの設定ファイルを確認。
1 2 3 4 |
# vi /etc/sysconfig/rsyslog SYSLOGD_OPTIONS="-c 5" |
rsyslog の設定ファイルは /etc/rsyslog.conf です。確認してみると、”$IncludeConfig /etc/rsyslog.d/*.conf” という行があるので、rsyslog.d/ 配下の *.conf ファイルも設定ファイルとして読み込まれます。
rsyslog.conf でログの出力先が、”ファシリティ.プライオリティ 出力先” という書式で指定してあります。ファシリティはログの出力元となる指定、プライオリティはログ出力の重要度の指定です。
リモートからのログ転送
rsyslogd では syslogd と同様に他のホスト機、ネットワーク機器などリモートからログを転送できログを集約できます。
ログ受信側ホスト(ホスト名: centos, IPアドレス: 192.168.1.2 )
ログ送信元ホスト(ホスト名: centos3, IPアドレス: 192.168.1.3 )
とした設定例で、以下の作業を進めます。
ログ送信元ホスト(ホスト名: centos3, IPアドレス: 192.168.1.3 )
ログの送信元となるホスト機側の設定。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# vi /etc/rsyslog.conf # authpriv.* 認証に関するログを centos に転送する場合 authpriv.* @@centos:514 # 72行目からのコメントを解除して有効にする $WorkDirectory /var/lib/rsyslog # where to place spool files $ActionQueueFileName fwdRule1 # unique name prefix for spool files $ActionQueueMaxDiskSpace 1g # 1gb space limit (use as much as possible) $ActionQueueSaveOnShutdown on # save messages to disk on shutdown $ActionQueueType LinkedList # run asynchronously $ActionResumeRetryCount -1 # infinite retries if host is down |
以上を編集したら rsyslog 再起動。
1 2 3 4 5 |
# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] |
ログ受信側ホスト(ホスト名: centos, IPアドレス: 192.168.1.2 )
続いて、ログを受信するホスト機側の設定。以下のように TCP パケットをポート番号514で通信するための部分をコメントアウトして有効にする。
1 2 3 4 5 6 7 8 9 10 11 |
# vi /etc/rsyslog.conf #$ModLoad imtcp #$InputTCPServerRun 514 ↓ $ModLoad imtcp $InputTCPServerRun 514 # 許可する送信元を指定 $AllowedSender TCP, 127.0.0.1, 10.0.0.0/24, centos3 |
ポート開放、rsyslog 再起動
iptables で UDP, TCP の514番ポートを開けておく。
1 2 3 4 5 6 |
# vi /etc/sysconfig/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 514 -j ACCEPT # service iptables restart |
以上を編集したら rsyslog 再起動。
1 2 3 4 5 |
# service rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] |
以下、補足です。
ログ受信サーバーの $template の行で、ログの場所を指定できます。複数のホストやネットワーク機器のログを集約する場合、ホスト・ネットワーク機器別、出力元のプログラム名別にログの場所を分けると分かりやすいかと思います。
1 2 3 4 5 6 7 8 |
# vi /etc/rsyslog.conf # ログ出力のテンプレートとして動的な名前でログファイルを作成する定義 # /var/log/syslog/出力元ホスト名/出力元プログラム名/年/月/日.log という書式 $template DynamicFile,"/var/log/syslog/%hostname%/%programname%/%$year%/%$month%/%day%.log" # ファシリティ.プライオリティとログ出力先を指定 *.* -?DynamicFile |
rsyslog に関する設定は以上です。
- – 参考リンク –
- rsyslog の設定 – わすれないうちにメモしよう
- CentOS rsyslogの設定
- CentOS 6 – Rsyslog – リモートホストにログを転送する : Server World
- Actions – rsyslog.conf rsyslog
- Technical notes, my online memory: Using rsyslog to log with dynamic file names
- SIOS “OSSよろず” ブログ出張所: rsyslog でリモートホストにログを転送管理する
- CentOS/rsyslog でリモート転送 – Welcome to Life with Linux
- CentOS & Linux の関連記事
- Job for nginx.service failedのNginxエラー
- upstream sent too big header while reading response header from upstream(Nginx/Rails)
- Can’t get information about user clamav(clamdエラー)
- STDERR: Exception in thread “main” java.lang.InternalErrorエラー
- Linuxサーバー容量を確認するコマンドdf,duをマスターする!
- rmでファイル削除後にdf -hで容量が減らない時の対処(Linux)
- Apacheをローカルネットワークのみに公開にする
- logwatchからのメールが来ないと思ったら…
- Linuxサーバの負荷や使用率を調査するコマンドと手順
- Bashの脆弱性もう一件CVE-2014-7169に対するパッチ適用
- 初回公開日: 2013年7月19日
- 2件のコメント
古い記事で恐縮ですが、
> -A INPUT -m state –state NEW -m udp -p tcp –dport 514 -j ACCEPT
-A INPUT -m state –state NEW -m udp -p udp –dport 514 -j ACCEPT ではないでしょうか?
もりそばさん、こんにちは。ご指摘どうもありがとうございます!
はい、その通りです。記述が間違っておりましたので、本日修正を行いました。
ありがとうございました!