3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Elastic stack (Elasticsearch)Advent Calendar 2017

Day 14

LogstashのMonitoring API を使って、Logstashを可視化してみた。

Last updated at Posted at 2017-12-13

この記事はElastic stack Advent Calendar 2017の12/14分の記事です。

みなさん、初めまして。
fujii(@ZooBonta) と申します。

今回は、Logstash 5.0から利用可能になった、
Monitoring API を使って、Logstashを可視化してみようと思います。

環境情報

  • OS
  • Windows 10
  • Elasticsearch/Logstash
  • Ver 6.0.1

目的

Logstash のMonitoring APIを使って、Logstashを可視化します。

Monitoring API を使ってみたかっただけので、
「そんなの、Metricbeats使えば、いいじゃん」とかは言わないでください。。。

Monitoring APIとは?

Ver5 系から入った、Logstashの監視用APIです。

大きく、以下の4つに分類されます。

  1. Node Info API:Logstashのノードに関する情報を扱うAPI
  2. Plugins Info API:Logstashにインストールしたプラグインを扱うAPI
  3. Node Stats API:Logstashの統計情報を扱うAPI
  4. Hot Threads API:Logstashの起動中スレッドの情報を扱うAPI

さっそく、使ってみましょう。

まずは、Node Stats Info APIを使って、jvmの値を見てみます。

curl -X GET http://localhost:9600/_node/stats/jvm?pretty

以下の値が返ってきました。

{
  "host" : "my-host",
  "version" : "6.0.1",
  "http_address" : "127.0.0.1:9600",
  "id" : "b780ef4e-d70f-4919-a841-6b15caeed834",
  "name" : "my-host",
  "jvm" : {
    "threads" : {
      "count" : 28,
      "peak_count" : 32
    },
    "mem" : {
      "heap_used_percent" : 28,
      "heap_committed_in_bytes" : 1038876672,
      "heap_max_in_bytes" : 1038876672,
      "heap_used_in_bytes" : 299934992,
      "non_heap_used_in_bytes" : 155144224,
      "non_heap_committed_in_bytes" : 174878720,
      "pools" : {
        "survivor" : {
          "peak_used_in_bytes" : 34865152,
          "used_in_bytes" : 8099120,
          "peak_max_in_bytes" : 34865152,
          "max_in_bytes" : 34865152,
          "committed_in_bytes" : 34865152
        },
        "old" : {
          "peak_used_in_bytes" : 256622432,
          "used_in_bytes" : 110373176,
          "peak_max_in_bytes" : 724828160,
          "max_in_bytes" : 724828160,
          "committed_in_bytes" : 724828160
        },
        "young" : {
          "peak_used_in_bytes" : 279183360,
          "used_in_bytes" : 181462696,
          "peak_max_in_bytes" : 279183360,
          "max_in_bytes" : 279183360,
          "committed_in_bytes" : 279183360
        }
      }
    },
    "gc" : {
      "collectors" : {
        "old" : {
          "collection_time_in_millis" : 201,
          "collection_count" : 2
        },
        "young" : {
          "collection_time_in_millis" : 2295,
          "collection_count" : 62
        }
      }
    },
    "uptime_in_millis" : 2429462
  }
}

スレッド数、JVMのヒープ、GC実行回数などが見えますね。

それでは、別のLogstashを使って、このAPIの結果をLogstahに入れてみます。

今回は、http_poller プラグインを使いました。

input {
   http_poller  {
     urls => {
       host => "http://localhost:9600/_node/stats/jvm"	
     }
     schedule => { cron => "* * * * * UTC"}
     codec => "json"
     metadata_target => "http_poller_metadata"
   }
}
output {
    elasticsearch {
      hosts => ["localhost"]
      index => "jvm-%{+YYYY.MM.dd}"
      document_type  => "monitoring"
    }
}

Logstashで取り込んだ結果をKibanaで可視化してみます。

Logstash監視

ヒープ使用量、プロセスのスレッド数、GC実行回数、GC実行時間が取得できていることが確認できました。

これを使えば、Logstashの可視化ができますね。
どこかで見たような画面とか、言っちゃいけません。

最後に

LogstashのMonitoring APIでは、CPUやメモリといったリソース以外にも、
Logstashの全体イベント実行回数や、実行中のスレッド情報も取得可能です。

描画ライブラリと組み合わせると、Pipeline Viewer のような表現もできるようになっています。

是非、お試しください。

3
6
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
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?