まめログ

Javaプログラマの歩み

Elastic Stack5.2でMetricbeatのダッシュボードを作って可視化してみた #elasticsearch

AWSを仕事で触れるようになって、色々試し始めてるので備忘録的に記載します。

Elastic Stackは、現在の業務を飛躍的に楽にしてくれると期待しているので、
社内でステマしまくって、何とか来期予算を少しだけ確保できましたので、
みっちり触っていこうと思ってます。


殆ど以下の記事を参考にしました。
acro-engineer.hatenablog.com

LogstashやBeatsで色んなサーバからログを集約して、Kibanaで一元的に可視化する方法とか
まだ全然わかってませんが、大事な1歩です。

AWS EC2のAmazon Linuxでやってます。

↓これ。
f:id:mamepika:20170215232553p:plain

Open JDKのアンインストール

Amazon Linuxには初期状態でOpenJDK7がインストールされているので、
Oracle JDK8にアップデートします。(Open JDK8でも問題ありません)

$ sudo yum remove -y java

Oracle JDKのインストール

Oracle JDKは以下のURLからあらかじめDLし、SCPでEC2インスタンスに転送しました。
この後出てくる各種インストーラも同じです。
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

$ rpm -ivh jdk-8u121-linux-x64.rpm

インストールが完了したら以下のコマンドで、Javaのバージョンを確認。

$ java -version
java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)

Elasticsearchのインストール

yumでインストールするのが普通ですが、rpm版でインストールしてみました。

インストーラは以下のURLでDLできます。
https://www.elastic.co/jp/downloads/elasticsearch

以下のコマンドでインストール

$ rpm -ivh elasticsearch-5.2.0.rpm 

Kibanaのインストール

インストーラ
https://www.elastic.co/downloads/kibana

$ sudo rpm -ivh kinbana-5.2.1-x86_64.rpm 

アクロクエストさんの記事でもある通り、Kibanaのネットワーク設定を行います。

$ sudo vi /etc/kibana/kibana.yml

開いたファイルに以下の設定を追加。

server.host: "0.0.0.0"

そしてElasticsearch、Kibanaを実行。

$ sudo service elasticsearch start
$ sudo service kibana start

t2.nanoだと実行できなかったのである程度メモリが必要だと思われます。
(※どこでメモリ量指定してるか分からず)

起動したら以下のURLをたたいてKibanaの画面が表示されれば成功です。
http://<作ったインスタンスのIP>:5601
f:id:mamepika:20170215233332p:plain

Metricbeatのインストール

インストーラ
https://www.elastic.co/downloads/beats/metricbeat

インストール実行

$ sudo rpm -ivh metricbeat-5.2.1-x86_64.rpm

起動

$ sudo service metricbeat start

Metricbeatのダッシュボードをインストール

データを流すのが簡単なだけでなく、可視化するのも簡単なのがElasticスタックの利点。
Metricbeatからのデータを可視化するためのダッシュボードがすでに用意されています。

$ cd /usr/share/metricbeat/scripts
$ sudo ./import_dashboards

Kibanaでインストールしたダッシュボードを見てみる。
画面左の「Dashboard」をクリックして、画面右上の「Open」をクリックします。

f:id:mamepika:20170215234635p:plain

Metricbeat system overviewを選択するとこんな感じにしてくれます。

f:id:mamepika:20170215234903p:plain

ダッシュボード上の「System Navigation」でCPU選ぶとこんな感じ。
f:id:mamepika:20170215234950p:plain

メモリ
f:id:mamepika:20170215235017p:plain

プロセス
f:id:mamepika:20170215235053p:plain

いやあ、可能性に満ち溢れてます。
今はCPU使用率をモニタリングするのに、作業依頼を起票しないといけませんからね!!w

Elastic Stackがあれば、誰でもいつでも好きな時に好きなサーバのリソース状況を見ることができますね!