こんにちは!@tereka114と@shin0higuchiです。
Elastic Stack 5.2が登場しました!
新しい機能が気がついたら追加されており、Elastic Stackの
進化の早さに驚かされてばかりです。
Elastic Stack5.2の特に魅力的な新機能である
ヒートマップ、Logstash Monitoring、そして、Heartbeatを紹介します。
ヒートマップ
ヒートマップがKibanaのVisualize機能で使えるようになりました。
ヒートマップを使うと、データを3つの軸で見れます。
例えば、商品と売上と時間の属性があった場合を考えてみましょう。
いつどんな商品の売上があがるのかを調べたい場合にヒートマップが便利です。
そのX軸を時間、Y軸を商品、売上を色で表示した場合に、
売上の高い部分の色を探すと、どの商品がいつ売上が高くなったかを確認できます。
実際にどんなグラフなのかはこの後見ていきましょう。
以前、Prelertの記事でご紹介させて頂いたfarequoteのデータを利用してヒートマップを作りました。
データの詳細はこちらを参照してください。
acro-engineer.hatenablog.com
1.「Visualize」で「Heatmap」を選択します。
Kibanaの「Visualize」タブで「Heatmap」を選択しましょう。
2. Dataタブで可視化における基本設定をします。
Dataタブで可視化の設定を行います。
この設定項目は、X軸とY軸の表示項目(整形)と色を塗る基準となる値です。
今回はDataタブで次の3つの項目を設定します。
- X軸の項目でDate Histogramを選択し、Fieldを@timestamp、IntervalをHourlyにします。
- Y軸の項目でSub AggregationをTermsとし、Fieldをairlineにしました。
- 最後にmetricsの項目でをresponsetimeの平均を設定します。
ここまでの作業で、ヒートマップを表示することができました。
ただ、このヒートマップはまだ見づらいですよね・・・?
そこで、Optionタブからヒートマップの設定を変更します。
3. Optionタブで更に見やすい可視化をする。
Optionタブでは、ヒートマップを更に見やすくなる設定ができます。
設定を変更できる例として、着色する色、着色の値のレンジ、更には
対数スケール等の利用などもできます。
今回はCustom Rangesを設定し、Color Schemaを「Yellow to Red」に変更しました。
変更後のヒートマップは次の図になります。
Color Schemaは色のベースや変化の設定を切り替える項目です。BlueやRedなどを設定できます。
また、Custom Rangesは着色する色のレンジを設定する項目です。
例えば、Fromを0、Toを100として設定すると、0から100までの色は同じ色で表現します。
これで、いつどのように変化したかをわかりやすく見れますね。
Logstash Monitoring
X-PackのMonitoring機能で、Logstashのモニタリングが可能になりました。
Kibanaの画面上から、Logstash・Elasticsearch・Kibanaの稼働状況を一貫して管理できます。
早速使ってみましょう。
1. X-Packをインストールする
Logstash Monitoringを利用するためには、LogstashにX-Packをインストールする必要があります。
下記のコマンドを実行することでLogstashにx-packをインストールすることができます。
logstash-plugin install x-pack
Heartbeat
Beatsシリーズに新しい機能が追加されました。その名も「Heartbeat」です。
Heartbeatはサーバの死活監視を行う製品です。
公式サイトによれば、次の4点の特徴があります。
- 非常に使いやすく、簡単に設定できます。
- HeartbeatのpingはICMP, TCP, HTTP, 更に TLS, 認証,プロキシにも対応しています。
- 監視対象の動的な追加、削除ができます。
- ElasticsearchやKibanaを利用して、状態を可視化できます。
監視対象の動的な追加、削除は良いですね。
Elasticsearchのクラスタを拡張するときに、監視を止めずに済みます。
それでは、早速実践してみましょう。今回試す構成は以下の通りです。
Heartbeatが監視対象のElasticsearch(ポート番号9200)をhttpで死活監視し、
その結果をモニタリング用のElasticsearch(ポート番号9201)に投入する想定の構成です。
1.Heartbeatの設定
9200番のポートで起動した監視対象のElasticsearchにhttpリクエストを送信することで監視します。
「heartbeat.yml」がheartbeatディレクトリの中にあります。
このファイルはheartbeatの設定ファイルです。
heartbeat.ymlの17行目のurlsを監視対象のURLに変更してください。
urls: ["http://192.168.0.1:9200"]
また、投入先をモニタリング用のElasticsearchにするのでheartbeat.ymlの48行目を変更してください。
hosts: ["localhost:9200"]
2.Heartbeatの起動
Heartbeatを起動します。
オプションの-cでHeartbeatの設定ファイルを設定します。
(実際の運用では、サービス起動にするかと思いますが)
./heartbeat -c heartbeat.yml
Heartbeatが取得したデータが投入されるindex名は、デフォルト設定では「heartbeat-yyyy.MM.dd」になります。
Kibanaを使うことで、取得したデータを見ることができます。
最後に
機能追加が速く、どんどん新機能が出てきており、今後も楽しみですね。
個人的には、ヒートマップで豊かになった表現力で、いろいろ可視化してみたいです。
Elastic Stack最高!
Acroquest Technologyでは、キャリア採用を行っています。
- ビッグデータ(Hadoop/Spark、NoSQL)、データ分析(Elasticsearch、Python関連)、Web開発(SpringCloud/SpringBoot、AngularJS)といった最新のOSSを利用する開発プロジェクトに関わりたい。
- マイクロサービス、DevOpsなどの技術を使ったり、データ分析、機械学習などのスキルを活かしたい。
- 社会貢献性の高いプロジェクトや、顧客の価値を創造するようなプロジェクトで、提案からリリースまで携わりたい。
- 書籍・雑誌等の執筆や、対外的な勉強会の開催・参加を通した技術の発信、社内勉強会での技術情報共有により、エンジニアとして成長したい。
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。Elasticsearchを仕事で使いこみたいデータ分析エンジニア募集中! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com