定義ファイルからELKのLogstashプラグイン構造を詳しく説明する


概要
現在の分散システムのログ収集、ログ分析、ログ処理、可視化の人気技術スタック案はもちろん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サイト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プラグインを定義して開発した例を示す.
    後記
  • 作者のもっと多いオリジナルの文章ここで、
  • を鑑賞することを歓迎します
  • 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、もっと
    実務的で、読める、再現可能なオリジナル文↓↓↓