Yuxian: CSDN コンテンツ パートナー、CSDN の新星メンター、フルスタック分野の新星クリエイター、51CTO (トップセレブ + エキスパートブロガー)、Github オープンソース愛好家 (ゴーゼロソースコードの二次開発、ゲームバックエンドアーキテクチャ https:/ /github.com/Peakchen)
ELK は、Elasticsearch、Logstash、Kibana という 3 つのオープンソース コンポーネントで構成されるデータ処理および視覚化プラットフォームです。以下では、これらのコンポーネントの詳細な説明と、関連するインターフェイスの使用方法について説明します。
- エラスティックサーチ
Elasticsearch は、Lucene 検索エンジンに基づく分散型検索および分析エンジンです。大規模なデータを処理でき、リアルタイムの検索と分析をサポートし、RESTful API インターフェイスを提供します。
Elasticsearch の主な機能は次のとおりです。
- 分散データのストレージと処理
- リアルタイムの検索と分析
- マルチテナンシーのサポート
- 高可用性と耐障害性
- 地理空間検索と分析
Elasticsearch の RESTful API インターフェイスには次のものが含まれます。
- インデックス管理 API
- 文書管理API
- 検索API
- アグリゲーションAPI
- 管理API
使用するシーン:
- リアルタイムの検索と分析
- ログの管理と分析
- ECサイト検索・レコメンドシステム
- ログスタッシュ
Logstash は、さまざまなソースからデータを収集、処理、変換するオープンソース データ コレクターです。複数の入出力形式をサポートし、豊富なフィルター プラグインを提供します。
Logstash の主な機能は次のとおりです。
- データの収集と転送
- データのフィルタリングと変換
- 複数の入出力フォーマットのサポート
- プラグイン拡張機能
Logstash のプラグインには次のものが含まれます。
- 入力プラグイン
- フィルタープラグイン
- 出力プラグイン
使用するシーン:
- ログの収集と処理
- データの転送と変換
- イベントの処理と転送
- キバナ
Kibana は、Elasticsearch と統合してリアルタイムのデータ分析および視覚化機能を提供できるオープンソースのデータ視覚化ツールです。複数の視覚化タイプをサポートし、豊富なクエリおよび分析機能を提供します。
Kibana の主な機能は次のとおりです。
- リアルタイムのデータ視覚化と分析
- 複数の視覚化タイプをサポート
- クエリおよび分析機能
- ユーザー管理とアクセス制御
Kibana の視覚化タイプには次のものがあります。
- 折れ線グラフ
- 棒グラフ
- 円グラフ
- ヒートマップ
- 地図
使用するシーン:
- リアルタイムのデータ視覚化と分析
- ビジネスデータの監視と分析
- セキュリティインシデントの分析と対応
文献資料のリンク:
-
Elasticsearch 公式ドキュメント: Elasticsearch ガイド [8.9] | Elastic
-
Logstash 公式ドキュメント: Logstash リファレンス [8.9] | Elastic
-
Kibana 公式ドキュメント: Kibana ガイド [8.9] | Elastic
-
Elastic Stack 中国語コミュニティ: Elastic 中国語コミュニティ
-
Elasticsearch の決定版ガイド (中国語版): Elasticsearch: 決定版ガイド | Elastic
-
Logstash プラグインのリスト: https://www.elastic.co/guide/en/logstash/current/plugins-list.html
-
Kibana プラグイン センター: https://www.elastic.co/guide/en/kibana/current/plugins.html
以下は、ELK を使用したデータ視覚化の実装例です。
- 情報元
Logstash を使用して、Web アプリケーションのアクセス ログを収集し、ログ データを Elasticsearch に送信します。
Logstash 構成ファイルの例:
input {
file {
path => "/var/log/nginx/access.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
date {
match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "webapp-access-%{+YYYY.MM.dd}"
}
}
- 視覚化パネル
Kibana で、1 分あたりのリクエスト数と応答時間を表示する視覚化パネルを作成します。
-
[視覚化] タブを選択し、[新しい視覚化の作成] ボタンを選択します。
-
「折れ線グラフ」視覚化タイプを選択し、「webapp-access-*」インデックス モードを選択します。
-
ビジュアル デザイナーで 2 つの集計を追加し、[Y 軸] タブを選択し、リクエストの数と応答時間にそれぞれ対応する [カウント] と [平均] として [集計] を選択します。
-
ビジュアルデザイナーで「X軸」タブを選択し、「日付ヒストグラム」を「集計」、「フィールド」を「@timestamp」、「間隔」を「1m」に選択します。
-
ビジュアル デザイナーで [変更を適用] ボタンを選択し、結果をプレビューします。
- レポートの生成
Kibana のレポート ジェネレーターを使用して、前日の Web アプリケーション アクセスを含むレポートを PDF 形式で作成します。
-
「レポート」タブを選択し、「新しいレポートを作成」ボタンを選択します。
-
レポート デザイナーで「webapp-access-*」インデックス モードを選択し、「折れ線グラフ」ビジュアル コンポーネントを選択します。
-
レポート デザイナーで [エクスポート] タブを選択し、[PDF] 形式を選択します。
-
レポート デザイナーで [レポートの生成] ボタンを選択し、レポートの生成が完了するまで待ちます。
-
レポート デザイナーで [ダウンロード] ボタンを選択し、生成されたレポートをダウンロードします。
上記は、Logstash を使用して Web アプリケーションのアクセス ログを収集し、Kibana を使用して視覚化パネルとレポートを作成するなど、データ視覚化に ELK を使用する実装例です。