アプリケーションの監視とログ管理に Docker を使用する方法
Docker は現代のアプリケーションにおいて不可欠なテクノロジーとなっていますが、アプリケーションの監視とログ管理に Docker を使用することは課題です。 Service Discovery や Load Balancing などの Docker ネットワーク機能が継続的に強化されているため、完全で安定した効率的なアプリケーション監視システムの必要性がますます高まっています。
この記事では、アプリケーションの監視とログ管理のための Docker の使用方法を簡単に紹介し、具体的なコード例を示します。
アプリケーション監視に Prometheus を使用する
Prometheus は、SoundCloud によって開発されたオープンソースのプル モデルベースのサービス監視および警告ツールです。 Go 言語で書かれており、マイクロサービス ソリューションやクラウド環境で広く使用されています。監視ツールとして、DockerのCPU、メモリ、ネットワーク、ディスクなどを監視できるほか、多次元のデータスイッチング、柔軟なクエリ、アラーム、可視化機能もサポートしているため、迅速な対応と迅速な意思決定を可能にします。
もう 1 つ注意すべき点は、Prometheus はプル モードでサンプリングする必要があることです。つまり、監視対象のアプリケーションの /metrics インターフェイスにアクセスして監視データを取得する必要があります。したがって、監視対象アプリケーション イメージを開始するときは、最初に Prometheus にアクセスできる IP とポートを /metrics インターフェイスに設定する必要があります。以下は単純な Node.js アプリケーションです。
const express = require('express') const app = express() app.get('/', (req, res) => { res.send('Hello World!') }) app.get('/metrics', (req, res) => { res.send(` # HELP api_calls_total Total API calls # TYPE api_calls_total counter api_calls_total 100 `) }) app.listen(3000, () => { console.log('Example app listening on port 3000!') })
このコードでは、/metrics インターフェイスを通じて api_calls_total 監視インジケーターを返します。
次に、公式 Web サイトから Prometheus の Docker イメージをダウンロードし、docker-compose.yml ファイルを作成します。このファイル内に Node.js アプリケーションのデータを取得します。
version: '3' services: node: image: node:lts command: node index.js ports: - 3000:3000 prometheus: image: prom/prometheus:v2.25.2 volumes: - ./prometheus:/etc/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.retention.time=15d' ports: - 9090:9090
docker-compose.yml ファイルでは、2 つのサービスを定義します。1 つは Node.js アプリケーションを実行する Node サービス、もう 1 つは監視用の Prometheus サービスです。このうち、Node サービスによって公開されるポートはポート 3000 です。ポート マッピングを通じて、docker-compose.yml の IP およびポート 3000 を介して Node アプリケーションの /metrics インターフェイスにアクセスできます。 Prometheus は、ポート 9090 を介して、対応する監視インジケーター データにアクセスできます。
最後に、prometheus.yml ファイルで、取得するデータ ソースを定義する必要があります。
global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'node-exporter' static_configs: - targets: ['node:9100'] - job_name: 'node-js-app' static_configs: - targets: ['node:3000']
このファイルでは、収集されるすべての Node.js アプリケーションのインジケーターを定義します。ここで、targets パラメーターは、Node.js アプリケーションの IP アドレスとそれに対応するポート番号です。ここでは、ノードとポート 3000 を使用しています。
最後に、 docker-compose up コマンドを実行してアプリケーション全体とその監視サービスを開始し、Prometheus のメンバー インジケーターを表示します。
ログ管理に ElasticSearch と Logstash を使用する
Docker では、アプリケーション ログ データはさまざまな Docker コンテナーに分散されます。これらのログを一元管理したい場合は、ELK の ElasticSearch と Logstash を使用してログを一元管理し、コンピューター リソースの監視と分析を容易にすることができます。
始める前に、Logstash と ElasticSearch の Docker イメージをダウンロードし、docker-compose.yml ファイルを作成する必要があります。
このファイルでは 3 つのサービスを定義しており、そのうちの bls はビジネス ログをシミュレートするために使用される API サービスであり、各応答後にログが stdout とログ ファイルに記録されます。 logstash サービスは、Logstash によって公式に提供されている Docker イメージから構築されており、ログの収集、フィルタリング、送信に使用されます。 ElasticSearch サービスは、ログの保存と取得に使用されます。
version: '3' services: bls: image: nginx:alpine volumes: - ./log:/var/log/nginx - ./public:/usr/share/nginx/html:ro ports: - "8000:80" logging: driver: "json-file" options: max-size: "10m" max-file: "10" logstash: image: logstash:7.10.1 volumes: - ./logstash/pipeline:/usr/share/logstash/pipeline environment: - "ES_HOST=elasticsearch" depends_on: - elasticsearch elasticsearch: image: elasticsearch:7.10.1 environment: - "http.host=0.0.0.0" - "discovery.type=single-node" volumes: - ./elasticsearch:/usr/share/elasticsearch/data
構成ファイルでは、コンテナ内のパスをホストのログ ファイル システムにマップします。同時に、ログ オプションを通じて、ログのボリューム サイズと量が定義され、ログが占有するストレージが制限されます。
設定ファイルの logstash で、nginx_pipeline.conf
という名前の新しいパイプラインを定義します。このファイルは、nginx ログの収集、フィルタリング、送信を処理するために使用されます。 ELK の仕組みと同様に、logstash は受信したログをさまざまな条件に基づいて処理し、作成済みの Elasticsearch クラスターに送信します。この構成ファイルでは、次の処理ロジックを定義します。
input { file { path => "/var/log/nginx/access.log" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } output { elasticsearch { hosts => [ "${ES_HOST}:9200" ] index => "nginx_log_index" } }
この構成ファイルでは、file という名前の入力を定義します。これは、ローカル ログ ファイルからデータを読み取ることを意味します。次に、grok ライブラリを使用して特定のテンプレートに一致するログを解析するフィルターを導入しました。最後に、環境変数 ES_HOST
を介してコンテナに取得とレポートを渡しながら、Elasticsearch クラスターのアドレスにデータを転送する出力を定義します。
最終的に、上記のように ELK 全体の構成が完了すると、効率的なログ管理システムが完成します。各ログは一元管理された場所に送信され、統合され、簡単に検索できるようになります。フィルタリングと可視化の操作。
以上がアプリケーションの監視とログ管理に Docker を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









回答: PHP マイクロサービスは、アジャイル開発のために HelmCharts でデプロイされ、分離とスケーラビリティのために DockerContainer でコンテナ化されます。詳細説明: HelmCharts を使用して PHP マイクロサービスを自動的にデプロイし、アジャイル開発を実現します。 Docker イメージを使用すると、マイクロサービスの迅速な反復とバージョン管理が可能になります。 DockerContainer 標準はマイクロサービスを分離し、Kubernetes がコンテナの可用性とスケーラビリティを管理します。 Prometheus と Grafana を使用して、マイクロサービスのパフォーマンスと健全性を監視し、アラームと自動修復メカニズムを作成します。

ピン張りのノードの詳細な説明とインストールガイドこの記事では、ピネットワークのエコシステムを詳細に紹介します - PIノードは、ピン系生態系における重要な役割であり、設置と構成の完全な手順を提供します。 Pinetworkブロックチェーンテストネットワークの発売後、PIノードは多くの先駆者の重要な部分になり、テストに積極的に参加し、今後のメインネットワークリリースの準備をしています。まだピン張りのものがわからない場合は、ピコインとは何かを参照してください。リストの価格はいくらですか? PIの使用、マイニング、セキュリティ分析。パインワークとは何ですか?ピン競技プロジェクトは2019年に開始され、独占的な暗号通貨PIコインを所有しています。このプロジェクトは、誰もが参加できるものを作成することを目指しています

DeepSeekをインストールするには、Dockerコンテナ(最も便利な場合は、互換性について心配する必要はありません)を使用して、事前コンパイルパッケージ(Windowsユーザー向け)を使用してソースからコンパイル(経験豊富な開発者向け)を含む多くの方法があります。公式文書は慎重に文書化され、不必要なトラブルを避けるために完全に準備します。

回答: PHPCI/CD を使用して、CI/CD パイプラインの設定、自動化されたテストおよび展開プロセスなどの迅速な反復を実現します。 CI/CD パイプラインのセットアップ: CI/CD ツールを選択し、コード リポジトリを構成し、ビルド パイプラインを定義します。自動テスト: 単体テストと統合テストを作成し、テスト フレームワークを使用してテストを簡素化します。実際のケース: TravisCI の使用: TravisCI をインストールし、パイプラインを定義し、パイプラインを有効にして、結果を表示します。継続的デリバリーを実装します。展開ツールを選択し、展開パイプラインを定義し、展開を自動化します。利点: 開発効率が向上し、エラーが減少し、納期が短縮されます。

Docker コンテナを使用した Java EE アプリケーションのデプロイ: Dockerfile を作成してイメージを定義し、イメージを構築し、コンテナを実行してポートをマップし、ブラウザでアプリケーションにアクセスします。サンプル JavaEE アプリケーション: REST API はデータベースと対話し、Docker 経由でデプロイ後にローカルホストでアクセスできます。

1. まず、インターフェイスを開いた後、左側の拡張機能アイコン ボタンをクリックします。 2. 次に、開いた拡張機能ページで検索バーの場所を見つけます。 3. 次に、マウスで「Docker」という単語を入力して拡張機能プラグインを見つけます。 4最後に、対象のプラグインを選択して右をクリックし、下隅にあるインストールボタンをクリックします。

マイクロサービス アーキテクチャは、PHP フレームワーク (Symfony や Laravel など) を使用してマイクロサービスを実装し、RESTful 原則と標準データ形式に従って API を設計します。マイクロサービスはメッセージ キュー、HTTP リクエスト、または gRPC を介して通信し、監視とトラブルシューティングに Prometheus や ELKStack などのツールを使用します。

PHP マイクロサービスのコンテナー化された監視とログ管理の監視: Prometheus と Grafana を使用して、リソースの使用状況、リクエストの数、待機時間を監視します。ログ管理: ELKStack (ElasticSearch、Logstash、Kibana) を使用してログを収集、解析、視覚化します。 Filebeat エージェントをデプロイして、ログを ElasticSearch に送信します。
