CentOS Stream 8
Sponsored Link

Rsyslog : 基本設定2021/07/02

 
Rsyslog の基本的な設定です。
[1] CentOS Stream 8 の Rsyslog デフォルトでは、[imjournal] モジュールが設定されています。
これにより ログ管理サービス Journal のデータベースを読み取り、Rsyslog の設定ルールに従って各種ログを保管しています。
[root@dlp ~]#
grep imjournal /etc/rsyslog.conf

module(load="imjournal"             # provides access to the systemd journal
       StateFile="imjournal.state") # File to store the position in the journal
[2] Rsyslog のログ保管ルールは [/etc/rsyslog.conf] で設定されています。
[root@dlp ~]#
grep -v -E "^#|^$" /etc/rsyslog.conf

module(load="imuxsock"    # provides support for local system logging (e.g. via logger command)
       SysSock.Use="off") # Turn off message reception via local log socket;
                          # local messages are retrieved through imjournal now.
module(load="imjournal"             # provides access to the systemd journal
       StateFile="imjournal.state") # File to store the position in the journal
global(workDirectory="/var/lib/rsyslog")
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")
include(file="/etc/rsyslog.d/*.conf" mode="optional")
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
authpriv.*                                              /var/log/secure
mail.*                                                  -/var/log/maillog
cron.*                                                  /var/log/cron
*.emerg                                                 :omusrmsg:*
uucp,news.crit                                          /var/log/spooler
local7.*                                                /var/log/boot.log

# * 保管ルールの記述方法 : (ファシリティ).(プライオリティ)  (アクション)
#
# ex : *.info;mail.none;authpriv.none;cron.none /var/log/messages
# ⇒ 全ファシリティの [info] プライオリティの [syslog] メッセージを [/var/log/messages] に出力
# ⇒ ただし [mail], [authpriv], [cron] ファシリティの [syslog] メッセージは [/var/log/messages] には出力しない
#
# * 出力ファイル名の先頭の [-] はログの書き込みは非同期で実行されることを意味する
#   ファイル名の先頭に [-] を付加しない場合はログの書き込みは同期モードで実行

# * ファシリティの主な種類
# kern             :  カーネル関連のメッセージ
# auth             :  認証関連のメッセージ
# authpriv         :  認証関連 (プライベート) のメッセージ
# cron             :  cron や at 関連のメッセージ
# mail             :  メールサービス関連のメッセージ
# news             :  news 関連のメッセージ
# uucp             :  uucp 関連のメッセージ
# daemon           :  デーモンプログラム関連のメッセージ
# user             :  ユーザーレベルのプロセス関連のメッセージ
# lpr              :  プリンタ関連のメッセージ
# syslog           :  syslog 内部のメッセージ
# local0 - local7  :  カスタムで自由に利用可能

# * プライオリティの種類
# emerg            :  システム利用不能レベルの問題
# alert            :  即時対応が必要なレベルの問題
# crit             :  重大なレベルの問題
# err              :  一般的なレベルのエラー
# warning          :  警告レベルのメッセージ
# notice           :  要注意レベルの通知メッセージ
# info             :  一般的な情報レベルのメッセージ
# debug            :  デバッグ情報
# none             :  指定なし (出力しない)

# * 通常のルール指定の場合、指定したプライオリティよりも重要度が高いログは全て記録
# 指定したプライオリティのみを記録したい場合は、プライオリティの前に等号を付加
# ex : kern.=crit     /dev/console
[3] もし、Rsyslog のシスログメッセージ読み取りを、デフォルトの Journal データベースからではなく、UNIX Socket から直接読み込むように変更する場合は、以下のように設定します。
Ubuntu 等では、従来の UNIX Socket から直接読み込む方式がデフォルトとなっています。
[root@dlp ~]#
vi /etc/rsyslog.conf
# 9-13行目 : 以下のように変更
# ⇒ SysSock.Use=on に変更
# ⇒ imjournal モジュールはコメント化
module(load="imuxsock"    # provides support for local system logging (e.g. via logger command)
       SysSock.Use="on") # Turn off message reception via local log socket;
                          # local messages are retrieved through imjournal now.
#module(load="imjournal"            # provides access to the systemd journal
#       StateFile="imjournal.state") # File to store the position in the journal

[root@dlp ~]#
systemctl restart rsyslog
[4] リモートホストにログを転送して、特定ホストで複数ホストのログを一括管理する場合は、以下のように設定します。
###### 受信側ホストの設定 ######

[root@dlp ~]#
vi /etc/rsyslog.conf
# 24-25行目 : コメント解除
# 26行目 : 許可する送信元を設定
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")
$AllowedSender TCP, 127.0.0.1, 10.0.0.0/24, *.srv.world

[root@dlp ~]#
systemctl restart rsyslog
# firewalld 稼働中の場合はポート許可

[root@dlp ~]#
firewall-cmd --add-port=514/tcp

[root@dlp ~]#
firewall-cmd --runtime-to-permanent

###### 送信側ホストの設定 ######

[root@node01 ~]#
vi /etc/rsyslog.conf
# 最終行に追記

action(type="omfwd"
       queue.filename="fwdRule_dlp.srv.world"
       queue.maxdiskspace="1g"
       queue.saveonshutdown="on"
       queue.type="LinkedList"
       action.resumeRetryCount="-1"
       Target="dlp.srv.world" Port="514" Protocol="tcp")

# queue.filename               :  キューファイル名
# queue.maxdiskspace           :  キューに確保するディスクスペース
# queue.saveonshutdown=on      :  シャットダウン時にキューデータをディスクに保存
# queue.type=LinkedList        :  10,000 メッセージを保持可能な非同期キュー
# action.resumeRetryCount=-1   :  サーバーが無応答の場合リトライし続ける
# Target=***                   :  ログ受信サーバーを指定

[root@node01 ~]#
systemctl restart rsyslog

###### 以上で送信側ホストのログが受信側ホストにも記録される ######

[root@dlp ~]#
tail /var/log/secure

Jul  2 01:21:56 dlp polkitd[844]: Acquired the name org.freedesktop.PolicyKit1 on the system bus
Jul  2 01:21:57 dlp sshd[896]: Server listening on 0.0.0.0 port 22.
Jul  2 01:21:57 dlp sshd[896]: Server listening on :: port 22.
Jul  2 01:22:08 dlp systemd[1506]: pam_unix(systemd-user:session): session opened for user root by (uid=0)
Jul  2 01:22:08 dlp login[1134]: pam_unix(login:session): session opened for user root by LOGIN(uid=0)
Jul  2 01:22:08 dlp login[1134]: DIALUP AT ttyS0 BY root
Jul  2 01:22:08 dlp login[1134]: ROOT LOGIN ON ttyS0
Jul  2 01:31:08 node01 sshd[907]: Received signal 15; terminating.
Jul  2 01:31:08 node01 sshd[1572]: Server listening on 0.0.0.0 port 22.
Jul  2 01:31:08 node01 sshd[1572]: Server listening on :: port 22.
関連コンテンツ