Ubuntu 16.04
 

Rsyslog : データベースにログを出力する
2016/09/12
 
データベースにログを出力する場合は以下のように設定します。
[1]
データベースはいくつかの主要なものから選択可能ですが、ここでは例として MariaDB を利用します。
よって、こちらを参考に MariaDB サーバーをインストールして起動しておきます。
[2] MariaDB に Rsyslog 用のユーザーやデータベースを設定します。
root@dlp:~#
apt-get -y install rsyslog-mysql
root@dlp:~#
mysql -u root -p

Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 43
Server version: 10.0.25-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

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

# Syslog データベースとrsyslogユーザーを作成 (password には任意のパスワードを設定)

MariaDB [(none)]>
create database Syslog;

Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]>
grant all privileges on Syslog.* to rsyslog@'localhost' identified by 'password';

Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
flush privileges;

Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]>
exit

Bye
root@dlp:~#
cat /usr/share/dbconfig-common/data/rsyslog-mysql/install/mysql | mysql -u root -D Syslog -p

Enter password:
[3] ログをデータベースへ出力するように Rsyslog を設定します。
root@dlp:~#
vi /etc/rsyslog.conf
# 12行目あたりに追記

module(load="ommysql")
root@dlp:~#
vi /etc/rsyslog.d/50-default.conf
# 例として auth,authpriv.* のログを DB へ出力

# 書式 ⇒ :ommysql:ホスト,DB,DBユーザー,DBパスワード

auth,authpriv.*    
:ommysql:localhost,Syslog,rsyslog,password
root@dlp:~#
systemctl restart rsyslog
[4] DB を見てみると、以下のようにログが記録されていることが分かります。
root@dlp:~#
mysql -u rsyslog -D Syslog -p -e "select ReceivedAt,Facility,Priority,FromHost,Message from SystemEvents;"

+---------------------+----------+----------+----------+-----------------------------------------------------------------+
| ReceivedAt          | Facility | Priority | FromHost | Message                                                         |
+---------------------+----------+----------+----------+-----------------------------------------------------------------+
| 2016-09-11 15:41:22 |       10 |        6 | dlp      |  pam_unix(login:session): session closed for user root          |
| 2016-09-11 15:41:22 |        4 |        6 | dlp      |  Removed session 7.                                             |
| 2016-09-11 15:41:22 |       10 |        6 | dlp      |  pam_unix(systemd-user:session): session closed for user root   |
| 2016-09-11 15:41:27 |       10 |        6 | dlp      |  pam_unix(login:session): session opened for user root by LOGIN |
| 2016-09-11 15:41:27 |       10 |        6 | dlp      |  pam_unix(systemd-user:session): session opened for user root b |
| 2016-09-11 15:41:27 |        4 |        6 | dlp      |  New session 9 of user root.                                    |
| 2016-09-11 15:41:27 |       10 |        5 | dlp      |  ROOT LOGIN  on '/dev/ttyS0'                                    |
| 2016-09-11 15:41:34 |        4 |        6 | node01   |  Removed session 8.                                             |
| 2016-09-11 15:41:34 |       10 |        6 | node01   |  pam_unix(systemd-user:session): session closed for user root   |
| 2016-09-11 15:41:40 |       10 |        6 | node01   |  pam_unix(login:session): session opened for user root by LOGIN |
| 2016-09-11 15:41:40 |        4 |        6 | node01   |  New session 10 of user root.                                   |
| 2016-09-11 15:41:40 |       10 |        6 | node01   |  pam_unix(systemd-user:session): session opened for user root b |
| 2016-09-11 15:41:40 |       10 |        5 | node01   |  ROOT LOGIN  on '/dev/ttyS0'                                    |
+---------------------+----------+----------+----------+-----------------------------------------------------------------+
 
Tweet