2. バックエンドの選択 一覧へ 4. インストール方法(MySQL)
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
次に 共通設定 の手順に従って設定を行ってください。