ログ管理 · 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サービスはクライアントワークステーションでのインストールアクティビティの情報を監査することができました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。