//

CentOS

rsyslog + rsyslog-mysql + loganalyzer = ブラウザでシスログ閲覧

rsyslog + rsyslog-mysql + loganalyzer = ブラウザでシスログ閲覧RedHat Enterprise Linux 系の 6.x から標準シスログパッケージとして採用された rsyslog ですが
rsyslog-mysql というパッケージを導入するとシスログの内容を MySQL に出力させる事ができるとのことで
早速試してみました。

また、MySQL に出力したついでにブラウザでも確認できたらいいなと思って探してみたら
LogAnalyzer という Web アプリケーションを見つけたのでそちらも導入してみました。

1. rsyslog-mysql パッケージのインストール
 rsyslog は標準パッケージとしてインストールされているので、
 rsyslog-mysql パッケージのみ追加でインストールする形になります。導入は yum で実施します。

# yum install rsyslog-mysql
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile

-snip-

Resolving Dependencies
--> Running transaction check
---> Package rsyslog-mysql.x86_64 0:4.6.2-12.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================
 Package          Arch      Version         Repository       Size
==================================================================
Installing:
 rsyslog-mysql    x86_64    4.6.2-12.el6    base             18 k

Transaction Summary
==================================================================
Install       1 Package(s)

Total download size: 18 k
Installed size: 11 k
Is this ok [y/N]: y
Downloading Packages:
rsyslog-mysql-4.6.2-12.el6.x86_64.rpm           |  18 kB     00:00

-snip-

Installed:
  rsyslog-mysql.x86_64 0:4.6.2-12.el6

Complete!

2. シスログ用 DB & DBユーザ 作成
 シスログ用の DB を作成する必要があります。
 rsyslog-mysql をインストールすると SQL スクリプトが配置されるのでそれを利用して作成します。
 DB を作成したら、DB に接続するためのユーザを作成します。

# mysql -u root -p < /usr/share/doc/rsyslog-mysql-4.6.2/createDB.sql
Enter password:

# mysql -u root -p Syslog
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

-snip-

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show tables;
+------------------------+
| Tables_in_Syslog       |
+------------------------+
| SystemEvents           |
| SystemEventsProperties |
+------------------------+
2 rows in set (0.00 sec)

mysql> grant all privileges on Syslog.* to syslog@localhost identified by 'PASSWORD';
Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.05 sec)

mysql> exit
Bye

#

3. rsyslog 設定変更
 rsyslog から MySQL にログを出力させる設定を /etc/rsyslog.conf に設定追加します。

# cd /etc
# cp -p rsyslog.conf /root/backup
# vi rsyslog.conf

<12行目付近に下記を追加>
-----------------------
#$ModLoad immark.so     # provides --MARK-- message capability

# MySQL
$ModLoad ommysql.so
*.* :o mmysql:localhost,Syslog,syslog,PASSWORD

# Provides UDP syslog reception
-----------------------

# diff rsyslog.conf /root/backup/rsyslog.conf
12,15d11
< # MySQL
< $ModLoad ommysql.so
< *.* :o mmysql:localhost,Syslog,syslog,PASSWORD
<

# service rsyslog restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]

※:ommysql:の構文について
:o mmysql:DB Server,DB Name,DB User,DB User's Password

4. データ確認
 実際に MySQL にログが出力されているか確認します。
 ※rsyslog を再起動した時点でログが出力されるはずです。

# mysql -u root -p Syslog
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.

