LoginSignup
5
4

More than 5 years have passed since last update.

Elasticsearch+Marvelの導入

Posted at

Elasticsearch+Marvelの導入

  • 時系列データを様々な角度から分析できるElasticsearchを導入。さらに、Marvelでグラフ化してみます。

System requirements

Software Version
OS Cent OS 6.0(final)
Java Open JDK 6
Elasticsearch -
------------ -----------

The system will be ...

Software Version
OS Cent OS 6.0(final)
Java Open JDK 8
Elasticsearch 1.4.2 (http.port:9200)
------------ -----------
ポートを利用するライブラリ 目的 ポート番号
Elasticsearch Web UI & Search API 9200
Elasticsearch Transport & Clustering 9300

※ポート番号の解説はTalking to Elasticsearchを参照

0 コンテナの起動

ローカルからDockerfileを転送します。

  • master1用設定を転送
scp -r ~/OneDrive/docker/elasticsearch agent-master1:/etc/
scp -r ~/OneDrive/docker/elasticsearch/master1/config agent-master1:/etc/elasticsearch/
  • master2用設定を転送
scp -r ~/OneDrive/docker/elasticsearch agent-master2:/etc/
scp -r ~/OneDrive/docker/elasticsearch/master2/config agent-master2:/etc/elasticsearch/
  • master3用設定を転送
scp -r ~/OneDrive/docker/elasticsearch agent-master3:/etc/
scp -r ~/OneDrive/docker/elasticsearch/master3/config agent-master3:/etc/elasticsearch/

Dockerイメージをビルドして起動します。

docker build -t soushi/elasticsearch:1.0 /etc/elasticsearch/
docker run -i -t -d -p 131.113.102.202:9200:9200 -p 131.113.102.202:9300:9300 -v /etc/elasticsearch/config:/usr/local/elasticsearch/config -v /var/log/elasticsearch:/var/log/elasticsearch -v /etc/localtime:/etc/localtime:ro --name elasticsearch soushi/elasticsearch:1.0
  • Centos:6イメージからの起動
docker run -i -t -d -p 9200:9200 -p 9300:9300 --name elasticsearch1 centos:6 /bin/bash

0 Javaのアップグレード

現在インストールされているJDKの削除

  • 確認
su
java -version
#>java version "1.6.0_33"
#>OpenJDK Runtime Environment (IcedTea6 1.13.5) (rhel-1.13.5.1.el6_6-x86_64)
#>OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)
  • 削除&最新版のJDKを確認
yum -y remove java-1.6.0-openjdk
yum search java | grep 'java-'

最新版のJDKをインストール

yum -y install java-1.8.0-openjdk-devel.x86_64
sed -i -e 's/^export\ JAVA_HOME/#export\ JAVA_HOME/g' /etc/profile;
sed -i -e '/^#export\ JAVA_HOME/a export\ JAVA_HOME=\/usr\/lib\/jvm\/java-1\.8\.0-openjdk\/' /etc/profile;
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
echo "export PATH=\$PATH:$JAVA_HOME/bin" >> /etc/profile
export PATH=$PATH:$JAVA_HOME/bin

1 ダウンロードおよび解凍

mkdir /usr/local/download
cd /usr/local/download/
curl -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.4.2.tar.gz
yum -y install tar
tar xvzf elasticsearch-1.4.2.tar.gz
mv elasticsearch-1.4.2 ../
cd ..
ln -s elasticsearch-1.4.2/ elasticsearch
echo "export PATH=\$PATH:/usr/local/elasticsearch/bin" >> /etc/profile
export PATH=$PATH:/usr/local/elasticsearch/bin

2 設定

Elasticsearchは特に設定を行わなくても、簡単に複数ノードによるクラスタリングが可能。(デフォルトで9200- 9300の範囲のポートを自動で割り当ててくれる)

詳しくは公式リファレンスを参照
設定ファイルの中のコメントが非常に充実していて役に立つ
/usr/local/elasticsearch/config/elasticsearch.yml

3 Elasticsearchをデーモンとして起動する。

今回は行わないが、詳しくはこちらを参照。

4 起動

elasticsearch では、cluster.name に同じ名前を指定しておけばこのように自動的にノードを検出してクラスタを構成してくれます。
ただし、クラスタの構成が実行されるのは各ノードの起動時だけなのか、master ノードの起動を待たずに連続で複数のノードを起動した場合、正しく master ノードを検出してくれない事があるようでした。参照

elasticsearch -Des.cluster.name=mycluster &

5 視覚化ツールを導入する

こちらを参照

5.1 headを導入

/usr/local/elasticsearch/bin/plugin -install mobz/elasticsearch-head

5.2 ブラウザでhttp://localhost:9200/_plugin/head/ を開きます。

Elasticsearch Fig 1.png

5.3 Marvelを導入

/usr/local/elasticsearch/bin/plugin -i elasticsearch/marvel/latest
RUN echo 'marvel.agent.enabled: false' >> /usr/local/elasticsearch/config/elasticsearch.yml

5.4 ブラウザでhttp://localhost:9200/_plugin/marvel/ を開きます。

Elasticsearch Fig 2.png

References

公式ガイド

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4