LoginSignup
1
1

More than 3 years have passed since last update.

logstash をDockerで動かして、Elastic Cloudへデータをアップロードしてみる

Last updated at Posted at 2020-09-22

環境

環境:ElasticsearchはElastic Cloudを使用
logstash: 7.9.1
metricbeat: 7.9.1

Elastic Cloudは設定済みとする。
Cloud Id、パスワードもメモ済みとする。

各機能の関係性はこんな感じです

image21-1024x328.png

logstashイメージ取得

以下から最新のイメージのパスを確認

logstash | Docker @ Elastic

執筆時、最新が7.9.1でした。

docker pull docker.elastic.co/logstash/logstash:7.9.1

起動

docker run --rm -it -p 5044:5044 docker.elastic.co/logstash/logstash:7.9.1

以下が表示されてたら成功

[2020-09-22T02:58:20,563][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

起動確認

$ docker ps

CONTAINER ID        IMAGE                                       COMMAND                  CREATED             STATUS              PORTS                              NAMES
b8867b83444c        docker.elastic.co/logstash/logstash:7.9.1   "/usr/local/bin/dock…"   7 minutes ago       Up 7 minutes        0.0.0.0:5044->5044/tcp, 9600/tcp   heuristic_mestorf

Metricbeat

Elastic Cloudへデータをアップロードするデータ元をMetricbeatで作成し、Logstashへ送る

Download Metricbeat
Download Metricbeat • Ship Metrics to Elasticsearch | Elastic

metricbeat.ymlの編集

elasticsearchをコメントアウトし、logstashを有効にする

#output.elasticsearch:
# Array of hosts to connect to.
# hosts: ["localhost:9200"]

output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

metricbeat.ymlの実行

./metricbeat -e

logstashの確認

logstash側に以下のように表示されたら、metricbeat -> logstashへデータが送信されています。

{
    "@timestamp" => 2020-09-22T04:31:06.525Z,
         "event" => {
          "module" => "system",
        "duration" => 74705442,
         "dataset" => "system.process"
    },
       "service" => {
        "type" => "system"
    },
     "metricset" => {
          "name" => "process",
        "period" => 10000
    },
    省略

Logstash設定変更

デフォルトでは受信したデータを、標準出力へ出力するだけなので、Elastic Cloudへデータを送信するように設定を変更する。

送信先のIndex名を調べる。

Endpointに以下のようなGetを投げる

Get

https://xxxxxxxxxxx42b7b40a0773f8801e.us-east-1.aws.found.io:9243/_cat/indices?v

logstash.confの追加

logstash.confに以下のような内容にする。

logstash.conf
input {
  beats {
    port => 5044
  }
}
output {
    elasticsearch {
        hosts => ["https://xxxxxxxxxxx42b7b40a0773f8801e.us-east-1.aws.found.io:9243"]
        user => "elastic"
        password => "xxxxxxxxxxxxxxxxxxxxx"
        index => "metricbeat-7.9.1-2020.09.22-000001"
    }
}

logstashを再度起動

docker run --rm -it -p 5044:5044 -v /Users/xxxxx/Documents/Logstash:/usr/share/logstash/pipeline/ docker.elastic.co/logstash/logstash:7.9.1 

Kibanaで確認

KibanaのHOME画面から、Visualize and Explore Data → Metricsを選択

スクリーンショット 2020-09-22 15.54.09.png

Host Metricsを選択

スクリーンショット 2020-09-22 15.58.13.png

こんな感じで表示されれば成功

スクリーンショット 2020-09-22 15.58.04.png

1
1
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
1
1