定義ファイルからELKのLogstashプラグイン構造を詳しく説明する
4302 ワード
概要
現在の分散システムのログ収集、ログ分析、ログ処理、可視化の人気技術スタック案はもちろんELK(ElasticSearch、Logstash、Kibana)ではなく、L→E→KからデータのPipelineパイプラインを構成している. Logstash:ログ、トランザクション、またはその他のデータを収集、フィルタ処理するためにデータ・ソースに接続されます. ElasticSearch:オープンソース、分散RESTful検索エンジンであり、ELKでデータ格納場所として初めて理解できる Kibana:Elasticsearchのデータを可視化されたレポートとして分析し、レンダリングします. を効率的に分析できます.
また、私の前文「ELKを利用してDockerコンテナ化アプリケーションログセンターを構築する」では、ELKを利用してDockerコンテナ化アプリケーションのログセンターとしてデータパイプを構築したことがあります.
注:本文はMy公衆番号に先発する
CodeSheep,可
長押しまたは
次の
気をつけて購読↓↓↓
なぜログスタッシュを?
データソースと「直接ドッキング」するLogstashとして、位置はELKデータパイプの最先端にあり、その主な役割は各種の構造化または非構造化の原始データ(典型的にはログデータ)を収集、フィルタリング分析、出力することであり、原始データは「無秩序に秩序化する」重荷からLogstashの肩に落ちているため、その役割は重要である.
Logstashといえば、その中のプラグインメカニズムは、ほとんどの機能がプラグインによって実現されているため、柔軟で使いやすいと言わざるを得ません.データ収集に関して、Logstashは入力プラグインを提供し、様々な異なるデータソース をサポートする.データ分析に関して、Logstashは、入力元データに対するフラワー処理 をサポートするフィルタプラグインを提供する.データ出力については、Logstashも各種出力プラグインを提供し、結果データを各種の場所、例えば標準コンソール、ファイル、各種データベースはElasticSearchなどの を含む.
Logstashのプラグイン管理
LogstashプラグインはRubyを使用して開発され、Logstashは古い1.5.0+版からプラグインモジュールとコアモジュールが別々にメンテナンスされ、そのプラグインはRubyGemsパッケージマネージャを使用してメンテナンスを管理しています.したがってLogstashプラグインは本質的に自己包含のRubyGemsである.
RubyGems(略称gems)は、RubyコンポーネントをパッケージングするためのRubyパッケージングシステムである.Rubyプログラムとライブラリを配布する標準フォーマットと、パッケージのインストールを管理するツールを提供します.
Webサイト
プラグインの一般的な操作は次のとおりです.プラグイン をインストール
オンラインでインストールできます.
もちろん、プラグインを事前にローカルにダウンロードし、ローカルにインストールすることもできます.アンインストールプラグイン 更新プラグイン
プラグインは最新バージョンに更新されます
Logstashのプラグイン定義構文
Logstashプラグインの定義は、カスタマイズされたDSL構文を使用しています.私はやはり図で説明するのに慣れています.
図から、主に以下の大部分の内容が含まれていることがわかります.
1.必要な依存
このセクションでは、一般的にrequire構文を使用して次の依存関係を導入します.前者は、特定のタイプのプラグインの依存 を導入する.後者はモジュールネーミングスペース を導入する.
2.クラス定義
3.プラグイン名の設定
4.構成オプションの設定
例: である指定パラメータのデータ型を構成する. を指定 必須かどうかを指定するために使用されます.
5.プラグインの方法
各タイプのプラグインには、次の表に示すように、いくつかの方法が必要です.
プラグインのタイプ
プラグインメソッド
プラグインの入力
register、 run
フィルタカード
register、 filter
出力プラグイン
register、 receive
コーディングカード
register、 encode、 decode
Logstashプラグインが備える業務処理機能は、上述のプラグインメソッドによる業務ロジック実現に由来する.
では、理論の部分はここまでまとめて、次は1部のLogstashプラグインの定義のソースコードを結びつけて例を分析します!
Logstashプラグイン定義ファイルの例
Logstashプラグインの公式サイトで提供されたLogstashフィルタプラグインlogstash-filter-exampleのソースコードを例に分析します.スズメは小さいですが、五臓がそろっています.コード解析は既に図に表示されており,これ以上説明しない.
もちろん、ここの例は入門例を示していますが、限られた文章で複雑すぎるLogstashのプラグインソースコードを与えることはできません.このソースコードと前節の内容を照らし合わせると、Logstashのプラグインのソースコード構造は難しくないと思います.
計画は、特定のデータ要件に基づいて、特定の要件を満たすLogstashプラグインを定義して開発した例を示す.
後記作者のもっと多いオリジナルの文章ここで、 を鑑賞することを歓迎します My Personal Blog
著者のSpringBtの実践記事はここにあります. Spring Boot Admin2.0開梱体験 Spring Bootアプリケーションモニタ実戦 SpringBootアプリケーションは、外付けTomcatコンテナ に配備されている. ElasticSearch検索エンジンSpringBtにおける実践 初探Kotlin+SpringBoot連携プログラミング Spring Bootログフレームワーク実践 SpringBoot優雅符号化之:Lombok加持 興味があれば、作者の容器化、マイクロサービス化に関する文章を見ることもできます. K 8 Sテクノロジースタックを利用して個人私有クラウド連載記事 を作成構成リストからNginxサーバ構成 を詳しく説明する Docker容器可視化監視センタ構築 ELKを利用してDockerコンテナ化応用ログセンター を構築する RPCフレームワーク実践之:Apache Thrift RPCフレームワーク実践之:Google gRPC マイクロサービスコールチェーン追跡センター構築 Dockerコンテナホスト間通信 Docker Swamクラスタプローブ Dockerfileを効率的に記述するいくつかのガイドライン 可
長押しまたは
次の
気をつけて購読する
CodeSheep、もっと
実務的で、読める、再現可能なオリジナル文↓↓↓
現在の分散システムのログ収集、ログ分析、ログ処理、可視化の人気技術スタック案はもちろんELK(ElasticSearch、Logstash、Kibana)ではなく、L→E→KからデータのPipelineパイプラインを構成している.
また、私の前文「ELKを利用してDockerコンテナ化アプリケーションログセンターを構築する」では、ELKを利用してDockerコンテナ化アプリケーションのログセンターとしてデータパイプを構築したことがあります.
注:本文はMy公衆番号に先発する
CodeSheep,可
長押しまたは
次の
気をつけて購読↓↓↓
なぜログスタッシュを?
データソースと「直接ドッキング」するLogstashとして、位置はELKデータパイプの最先端にあり、その主な役割は各種の構造化または非構造化の原始データ(典型的にはログデータ)を収集、フィルタリング分析、出力することであり、原始データは「無秩序に秩序化する」重荷からLogstashの肩に落ちているため、その役割は重要である.
Logstashといえば、その中のプラグインメカニズムは、ほとんどの機能がプラグインによって実現されているため、柔軟で使いやすいと言わざるを得ません.
Logstashのプラグイン管理
LogstashプラグインはRubyを使用して開発され、Logstashは古い1.5.0+版からプラグインモジュールとコアモジュールが別々にメンテナンスされ、そのプラグインはRubyGemsパッケージマネージャを使用してメンテナンスを管理しています.したがってLogstashプラグインは本質的に自己包含のRubyGemsである.
RubyGems(略称gems)は、RubyコンポーネントをパッケージングするためのRubyパッケージングシステムである.Rubyプログラムとライブラリを配布する標準フォーマットと、パッケージのインストールを管理するツールを提供します.
Webサイト
rubygems.org
ですべてのLogstashプラグインを検索できます.プラグインの一般的な操作は次のとおりです.
オンラインでインストールできます.
bin/plugin install [ ]
もちろん、プラグインを事前にローカルにダウンロードし、ローカルにインストールすることもできます.
bin/plugin install path/logstash-xxx-x.x.x.gem
bin/plugin uninstall [ ]
bin/plugin update [ ]
プラグインは最新バージョンに更新されます
Logstashのプラグイン定義構文
Logstashプラグインの定義は、カスタマイズされたDSL構文を使用しています.私はやはり図で説明するのに慣れています.
図から、主に以下の大部分の内容が含まれていることがわかります.
1.必要な依存
このセクションでは、一般的にrequire構文を使用して次の依存関係を導入します.
require "logstash/XXX/base"
require "logstash/namespace"
2.クラス定義
class
構文で各プラグインにクラスを定義する必要があります.後で実際のコードで説明します.3.プラグイン名の設定
config_name
構文でプラグインに名前を付けます.この名前はLogstash.conf
プロファイルのプラグイン構成に使用されます.4.構成オプションの設定
config
構文を使用して、任意の構成項目をオンデマンドで定義できます.コンフィギュレーションオプションの名前、データ型、デフォルト値、および必須オプションを設定できます.例:
config :percentage, :validate => :number, :default =>100
:percentage
:構成項目の名前を定義する:validate
:numberタイプ:default
:設定項目のデフォルト値:required
:構成項目が5.プラグインの方法
各タイプのプラグインには、次の表に示すように、いくつかの方法が必要です.
プラグインのタイプ
プラグインメソッド
プラグインの入力
register、 run
フィルタカード
register、 filter
出力プラグイン
register、 receive
コーディングカード
register、 encode、 decode
Logstashプラグインが備える業務処理機能は、上述のプラグインメソッドによる業務ロジック実現に由来する.
では、理論の部分はここまでまとめて、次は1部のLogstashプラグインの定義のソースコードを結びつけて例を分析します!
Logstashプラグイン定義ファイルの例
Logstashプラグインの公式サイトで提供されたLogstashフィルタプラグインlogstash-filter-exampleのソースコードを例に分析します.スズメは小さいですが、五臓がそろっています.コード解析は既に図に表示されており,これ以上説明しない.
もちろん、ここの例は入門例を示していますが、限られた文章で複雑すぎるLogstashのプラグインソースコードを与えることはできません.このソースコードと前節の内容を照らし合わせると、Logstashのプラグインのソースコード構造は難しくないと思います.
計画は、特定のデータ要件に基づいて、特定の要件を満たすLogstashプラグインを定義して開発した例を示す.
後記
著者のSpringBtの実践記事はここにあります.
長押しまたは
次の
気をつけて購読する
CodeSheep、もっと
実務的で、読める、再現可能なオリジナル文↓↓↓