インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に完全に取って代わり、新世代のログ コレクターになりました。 Filebeat + ELK に基づく展開ソリューションのアーキテクチャ図は次のとおりです。 ソフトウェアバージョン:
docker-compose ファイルバージョン: "3" サービス: esマスター: コンテナ名: es-master ホスト名: es-master 画像: elasticsearch:7.5.1 再起動: 常に ポート: - 9200:9200 - 9300:9300 ボリューム: - ./elasticsearch/master/conf/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/master/data:/usr/share/elasticsearch/data - ./elasticsearch/master/logs:/usr/share/elasticsearch/logs 環境: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" es-slave1: コンテナ名: es-slave1 画像: elasticsearch:7.5.1 再起動: 常に ポート: - 9201:9200 - 9301:9300 ボリューム: - ./elasticsearch/slave1/conf/es-slave1.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/slave1/data:/usr/share/elasticsearch/data - ./elasticsearch/slave1/logs:/usr/share/elasticsearch/logs 環境: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" es-スレーブ2: コンテナ名: es-slave2 画像: elasticsearch:7.5.1 再起動: 常に ポート: - 9202:9200 - 9302:9300 ボリューム: ./elasticsearch/slave2/conf/es-slave2.yml:/usr/share/elasticsearch/config/elasticsearch.yml - ./elasticsearch/slave2/data:/usr/share/elasticsearch/data ログファイル 環境: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" キバナ: コンテナ名: kibana ホスト名: kibana 画像: kibana:7.5.1 再起動: 常に ポート: -5601:5601 ボリューム: ./kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml を参照してください。 環境: - elasticsearch.hosts=http://es-master:9200 依存: -es-マスター -es-スレーブ1 -es-スレーブ2 # ファイルビート: # # コンテナ名 # container_name: filebeat # # ホスト名 # ホスト名: filebeat # # イメージ: docker.elastic.co/beats/filebeat:7.5.1 # # 再起動メカニズム# restart: always # # 永続マウント # ボリューム: # - ./filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml ## コンテナにマッピングされる [データソースとして] # - ./logs:/home/project/spring-boot-elasticsearch/logs # - ./filebeat/logs:/usr/share/filebeat/logs # - ./filebeat/data:/usr/share/filebeat/data # # 指定されたコンテナを現在の接続に接続します。IP アドレスの動的な変更によりコンテナを接続できない状況を回避するためにエイリアスを設定できます。# リンク: # - ログスタッシュ # # 依存サービス [オプション] # 依存: # - esマスター # - es-slave1 # - es-スレーブ2 ログスタッシュ: コンテナ名: logstash ホスト名: logstash イメージ: logstash:7.5.1 コマンド: logstash -f ./conf/logstash-filebeat.conf 再起動: 常に ボリューム: # コンテナへのマッピング - ./logstash/conf/logstash-filebeat.conf:/usr/share/logstash/conf/logstash-filebeat.conf ./logstash/ssl:/usr/share/logstash/ssl 環境: - elasticsearch.hosts=http://es-master:9200 # logstash モニタリング接続エラーを解決する - xpack.monitoring.elasticsearch.hosts=http://es-master:9200 ポート: -5044:5044 依存: -es-マスター -es-スレーブ1 -es-スレーブ2 ここでは
es-マスター.yml # クラスター名 cluster.name: es-cluster #ノード名node.name: es-master # マスターノードになれるかどうかnode.master: true # ノードがデータを保存できるようにするかどうか。デフォルトで有効です。node.data: false # ネットワークバインディング network.host: 0.0.0.0 # 外部サービスのhttpポートを設定します http.port: 9200 # ノード間の通信用のTCPポートを設定します transport.port: 9300 # クラスター検出 discovery.seed_hosts: -es-マスター -es-スレーブ1 -es-スレーブ2 # マスターノードになることができるすべてのノードの名前または IP アドレスを手動で指定します。これらの構成は最初の選出 cluster.initial_master_nodes で計算されます。 -es-マスター # クロスドメインアクセスをサポートする http.cors.enabled: true http.cors.allow-origin: "*" # セキュリティ認証 xpack.security.enabled: false #http.cors.allow-headers: 「認証」 es-slave1.yml # クラスター名 cluster.name: es-cluster #ノード名node.name: es-slave1 # マスターノードになれるかどうかnode.master: true # ノードがデータを保存できるようにするかどうか。デフォルトで有効です。node.data: true # ネットワークバインディング network.host: 0.0.0.0 # 外部サービスのhttpポートを設定します http.port: 9201 # ノード間の通信用のTCPポートを設定します #transport.port: 9301 # クラスター検出 discovery.seed_hosts: -es-マスター -es-スレーブ1 -es-スレーブ2 # マスターノードになることができるすべてのノードの名前または IP アドレスを手動で指定します。これらの構成は最初の選出 cluster.initial_master_nodes で計算されます。 -es-マスター #クロスドメインアクセスをサポートする http.cors.enabled: true http.cors.allow-origin: "*" # セキュリティ認証 xpack.security.enabled: false #http.cors.allow-headers: 「認証」 es-slave2.yml # クラスター名 cluster.name: es-cluster #ノード名node.name: es-slave2 # マスターノードになれるかどうかnode.master: true # ノードがデータを保存できるようにするかどうか。デフォルトで有効です。node.data: true # ネットワークバインディング network.host: 0.0.0.0 # 外部サービスのhttpポートを設定します http.port: 9202 # ノード間の通信用のTCPポートを設定します #transport.port: 9302 # クラスター検出 discovery.seed_hosts: -es-マスター -es-スレーブ1 -es-スレーブ2 # マスターノードになることができるすべてのノードの名前または IP アドレスを手動で指定します。これらの構成は最初の選出 cluster.initial_master_nodes で計算されます。 -es-マスター # クロスドメインアクセスをサポートする http.cors.enabled: true http.cors.allow-origin: "*" # セキュリティ認証 xpack.security.enabled: false #http.cors.allow-headers: 「認証」 ログスタッシュファイルビート.conf 入力{ # ソースビート ビート { # ポート port => "5044" ssl_certificate_authorities => ["/usr/share/logstash/ssl/ca.crt"] ssl_certificate => "/usr/share/logstash/ssl/server.crt" ssl_key => "/usr/share/logstash/ssl/server.key" ssl_verify_mode => "force_peer" } } # 分析およびフィルタリングプラグイン、複数のフィルタが可能 { 理解する { 一致 => { "メッセージ" => "%{COMBINEDAPACHELOG}"} } ジオIP ソース => "clientip" } } 出力{ # elasticsearchを選択 エラスティックサーチ ホスト => ["http://es-master:9200"] インデックス => "%{[fields][service]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } ファイルビート.yml ファイルビート入力: - タイプ: ログ 有効: true パス: # 現在のディレクトリ内のすべての .log ファイル - /root/tmp/logs/*.log フィールド: サービス: "our31-java" 複数行パターン: ^\[ 複数行否定: true 複数行一致: 後 - タイプ: ログ 有効: true パス: # 現在のディレクトリ内のすべての .log ファイル - /root/tmp/log/*.log フィールド: サービス: "our31-nginx" filebeat.config.モジュール: パス: ${path.config}/modules.d/*.yml リロードが有効: false # セットアップテンプレート設定: # インデックスのシャード数: 1 # セットアップダッシュボードが有効: false # セットアップ.kibana: # ホスト: "http://localhost:5601" # ESに直接転送されない #出力.elasticsearch: # ホスト: ["http://es-master:9200"] # インデックス: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}" セットアップ.ilm.enabled: false 出力.logstash: ホスト: ["logstash.server.com:5044"] # オプションの SSL。デフォルトではオフになっています。 # HTTPS サーバー検証用のルート証明書のリスト ssl.certificate_authorities: "./ssl/ca.crt" # SSLクライアント認証用の証明書 ssl.証明書: "./ssl/client.crt" # クライアント証明書キー ssl.key: 「./ssl/client.key」 # プロセッサ: # - ホストメタデータを追加: ~ # - クラウドメタデータを追加: ~ 知らせ 証明書を生成し、SSL を構成し、Filebeat と Logstash の間で SSL を確立します。 #CA 秘密鍵を生成する openssl genrsa 2048 > ca.key #CA 秘密キーを使用して CA 証明書を作成します openssl req -new -x509 -nodes -key ca.key -subj /CN=elkCA\ CA/OU=Development\ group/O=HomeIT\ SIA/DC=elk/DC=com > ca.crt # サーバー csr 証明書要求ファイルを生成します openssl req -newkey rsa:2048 -nodes -keyout server.key -subj /CN=logstash.server.com/OU=Development\ group/O=Home\ SIA/DC=elk/DC=com > server.csr #CA 証明書と秘密鍵を使用してサーバー証明書を発行します openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 > server.crt # クライアント csr 証明書要求ファイルを生成します openssl req -newkey rsa:2048 -nodes -keyout client.key -subj /CN=filebeat.client.com/OU=Development\ group/O=Home\ SIA/DC=elk/DC=com > client.csr #CA 証明書と秘密鍵を使用してクライアント証明書を発行します openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -set_serial 01 > client.crt 証明書を対応するフォルダに置くことを忘れないでください。 Filebeat の 異なるサーバー、異なるサービス、異なる日付に基づいてインデックスを動的に生成します 上の図では、いくつかのカスタム属性が追加されています。これらの属性は Logstash に渡され、Logstash はこれらの属性を取得して、以下に示すように Elasticsearch に動的にインデックスを作成します。
もともと、インデックスを使用してここで動的にインデックスを生成したいと思っていましたが、公式の設定によると、成功しませんでした。理由を教えていただけますか? Nginx Http Basic認証を使用してKibanaにログインを要求する まず、 $ yum -y httpd-toolsをインストールします 新しいパスワードファイルを作成する 追加のユーザー情報: 最後に、Nginx を設定します。 サーバー{ ...... auth_basic "Kibana 認証"; auth_basic_user_file /usr/local/nginx/pwd/kibana/passwd; ...... } Filebeatを個別に起動する方法 $ nohup ./filebeat 2>&1 & Docker Composeを起動する
$ docker-compose アップ --build -d Docker Compose によるワンクリック ELK デプロイメントの実装に関するこの記事はこれで終わりです。Docker Compose ELK デプロイメントの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
一般的には、左側にメニューがあった後、ページの上部に履歴タブ メニューを追加する必要があります。他の...
今日は、MySQL IN サブクエリの最適化に関するケーススタディを見ました。最初は少し懐疑的でした...
SQL では、GROUP BY は SELECT の結果のデータをグループ化するために使用されます。...
目次ストレージエンジンMySQL でサポートされているストレージ エンジン同時実行制御ロック粒子をロ...
1 はじめにスレッド技術は 1960 年代にすでに提案されていましたが、マルチスレッドがオペレーティ...
序文MySQL 5.7.11 以降、MySQL は、別の表領域に格納された InnoDB テーブルの...
目次1. 基本タイプ2. オブジェクトタイプ2.1 配列2.2 タプル2.3 オブジェクト3. 型推...
この記事では、例を使用して、MySQL ストアド プロシージャで複数の値を返す方法について説明します...
目次1. システム環境2. 運用プロセスと途中で遭遇した問題1. システム環境1. Tencent ...
均等に分散されたレイアウトの場合、通常はネガティブ マージン方式を使用します。次の図は平均的なレイア...
よく遭遇する問題: 下部の要素を「下部に貼り付ける」効果を CSS でどのように実現するか。この記事...
VMware仮想マシンでのCentos7ブリッジネットワーク構成の完全な手順は参考用です。具体的な内...
<script> タグHTML5では、スクリプトには次の属性があります: async、d...
準備のメリットPrepare SQL が生成される理由。まず、MySQL サーバー上で SQL を実...
目次1. MySQL ワイルドカード ファジー クエリ (%,_) 1-1. ワイルドカードの分類1...