オープンソース

一覧へ

3. インストール方法(MySQL)

3.1. 必要なソフトウェア

SyLAS(MySQLバックエンド)を利用するためには、次のソフトウェアが必要です。

  • WEBサーバ
  • PHP 5.4以上
    • mbstring拡張
    • openssl拡張
    • pdo/mysql拡張
    • curl拡張
  • rsyslog
  • MySQL/MariaDB
  • rsyslog
  • rsyslog-mysqlモジュール
  • MTA(Postfix等)
  • postLDAPadminフレームワーク( https://github.com/designet-inc-oss/postLDAPadmin )

3.2. 環境について

本章では、次の環境での構築方法を解説します。

  • OS
    • Almalinux9
  • WEBサーバ
    • Apache HTTP Server 2.4(Almalinux標準パッケージ)
  • PHP
    • php-8.0.30(Almalinux標準パッケージ)
    • php-mbstring-8.0.30(Almalinux標準パッケージ)
    • php-pdo-8.0.30(Almalinux標準パッケージ)
    • php-mysql-8.0.30(Almalinux標準パッケージ)
    • php-mcrypt-8.0.30(EPELパッケージ)
  • rsyslog
    • rsyslog 8(Almalinux標準パッケージ)
    • rsyslog-mysql(Almalinux標準パッケージ)
  • DB
    • mariadb-server-10.5.22(Almalinux標準パッケージ)
  • MTA
    • postfix-3.5.9(Almalinux標準パッケージ)

3.3. 必要なソフトウェアのインストール

3.3.1. EPELリポジトリのインストール

dnf コマンドを利用して、EPELリポジトリをインストールします。

# dnf install -y epel-release

3.3.2. ソフトウェアのインストール

dnf コマンドを利用して、Almalinuxの標準で利用できるパッケージをインストールします。

# dnf install -y  httpd php php-common php-cli php-mbstring php-pdo php-mysqlnd php-mcrypt rsyslog rsyslog-mysql postfix mariadb-server

Note

rsyslogとpostfixは、OSインストールの際にインストール済かもしれません。

3.3.3. postLDAPadminフレームワークのインストール

SyLASは、postLDAPadminフレームワークを使って動作します。 そのため、まず次のURLから postLDAPadmin のアーカイブをダウンロードします。:

https://github.com/designet-inc-oss/postLDAPadmin

必要なアーカイブは次の通りです。

  • postLDAPadmin_frame
  • postLDAPadmin_admin
  • postLDAPadmin_user
  • postLDAPadmin_lib

ダウンロード後、次のようにアーカイブを展開します。

# tar xzf postLDAPadmin_frame-*.tar.gz -C /usr/local
# tar xzf postLDAPadmin_admin-*.tar.gz -C /usr/local/postldapadmin/htdocs/admin
# tar xzf postLDAPadmin_lib-*.tar.gz -C /usr/local/postldapadmin/lib

3.3.4. SyLASのインストール

次のURLから SyLAS のアーカイブをダウンロードします。:

https://github.com/designet-inc-oss/SyLAS

必要なアーカイブは次の通りです。

  • sylas

ダウンロード後、次のようにアーカイブを展開します。

# tar xzf sylas-*.tar.gz -C /usr/local/postldapadmin

アーカイブ展開後のディレクトリ構成は次のようになります。

ディレクトリ構成
ディレクトリ 説明
/usr/local/postldapadmin/htdocs/admin/sylas/ SyLASの公開ディレクトリ
/usr/local/postldapadmin/tmpl/ 画面テンプレート
/usr/local/postldapadmin/lib/ ライブラリディレクトリ
/usr/local/postldapadmin/etc/ 設定ファイル配置ディレクトリ

ここまでの手順で、必要なソフトウェアが揃いました。 次の手順から、設定に入ります。

3.4. データベース設定

本章では、SyLASが利用するデータベースの設定を行います。

3.4.1. データベースのキャラクタ設定

MariaDBが扱うキャラクタ設定を変更します。

まず設定を配置するディレクトリを作成します。

# mkdir /usr/local/postldapadmin/etc/charsets

次に必要なファイルをコピーします。

# cd /usr/share/mysql/charsets/
# cp Index.xml latin1.xml /usr/local/postldapadmin/etc/charsets/
# cd /usr/local/postldapadmin/etc/charsets/

コピーしたIndex.xmlに、照合順序(latin1_ip_mac_ci)を追加します。 <charset name="latin1">の内側に、以下のように記載します。

<charset name="latin1">
(省略)
<collation name="latin1_ip_mac_ci" id="1000"/>
</charset>

latin1.xmlに、照合順序のソート順序を宣言します。同ファイル内のlatin1_swedish_ciと同一ですので、コピーして使えます。 <charset>の内側に以下を記載します。

<collation name="latin1_ip_mac_ci">
<map>
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F
40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F
60 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
50 51 52 53 54 55 56 57 58 59 5A 7B 7C 7D 7E 7F
80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F
90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F
A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF
41 41 41 41 5C 5B 5C 43 45 45 45 45 49 49 49 49
44 4E 4F 4F 4F 4F 5D D7 D8 55 55 55 59 59 DE DF
41 41 41 41 5C 5B 5C 43 45 45 45 45 49 49 49 49
44 4E 4F 4F 4F 4F 5D F7 D8 55 55 55 59 59 DE FF
</map>
</collation>

latin1.xmlで、ctype配列を変更します。0x2Eと、0x3Aに相当する場所の変更が必要です。行列内、4行目の最後から2番めの要素と、5行目の最後から6番目の要素です。 "10" と記載されている箇所を、"01" と変更します。

<ctype>
<map>
00
20 20 20 20 20 20 20 20 20 28 28 28 28 28 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
48 10 10 10 10 10 10 10 10 10 10 10 10 10 `01` 10
84 84 84 84 84 84 84 84 84 84 `01` 10 10 10 10 10
10 81 81 81 81 81 81 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 01 01 01 01 10 10 10 10 10
10 82 82 82 82 82 82 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 02 02 02 02 10 10 10 10 20
10 00 10 02 10 10 10 10 10 10 01 10 01 00 01 00
00 10 10 10 10 10 10 10 10 10 02 10 02 00 02 01
48 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 01 10 01 01 01 01 01 01 01 02
02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
02 02 02 02 02 02 02 10 02 02 02 02 02 02 02 02
</map>
</ctype>

最後に、MariaDBの設定変更を行います。次の内容で /etc/my.cnf.d/sylas.cnf を作成します。

[mysqld]
character-sets-dir=/usr/local/postldapadmin/etc/charsets
ft_min_word_len=1

3.4.2. データベースの起動

データベースを起動します。

# systemctl start mariadb

必要に応じて、自動起動の設定を行ってください。

# systemctl enable mariadb

3.4.3. データベース操作ユーザの作成

データベース操作用のユーザを作成してください。

# mysql -u root -p
Enter password:
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON Syslog.* TO
  syslog@localhost IDENTIFIED BY 'password';
> FLUSH PRIVILEGES;

Hint

必要に応じて事前にmysql_secure_installationなどのコマンドで、MariaDBのrootユーザのパスワード等の設定を行ってください。

Note

passwordは、任意のパスワードを設定してください。

3.4.4. ログ保存データベースの作成

SyLASのログ保存用のデータベースを作成します。 データベースの情報は、rsyslog-mysqlパッケージに含まれる mysql-createDB.sql ファイルを利用します。 rpm -ql rsyslog-mysql | grep mysql-createDB などのコマンドでパスを調べて利用してください。

mysql-createDB.sql ファイルの内容を修正します。修正箇所は次の通りです。

CREATE TABLE SystemEvents
(
...
        Message text CHARACTER SET latin1 COLLATE latin1_ip_mac_ci,
...
        FULLTEXT INDEX(`Message`)
) ENGINE=MyISAM;

修正したファイルをリストアします。

# mysql -u root -p < mysql-createDB.sql_new

3.4.4.1. 設定情報保存用データベースの作成

SyLASに同梱されているファイルを利用して、テーブルを作成します。

# mysql -u syslog -p Syslog < /usr/local/postldapadmin/db/sylas.sql
Enter password:

3.5. ログの受信設定

3.5.1. ログ受信設定

次にrsyslogが外部からログを受信し、受信したログをMySQLに保存する設定を行います。 設定は /etc/rsyslog.conf/etc/rsyslog.d/mysql.conf に行います。次は514ポート(TCP/UDP)でSyslogを受信し、MariaDBにログを保存する設定例です。

対象ファイル: /etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514
$AllowedSender UDP, 127.0.0.1, 192.168.0.0/24

$ModLoad imtcp
$InputTCPServerRun 514
$AllowedSender TCP, 127.0.0.1, 192.168.0.0/24
  • $AllowedSender にはUDP/TCPでのログ転送を許可するネットワークなどの設定を行ってください。

対象ファイル: /etc/rsyslog.d/mysql.conf

$ModLoad ommysql
*.*   action(type="ommysql"
             server="127.0.0.1"
             db="Syslog"
             uid="syslog"
             pwd="password"
             serverport="3306"
            )

次に 共通設定 の手順に従って設定を行ってください。

一覧へ