-snip-

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select ID, ReceivedAt, Facility, Priority, FromHost, Message from SystemEvents where ID <= 10;
+----+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+
| ID | ReceivedAt          | Facility | Priority | FromHost | Message                                                                                                             |
+----+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+
|  1 | 2012-05-09 14:09:45 |        0 |        6 | mgmt01   | imklog 4.6.2, log source = /proc/kmsg started.                                                                      |
|  2 | 2012-05-09 14:09:45 |        5 |        6 | mgmt01   |  [origin software="rsyslogd" swVersion="4.6.2" x-pid="13709" x-info="http://www.rsyslog.com"] (re)start             |
|  3 | 2012-05-09 14:10:01 |        9 |        6 | mgmt01   |  (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)                                                                         |
|  4 | 2012-05-09 14:11:31 |        0 |        6 | mgmt01   | Kernel logging (proc) stopped.                                                                                      |
|  5 | 2012-05-09 14:11:31 |        5 |        6 | mgmt01   |  [origin software="rsyslogd" swVersion="4.6.2" x-pid="13709" x-info="http://www.rsyslog.com"] exiting on signal 15. |
|  6 | 2012-05-09 14:11:32 |        0 |        6 | mgmt01   | imklog 4.6.2, log source = /proc/kmsg started.                                                                      |
|  7 | 2012-05-09 14:11:32 |        5 |        6 | mgmt01   |  [origin software="rsyslogd" swVersion="4.6.2" x-pid="13738" x-info="http://www.rsyslog.com"] (re)start             |
|  8 | 2012-05-09 14:20:01 |        9 |        6 | mgmt01   |  (root) CMD (/usr/lib64/sa/sa1 -S DISK 1 1)                                                                         |
|  9 | 2012-05-09 14:28:39 |        0 |        6 | mgmt01   | Kernel logging (proc) stopped.                                                                                      |
| 10 | 2012-05-09 14:28:39 |        5 |        6 | mgmt01   |  [origin software="rsyslogd" swVersion="4.6.2" x-pid="13738" x-info="http://www.rsyslog.com"] exiting on signal 15. |
+----+---------------------+----------+----------+----------+---------------------------------------------------------------------------------------------------------------------+
10 rows in set (0.00 sec)

mysql> exit
Bye

#

5. LogAnalyzer のダウンロード & 展開

# wget http://download.adiscon.com/loganalyzer/loganalyzer-3.4.2.tar.gz
--2012-05-15 02:47:14--  http://download.adiscon.com/loganalyzer/loganalyzer-3.4.2.tar.gz
Resolving download.adiscon.com... 176.9.39.152
Connecting to download.adiscon.com|176.9.39.152|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1002472 (979K) [application/x-gzip]
Saving to: `loganalyzer-3.4.2.tar.gz'

100%[====================================================>] 1,002,472    175K/s   in 6.0s

2012-05-15 02:47:22 (163 KB/s) - `loganalyzer-3.4.2.tar.gz' saved [1002472/1002472]

# tar zxf loganalyzer-3.4.2.tar.gz
# cd loganalyzer-3.4.2
# mkdir /var/www/html/loganalyzer
# cp -pr src/* /var/www/html/loganalyzer
# chown -R apache. /var/www/html/loganalyzer

6. LogAnalyzer の設定

 6-1. 設定画面へのアクセス

  インターネットブラウザを開き、http://(ServerのFQDNまたはIPアドレス)/loganalyzer/ に
  アクセスします。設定ファイルが無いため上の図のようなエラー表示になります。赤丸で囲ったリンクをクリックします。

 6-2. セットアップウィザード開始

  セットアップウィザードが開始されるので、赤丸で囲った "Next" をクリックします。

 6-3. パーミッションの確認

  config.php が生成可能かどうか、パーミッションの確認が行われます。
  パーミッションに問題ない場合、Writeable 表記になります。"Next" をクリックします。

 6-4. 基本設定

  基本設定の画面が表示されます。特に変更せず、そのまま "Next" をクリックします。

 6-5. シスログのソース設定

  LogAnalyzer に読み込ませるシスログのソースを設定する画面が表示されます。
  "Source Type" を "MYSQL Native" に設定し、Database Type Options の各項目に
  設定を記入していきます。完了したら "Next" をクリックします。
   Database Name: "Syslog" と設定します。
   Database Tablename: "SystemEvents" と設定します。
   Database User: "syslog" と設定します。
   Database Password: 設定したパスワード(ここではPASSWORD)を設定します。

 6-6. 設定完了

  設定が全て完了すると上の図のような画面になります。赤丸で囲ったリンクをクリックします。

 6-7. 画面確認

  クリックすると LogAnalyzer のトップ画面が表示されます。
  MySQL に既に取り込まれているシスログの内容が表示されていると思います。
  これで rsyslog + rsyslog-mysql + LogAnalyzer の構築は完了です。

syslog-ng の場合は、php-syslog-ng 等で GUI 環境は構築できそうな気がします。
どこか別の機会で触る機会があれば試してみます。

Instagr.am

Recent Posts

土山茜さん@ポートレート撮影
1月 6, 2013
By RISLIM
2013年。
1月 1, 2013
By RISLIM
神奈川県・滝『本棚』
10月 17, 2012
By RISLIM
神奈川県・滝『下棚』
10月 10, 2012
By RISLIM
神奈川県・滝『飛竜の滝』
10月 7, 2012
By RISLIM
にほんブログ村 IT技術ブログへ
Get Adobe Flash player