kubesphere k8s は elasticsearch プラグインを使用して Fluentd をインストールします

目次

序文

1. Fluentdイメージを作成する

2. 設定ファイルを書き込む

1. 構成の編集

2. 設定手順 (無視して構いません)

 3. logback-spring.xmlの設定

3.fluentdをデプロイする




序文

Fluentd はオープンソースのログ収集機能であり、Elasticsearch や Kibana と併用して EFK ログ収集システムを構築できます。利点は、Fluentd が Logstash よりもはるかに軽いことです。メモリ使用量は Logstash の 10 分の 1 以下です。この記事では、kubesphere k8s に Fluentd をデプロイする方法を説明します。




1. Fluentdイメージを作成する

dockerhub に公式イメージがありますが、組み込みのelasticsearch プラグインはありません。この場合、k8sに問題が発生してインストールできません!

制作方法も非常に簡単な公式チュートリアルです。

fluent/fluentd-docker-image: Fluentd の Docker イメージ (github.com)

面倒な場合は、私がやったことを使ってください。

aliyun: docker pull registry.cn-shanghai.aliyuncs.com/samaritan/fluentd:1.14-1



2. 設定ファイルを書き込む

1. 構成の編集

kubesphere 上に新しい構成ファイルを作成する

 キー:fluent.conf

価値:

<source>
  @type tcp
  @id デバッグ入力
  ポート 4560
  タグ デバッグ
  <parse>
    @type json
  </parse>
</source>

<source>
  @type tcp
  @id error-input
  port 4561
  tag error
  <parse>
    @type json
  </parse>
</source>

<source>
  @type tcp
  @id ビジネス入力
  ポート 4562
  タグ ビジネス
  <parse>
    @type json
  </parse>
</source>

<source>
  @type tcp
  @id レコード入力
  ポート 4563
  タグ レコード
  <parse>
    @type json
  </parse>
</source>

<フィルター レコード>
  @type パーサー
  key_name メッセージ
  reserve_data true
  delete_key_name_field true
  <parse>
    @type json
  </parse>
</filter>

<match fluent.**>
  @type stdout
  Output_type json
</match>

<match **>
  @type elasticsearch
  host elastic-9g8m25-elasticsearch-master.mall-swarm
  port 9200
  type_name docker
  logstash_format true
  logstash_prefix docker-${tag}-logs
  logstash_dateformat %Y-%m-%
  dlush_interval 5s
  include_tag_key true
</match>
 

2. 設定手順 (無視して構いません)

 <ソース>

ログ収集のソースを定義します。これには、tcp、udp、テール (ファイル)、フォワード (tcp+udp)、http などが使用できます。

ここでは、TCP リクエストからログを収集します。ポートは4560、タグは set ですdebug

<source>
  @type  tcp
  @id    debug-input
  port  24221
  tag debug
  <parse>
    @type json
  </parse>
</source>

 <解析>

生データの解析方法を定義し、ログを JSON に変換します。

 デバッグログのJSONへの変換は以下のように設定できます。

<source>
  @type  tcp
  @id    debug-input
  port  4560
  tag debug
  <parse>
    @type json
  </parse>
</source>

 <フィルターxxx>

収集したログに対して、ログのコンソールへの出力やログの解析などの一連の処理を実行できます。

recordソースとしてタグが含まれるログについては、messageその属性を JSON 形式に変換します (そうでない場合、message属性は文字列になります)。

<filter record>
  @type parser
  key_name message
  reserve_data true
  remove_key_name_field true
  <parse>
    @type json
  </parse>
</filter>

 <一致>

収集されたログが最終的に出力される場所を定義し、stdout (コンソール)、ファイル、elasticsearch、mongo などに出力できます。

elasticsearchここでは、ログ情報を保存するために 使用します。 logstash_formatlogstash_prefixlogstash_dateformatは、主にログ インデックス名の生成を制御するために使用されます。デバッグ ログを生成するための現在の構成のインデックス形式は、elasticsearch へのログ出力の時間間隔を制御するdocker-debug-logs-2021-10-23ことです。flush_interval

<match **>
  @type elasticsearch
  host elastic-9g8m25-elasticsearch-master.samaritan
  port 9200
  type_name docker
  logstash_format true
  logstash_prefix docker-${tag}-logs
  logstash_dateformat %Y-%m-%d
  flush_interval 5s
  include_tag_key true
</match>

 3. logback-spring.xmlの設定

ここでは特に言うことはなく、fluentdにログを出力できるように上記のポートを設定するだけです。

<appender name="LOG_STASH_DEBUG" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>${LOG_STASH_HOST}:4560</destination>
</appender>

3.fluentdをデプロイする

Kubesphere はステートレス サービスを展開します。

 ここでカスタム ウェアハウス アドレスを使用して、es プラグインでミラー イメージを作成してアップロードします。

registry.cn-shanghai.aliyuncs.com/samaritan/fluentd:1.14-1。

デフォルトのポートを使用することを選択します

ログ収集ポートを設定します。

 構成ファイルをマウントし、以前に作成した構成ファイルを選択して、/fluentd/etc ディレクトリにマウントします。

 「次へ」をクリックして作成します。

起動ログをチェックして、カスタム構成ファイルがエラーなくロードされていることを確認します。


おすすめ

転載: blog.csdn.net/qq_31277409/article/details/120922878