ログ管理 · 6 min read · Dec 12, 2025
rsyslogを中央集約型ログ管理のために設定する方法
このチュートリアルでは、rsyslogを中央集約型ログ管理サーバーとして設定する方法を説明します。中央集約型ログ管理とは、複数の物理または仮想サーバーからさまざまなログを1つのログサーバーに収集し、サーバーサービスの健康とセキュリティを監視することを意味します。このチュートリアルでは、rsyslogを使用します。なぜなら、高性能で優れたセキュリティとモジュラー設計を提供するからです。また、MySQL、Oracle、Hadoopなどの多数のデータベースソリューションにログを保存することもでき、より良い統合が可能です。
1. 前提条件
このチュートリアルでは、32ビット版のOracle Linux 6.4を使用しています。Oracle Linuxの下で設定が行われているにもかかわらず、同じ手順はCentOSやRed Hat OS Linuxでも機能することに注意してください。このチュートリアルでは、2つのサーバーを使用します。最初のサーバーはrsyslogサーバーとして機能し、もう一方はrsyslogクライアントのワークステーション/クライアントサーバーとして機能します。このチュートリアルの終わりまでに、ユーザーがクライアントサーバーにログインすると、rsyslogサーバーが自動的に彼のアクティビティをログに記録することがわかります。
2. Rsyslogのインストール
インストールフェーズでは、rsyslogパッケージとその依存関係がインストールされている必要があります。まず、オペレーティングシステムのバージョンを確認しましょう。
[root@RSYS01 ~]# cat /etc/issue
Oracle Linux Server release 6.4
Kernel \r on an \m[root@RSYS01 ~]# arch
i686[root@RSYS01 ~]# uname -a
Linux RSYS01 2.6.32-358.el6.i686 #1 SMP Fri Feb 22 13:37:29 PST 2013 i686 i686 i386 GNU/Linux次に、yumユーティリティを介してrsyslogパッケージをインストールするための新しいリポジトリを構成します。
[root@RSYS01 ~]# cd /etc/yum.repos.d/
[root@RSYS01 yum.repos.d]# vi rsyslog.repo
[rsyslog-v7-devel]
name=Adiscon Rsyslog v7-devel for CentOS-$releasever-$basearch
baseurl=http://rpms.adiscon.com/v7-devel/epel-$releasever/$basearch
enabled=0
gpgcheck=0
protect=1[rsyslog-v7-stable]
name=Adiscon Rsyslog v7-stable for CentOS-$releasever-$basearch
baseurl=http://rpms.adiscon.com/v7-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
protect=1[root@RSYS01 yum.repos.d]# yum list rsyslog
Loaded plugins: refresh-packagekit, security
rsyslog-v7-stable | 2.5 kB 00:00
rsyslog-v7-stable/primary_db | 188 kB 00:01
Available Packages
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable完了しました。新しいバージョンのrsyslogのインストールを開始しましょう。手順は以下の通りです。
[root@RSYS01 yum.repos.d]# yum install rsyslog -y
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Running transaction check
---> Package json-c.i686 0:0.11-3.el6 will be installed
---> Package libestr.i686 0:0.1.9-1.el6 will be installed
---> Package libgt.i686 0:0.3.11-1.el6 will be installed
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k
Installing for dependencies:
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k
Transaction Summary
===============================================================================================================
Install 5 Package(s)
Total download size: 1.0 M
Installed size: 3.2 M
Downloading Packages:
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03
---------------------------------------------------------------------------------------------------------------
Total 114 kB/s | 1.0 MB 00:09
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgt-0.3.11-1.el6.i686 1/5
Installing : liblogging-1.0.4-1.el6.i686 2/5
Installing : libestr-0.1.9-1.el6.i686 3/5
Installing : json-c-0.11-3.el6.i686 4/5
Installing : rsyslog-7.6.7-1.el6.i686 5/5
Verifying : json-c-0.11-3.el6.i686 1/5
Verifying : libestr-0.1.9-1.el6.i686 2/5
Verifying : liblogging-1.0.4-1.el6.i686 3/5
Verifying : libgt-0.3.11-1.el6.i686 4/5
Verifying : rsyslog-7.6.7-1.el6.i686 5/5
Installed:
rsyslog.i686 0:7.6.7-1.el6
Dependency Installed:
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6
Complete![root@RSYS01 yum.repos.d]# rsyslogd -v
rsyslogd 7.6.7, compiled with:
FEATURE_REGEXP: Yes
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
uuid support: Yes
Number of Bits in RainerScript integers: 64
See http://www.rsyslog.com for more information.[root@RSYS01 ~]# rpm -qa|grep rsyslog
rsyslog-7.6.7-1.el6.i686次に、インストールフェーズに進みます。このチュートリアルでは、簡単にするためにセキュリティレイヤーをスキップします。SELINUXを無効にして、途中でセキュリティに関連する問題が発生しないようにします。ライブセットアップではSELinuxとファイアウォールを無効にしないでください。以下は手順です。
まず、SELINUXポリシーの現在の状態を確認します。
[root@RSYS01 ~]# getenforce
Enforcing永久に無効にするには、以下の手順に従います。
[root@RSYS01 ~]# cd /etc/sysconfig/
[root@RSYS01 ~]# vi selinux
# このファイルは、システム上のSELinuxの状態を制御します。
# SELINUX=は次の3つの値のいずれかを取ることができます:
# enforcing - SELinuxセキュリティポリシーが強制されます。
# permissive - SELinuxは強制する代わりに警告を表示します。
# disabled - SELinuxポリシーは読み込まれません。
SELINUX=disabled
# SELINUXTYPE=は次の2つの値のいずれかを取ることができます:
# targeted - 対象プロセスが保護されます、
# mls - マルチレベルセキュリティ保護。
SELINUXTYPE=targetedその後、サーバーとクライアントの接続間でブロックを避けるためにファイアウォールが無効になっていることを確認します。
[root@RSYS01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination[root@RSYS01 ~]# /etc/init.d/iptables stop
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ][root@RSYS01 ~]# /etc/init.d/iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination完了しました。インストールフェーズが成功したので、構成フェーズに進みましょう。
3. Rsyslogの構成
すべてのパッケージ依存関係はすでにインストールされていますので、rsyslogの構成に焦点を当てましょう。構成ファイルに入り、以下のように変更を加えます。
[root@RSYS01 ~]# vi /etc/rsyslog.conf
module(load="imudp") # 一度だけ行う必要があります
input(type="imudp" port="514")
$template Auditlog, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"
$template TmplMsg, "/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log"
authpriv.* ?Auditlog以下は、私たちが行った構成変更の説明です。
- module(load=”imudp”) # 一度だけ行う必要があります ==> サーバーとクライアント間でrsyslogメッセージをUDPプロトコルで受信する能力を提供します
- input(type=”imudp” port=”514”) ==> rsyslogサービスにポート514を使用します
- $template Auditlog, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> rsyslogサーバーに接続されたすべてのクライアントに対して、システムは自動的にクライアントホスト名フォルダーと関連するサービスファイル名を作成します
- $template TmplMsg, “/var/log/rsyslog_client/%HOSTNAME%/%PROGRAMNAME%.log” ==> rsyslogサーバーに接続されたすべてのクライアントに対して、システムは自動的にクライアントホスト名フォルダーと関連するサービスファイル名を作成します
構成が完了したら、rsyslogサービスを開始しましょう。
[root@RSYS01 yum.repos.d]# /etc/init.d/rsyslog restart
Shutting down system logger: [FAILED]
Starting system logger: [ OK ]netstatを使用して、rsyslogサービスが稼働しているかどうかを確認します。
[root@RSYS01 yum.repos.d]# netstat -uanp|grep rsyslog
udp 0 0 0.0.0.0:514 0.0.0.0:* 2430/rsyslogd
udp 0 0 :::514 :::* 2430/rsyslogd上記のように、rsyslogサービスが設定したポートで稼働していることがわかります。デフォルトでは、rsyslogは自分自身のサーバーアクセスも監査します。rsyslogサーバーをクライアントとして扱います。それが機能しているかどうかを確認するために、/var/logフォルダーを確認できます。RSYS01という名前のフォルダーが存在するかどうかを確認しましょう。
[root@RSYS01 log]# cd /var/log/
[root@RSYS01 log]# ls -l|grep rsyslog
drwx------ 3 root root 4096 Oct 24 18:21 rsyslog_client[root@RSYS01 log]# cd rsyslog_client
[root@RSYS01 rsyslog_client]# ls
RSYS01
[root@RSYS01 rsyslog_client]# cd RSYS01/
[root@RSYS01 RSYS01]# ls
rsyslogd.log素晴らしい、すべてが順調に動作しているようです!次に、すべての構成が期待通りに行われたことを確認するためにテストフェーズに進みましょう。
4. テストフェーズ
rsyslogサービスを実行しているサーバーは、クライアントとしても機能するため、ローカルログインの監視が行われているかどうかをサーバー自体で確認できます。それが本当かどうかを確認するために、SSHサービスを使用して別のセッションでrsyslogサーバーにログインしましょう。このステップでは、サーバー自体がすでにパスワードなしの設定がされていると仮定します。以下は手順です。
[root@RSYS01 RSYS01]# ssh root@RSYS01
Last login: Sat Oct 22 15:45:48 2016 from 172.20.181.70[root@RSYS01 ~]# who
root pts/0 2016-10-22 00:21 (172.20.181.11)
root pts/1 2016-10-24 18:22 (127.0.0.1)[root@RSYS01 ~]# exit
logout
Connection to RSYS01 closed.完了しました。これだけで、rsyslogサーバーにログインし、新しいセッションが作成されると、rsyslogサービスがセッションを監査したことを確認するために再度ログインします。次に、セッションが監査されたかどうかを確認しましょう。以下は手順です。
[root@RSYS01 ~]# cd var/log/rsyslog_client/RSYS01
[root@RSYS01 RSYS01]# ls
rsyslogd.log sshd.log
[root@RSYS01 RSYS01]# tail -f sshd.log
Oct 24 18:22:46 RSYS01 sshd[2536]: Accepted password for root from 192.168.43.101 port 52862 ssh2
Oct 24 18:22:46 RSYS01 sshd[2536]: pam_unix(sshd:session): session opened for user root by (uid=0)
Oct 24 18:22:50 RSYS01 sshd[2536]: Received disconnect from 192.168.43.101: 11: disconnected by user
Oct 24 18:22:50 RSYS01 sshd[2536]: pam_unix(sshd:session): session closed for user root
^C素晴らしい、rsyslogサービスはセッションが開始されたときに自動的にsshd.logファイルを作成しました。ログファイルの中には、セッションの下に作成された時間、ポート、ユーザーの詳細がリストされています。
すべてが期待通りに動作しているので、rsyslogサーバーによって監査されるようにrsyslogクライアントのワークステーションを設定しましょう。rsyslogクライアントには、rsyslogパッケージをインストールし、rsyslogサーバーにリンクするために構成ファイルに簡単な変更を加えるだけで済みます。以下は手順です。
[root@CLIENT01 ~]# cd /etc/yum.repos.d/
[root@CLIENT01 yum.repos.d]# yum list rsyslog
Loaded plugins: refresh-packagekit, security
rsyslog-v7-stable | 2.5 kB 00:00
rsyslog-v7-stable/primary_db | 188 kB 00:01
Available Packages
rsyslog.i686 7.6.7-1.el6 rsyslog-v7-stable[root@RSYS01 yum.repos.d]# yum install rsyslog -y
Loaded plugins: refresh-packagekit, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog.i686 0:7.6.7-1.el6 will be installed
--> Processing Dependency: liblogging-stdlog.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libjson-c.so.2 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgthttp.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgtbase.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libgt for package: rsyslog-7.6.7-1.el6.i686
--> Processing Dependency: libestr.so.0 for package: rsyslog-7.6.7-1.el6.i686
--> Running transaction check
---> Package json-c.i686 0:0.11-3.el6 will be installed
---> Package libestr.i686 0:0.1.9-1.el6 will be installed
---> Package libgt.i686 0:0.3.11-1.el6 will be installed
---> Package liblogging.i686 0:1.0.4-1.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
rsyslog i686 7.6.7-1.el6 rsyslog-v7-stable 920 k
Installing for dependencies:
json-c i686 0.11-3.el6 rsyslog-v7-stable 46 k
libestr i686 0.1.9-1.el6 rsyslog-v7-stable 9.0 k
libgt i686 0.3.11-1.el6 rsyslog-v7-stable 55 k
liblogging i686 1.0.4-1.el6 rsyslog-v7-stable 23 k
Transaction Summary
===============================================================================================================
Install 5 Package(s)
Total download size: 1.0 M
Installed size: 3.2 M
Downloading Packages:
(1/5): json-c-0.11-3.el6.i686.rpm | 46 kB 00:00
(2/5): libestr-0.1.9-1.el6.i686.rpm | 9.0 kB 00:00
(3/5): libgt-0.3.11-1.el6.i686.rpm | 55 kB 00:00
(4/5): liblogging-1.0.4-1.el6.i686.rpm | 23 kB 00:00
(5/5): rsyslog-7.6.7-1.el6.i686.rpm | 920 kB 00:03
---------------------------------------------------------------------------------------------------------------
Total 114 kB/s | 1.0 MB 00:09
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : libgt-0.3.11-1.el6.i686 1/5
Installing : liblogging-1.0.4-1.el6.i686 2/5
Installing : libestr-0.1.9-1.el6.i686 3/5
Installing : json-c-0.11-3.el6.i686 4/5
Installing : rsyslog-7.6.7-1.el6.i686 5/5
Verifying : json-c-0.11-3.el6.i686 1/5
Verifying : libestr-0.1.9-1.el6.i686 2/5
Verifying : liblogging-1.0.4-1.el6.i686 3/5
Verifying : libgt-0.3.11-1.el6.i686 4/5
Verifying : rsyslog-7.6.7-1.el6.i686 5/5
Installed:
rsyslog.i686 0:7.6.7-1.el6
Dependency Installed:
json-c.i686 0:0.11-3.el6 libestr.i686 0:0.1.9-1.el6 libgt.i686 0:0.3.11-1.el6 liblogging.i686 0:1.0.4-1.el6
Complete!完了しました。クライアントワークステーションにrsyslogパッケージをインストールしました。次に、rsyslog構成ファイル内で修正を加えます。クライアント構成では、以下のように構成を修正するだけです。
[root@CLIENT01 ~]# vi /etc/rsyslog.conf
*.* @192.168.43.101:514これで完了です。構成ファイルにポート514で192.168.43.101のIPを含めたことに注意してください。このIPはrsyslogサーバーのIPです。すべてが完了したので、クライアントワークステーションでrsyslogサービスを再起動して変更を読み込みましょう。以下は手順です。
[root@CLIENT01 ~]# /etc/init.d/rsyslog restart
Shutting down system logger: [FAILED]
Starting system logger: [ OK ]次に、rsyslogサーバーに戻り、rsyslogログディレクトリにrsyslogクライアントホスト名のフォルダーが作成されたかどうかを確認します。以下は手順です。
[root@RSYS01 ~]# cd var/log/rsyslog_client/
[root@RSYS01 rsyslog_client]# ls
RSYS01 CLIENT01素晴らしい、rsyslogクライアントホスト名のフォルダーが自動的に作成されたことに注意してください。これにより、私たちの構成が正しいことが確認され、rsyslogクライアントがrsyslogサーバーにUDP接続を確立できることが確認されました。
次のテスト手順では、別のユーザーとしてrsyslogクライアントにログインし、rsyslogサーバーがアクティビティをキャプチャできるかどうかを確認します。以下は手順です。
::CLIENT01::
login as: shahril
[email protected]'s password:
Last login: Sun Oct 23 00:21:40 2016 from 172.20.181.11[shahril@CLIENT01 ~]$ who
shahril pts/0 2016-10-24 17:01 (192.168.43.80)[shahril@CLIENT01 ~]$ exit次に、rsyslogサーバー内のログディレクトリを確認して、rsyslogクライアントから作成されたアクティビティをログに記録できたかどうかを確認します。
[root@RSYS01 ~]# cd var/log/rsyslog_client/
[root@RSYS01 rsyslog_client]# cd CLIENT01/
[root@RSYS01 CLIENT01]# ls
rsyslogd.log sshd.log
[root@RSYS01 CLIENT01]# tail -10 sshd.log
Oct 24 17:01:47 CLIENT01 sshd[2102]: Accepted password for shahril from 192.168.43.80 port 17002 ssh2
Oct 24 17:01:47 CLIENT01 sshd[2102]: pam_unix(sshd:session): session opened for user shahril by (uid=0)素晴らしい、結果はプロセスが期待通りに機能していることを示しています。最後のテストとして、rsyslogクライアントに再度ログインし、パッケージをインストールして、rsyslogサービスがセッション作成以外のアクティビティをログに記録できるかどうかを確認します。以下は手順です。
::CLIENT01::
login as: root
[email protected]'s password:
Last login: Sat Oct 22 10:21:40 2016 from 172.20.181.11[root@CLIENT01 ~]# yum install firefox -y
Loaded plugins: refresh-packagekit, security
Repository 'OEL64' is missing name in configuration, using id
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.12-1.0.1.el6_3 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
firefox i686 10.0.12-1.0.1.el6_3 OEL64 20 M
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 20 M
Installed size: 23 M
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : firefox-10.0.12-1.0.1.el6_3.i686 1/1
Verifying : firefox-10.0.12-1.0.1.el6_3.i686 1/1
Installed:
firefox.i686 0:10.0.12-1.0.1.el6_3
Complete!上記は、rsyslogクライアントワークステーションにFirefoxブラウザインストーラーを正常にインストールしたことを示しています。次に、rsyslogサーバーに戻り、rsyslogがワークステーションにサードパーティパッケージをインストールするプロセスをログに記録できたかどうかを確認します。以下は手順です。
[root@RSYS01 ~]# cd var/log/rsyslog_client/
[root@RSYS01 CLIENT01]# ls
rsyslogd.log sshd.log yum.log
[root@RSYS01 CLIENT01]# tail -20 yum.log
Oct 25 17:13:17 CLIENT01 yum[2319]: Installed: firefox-10.0.12-1.0.1.el6_3.i686素晴らしい、rsyslogサービスはクライアントワークステーションでのインストールアクティビティの情報を監査することができました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。