オープンソース

一覧へ

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

3.1. 必要なソフトウェア

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

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

3.2. 環境について

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

  • OS
    • CentOS7
  • WEBサーバ
    • Apache HTTP Server 2.4(CentOS標準パッケージ)
  • PHP
    • php-5.4(CentOS標準パッケージ)
    • php-mbstring-5.4(CentOS標準パッケージ)
    • php-pdo-5.4(CentOS標準パッケージ)
    • php-mysql-5.4(CentOS標準パッケージ)
    • php-mcrypt-5.4(EPELパッケージ)
  • rsyslog
    • rsyslog 8(CentOS標準パッケージ)
    • rsyslog-elasticsearch(CentOS標準パッケージ)
  • Elasticsearch
    • Elasticsearch 5.4(Elasticsearch公式パッケージ)
  • DB
    • mariadb-server-5.5(CentOS標準パッケージ)
  • MTA
    • postfix-2.10(CentOS標準パッケージ)

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

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

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

# yum install -y epel-release

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

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

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

Note

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

3.3.3. ElasticSearchのインストール

次のURLから ElasticSearch 5.4 のRPMパッケージをダウンロードします。:

https://www.elastic.co/jp/downloads/elasticsearch

ダウンロード後、次のようにインストールを行います。

# yum install -y elasticsearch-5.4*.rpm java

3.3.4. 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.5. 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. ログの受信設定

本章では、rsyslogとElasticsearchを連携し、rsyslogが受け取ったログをElasticsearchに保存する設定を行います。

3.4.1. Elasticsearchの設定

まずElasticSearchを起動します。

# systemctl start elasticsearch

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

# systemctl enable elasticsearch

次にElasticSearchのインデックステンプレート sylas.json を作成します。

$ curl -XPUT 'http://localhost:9200/_template/sylas_template' -d @/usr/local/postldapadmin/db/sylas.json

Note

Elasticsearchが利用するメモリサイズやElasticsearchクラスタの設定は、利用する環境に合わせて行ってください。

3.4.2. 設定情報保存用データベースの設定

3.4.2.1. データベースの起動

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

# systemctl start mariadb

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

# systemctl enable mariadb

3.4.2.2. データベースの作成

SyLASの設定保存用のデータベースを作成します。

# mysql -u root -p
Enter password:******** ←rootのパスワードを入力して[Enter]を押す
> create database Syslog;

Hint

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

3.4.2.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;

Note

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

3.4.2.4. データベースの初期化

SyLASに同梱されているファイルを利用して、データベースを初期化します。

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

3.4.3. rsyslogのログ受信設定

3.4.3.1. ログ受信設定

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

$ModLoad imudp
$UDPServerRun 514

$ModLoad imtcp
$InputTCPServerRun 514

3.4.3.2. Elasticsearchへのログ保存設定

次にElasticsearchに保存する設定を行います。 設定は /etc/rsyslog.d/elasticsearch.conf に行います。:

$ModLoad /usr/lib64/rsyslog/omelasticsearch.so

$template customSchema, "{ \
   \"message\":\"%msg:::json%\", \
   \"host\":\"%HOSTNAME:::json%\", \
   \"facility\":\"%syslogfacility-text%\", \
   \"priority\":\"%syslogpriority%\", \
   \"date\":\"%timereported:1:19:date-rfc3339%.%timereported:1:3:date-subseconds%\", \
   \"tag\":\"%syslogtag:::json%\" \
}"

$template srchidx,"syslog-%timereported:1:10:date-rfc3339%"

*.*     action(type="omelasticsearch"
               template="customSchema"
               searchIndex="srchidx"
               dynSearchIndex="on"
               server="127.0.0.1"
               bulkmode="on"
               queue.type="linkedlist"
               queue.size="5000"
               queue.dequeuebatchsize="300"
               action.resumeretrycount="-1"
              )

Warning

$template srchidx はElasticsearchのインデックスフォーマットです。このフォーマットは syslog-2018-01-01 のフォーマットになっている必要があります。

設定の詳細は omelasticsearch のマニュアル を参照してください。:

https://www.rsyslog.com/doc/v8-stable/configuration/modules/omelasticsearch.html

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

一覧へ