この記事では、最も単純かつ純粋なケースを通じて ELK の世界を紹介します。
1 はじめに
ELK とは Elasticsearch、Logstash、Kibana の略称であり、Elasticsearch、Logstash、Kibana について詳しくない場合は、公式 Web サイトの導入事例を参照してください。筆者も公式導入事例を紹介する記事を書きました。
Elasticsearch6.6.2 を例として取り上げます。
- 公式紹介
https://www.elastic.co/guide/en/elasticsearch/reference/6.6/getting-started.html
https://www.elastic.co/guide/en/kibana/6.6/getting-started.html
https://www.elastic.co/guide/en/logstash/6.6/getting-started-with-logstash.html
- 著者の翻訳
2. インストール
落とし穴へのガイド:
- 筆者は、Mac に ELK 環境をインストールするために Docker または Docker-compose を使用していますが、ホストの権限が不足している、ホストのディスクの残量が不足しているなど、さまざまな問題が発生します。
- 結局、それでもうまくいかず、作者は Docker を諦めました。そこで Linux 上で Docker を使ってみたところ、うまくいきましたが、Linux 仮想マシンを起動するのが面倒でした。
- Docker を使用する目的は利便性をもたらすことですが、利便性がもたらされないため、 Mac ではインストール パッケージまたは圧縮パッケージを使用することにしています。
ELK のダウンロード URL は次のとおりです: https://www.elastic.co/cn/downloads/past-releases
Elasticsearch6.6.2 を例として取り上げます。
- ダウンロード
Windows ユーザーの場合は、他のダウンロード リンクを使用してください。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.2.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.2-darwin-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.2.tar.gz
3.ELKを起動する
エラスティックサーチを開始する
- エラスティックサーチを開始する
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
tar -xvf elasticsearch-6.6.2.tar.gz
cd elasticsearch-6.6.2/bin
./elasticsearch
- ESの起動ステータスをテストする
curl http://localhost:9200
キバナを開始する
- キバナを開始する
curl -O https://artifacts.elastic.co/downloads/kibana/kibana-6.6.2-darwin-x86_64.tar.gz
# 校验shasum
shasum -a 512 kibana-6.6.2-darwin-x86_64.tar.gz
tar -xzf kibana-6.6.2-darwin-x86_64.tar.gz
cd kibana-6.6.2-darwin-x86_64/
./bin/kibana
- http://localhost:5601 にアクセスして、起動が成功したかどうかを確認します。
ログスタッシュを開始する
- 新しい構成
first-pipeline.conf
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "springboot-logstash-%{+YYYY.MM.dd}"
}
}
任意のソースからの入力データを処理せずに受け入れ、ローカル ES に送信します。
- 起動する
bin/logstash -f first-pipeline.conf --config.reload.automatic
--config.reload.automatic
first-pipeline.conf ファイルの変更後に再起動する必要がないように構成されています
4.ELK環境のテスト
- tcp を使用して json データの文字列を logstash に送信します
echo '{"logstash": "hello world"}' | nc localhost 4560shell
- kibana で hello world を送信したばかりのログ情報を表示する
送信した hello world json メッセージが表示されました。