検索
ホームページ運用・保守Linuxの運用と保守アプリケーションの監視とログ管理に Docker を使用する方法

アプリケーションの監視とログ管理に 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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
DebianがHadoopデータ処理速度を改善する方法DebianがHadoopデータ処理速度を改善する方法Apr 13, 2025 am 11:54 AM

この記事では、DebianシステムのHadoopデータ処理効率を改善する方法について説明します。最適化戦略では、ハードウェアのアップグレード、オペレーティングシステムパラメーターの調整、Hadoop構成の変更、および効率的なアルゴリズムとツールの使用をカバーしています。 1.ハードウェアリソースの強化により、すべてのノードが一貫したハードウェア構成、特にCPU、メモリ、ネットワーク機器のパフォーマンスに注意を払うことが保証されます。高性能ハードウェアコンポーネントを選択することは、全体的な処理速度を改善するために不可欠です。 2。オペレーティングシステムチューニングファイル記述子とネットワーク接続:/etc/security/limits.confファイルを変更して、システムによって同時に開くことができるファイル記述子とネットワーク接続の上限を増やします。 JVMパラメーター調整:Hadoop-env.shファイルで調整します

Debian syslogを学ぶ方法Debian syslogを学ぶ方法Apr 13, 2025 am 11:51 AM

このガイドでは、Debian SystemsでSyslogの使用方法を学ぶように導きます。 Syslogは、ロギングシステムとアプリケーションログメッセージのLinuxシステムの重要なサービスです。管理者がシステムアクティビティを監視および分析して、問題を迅速に特定および解決するのに役立ちます。 1. syslogの基本的な知識Syslogのコア関数には以下が含まれます。複数のログ出力形式とターゲットの場所(ファイルやネットワークなど)をサポートします。リアルタイムのログ表示およびフィルタリング機能を提供します。 2。syslog(rsyslogを使用)をインストールして構成するDebianシステムは、デフォルトでrsyslogを使用します。次のコマンドでインストールできます:sudoaptupdatesud

DebianでHadoopバージョンを選択する方法DebianでHadoopバージョンを選択する方法Apr 13, 2025 am 11:48 AM

Debianシステムに適したHadoopバージョンを選択する場合、次の重要な要因を考慮する必要があります。1。安定性と長期的なサポート:安定性とセキュリティを追求するユーザーにとって、Debian11(Bullseye)などのDebianの安定したバージョンを選択することをお勧めします。このバージョンは完全にテストされており、最大5年のサポートサイクルがあり、システムの安定した動作を確保できます。 2。パッケージの更新速度:最新のHadoop機能と機能を使用する必要がある場合は、DebianのUnstableバージョン(SID)を検討できます。ただし、不安定なバージョンには互換性の問題と安定性のリスクがあることに注意する必要があります。 3。コミュニティのサポートとリソース:Debianには、豊富なドキュメントを提供できるコミュニティサポートが大きくなり、

debianのtigervnc共有ファイルメソッドdebianのtigervnc共有ファイルメソッドApr 13, 2025 am 11:45 AM

この記事では、Tigervncを使用してDebian Systemsでファイルを共有する方法について説明します。最初にtigervncサーバーをインストールしてから構成する必要があります。 1. TigerVNCサーバーをインストールし、端末を開きます。ソフトウェアパッケージリストの更新リスト:sudoaptupdate tigervnc server:sudoaptinstaltaltigervnc-standalone-servertigervnc-common2。tigervncサーバーを構成するVNCサーバーパスワードを設定します。

Debian Mail Serverファイアウォールの構成のヒントDebian Mail Serverファイアウォールの構成のヒントApr 13, 2025 am 11:42 AM

Debian Mail Serverのファイアウォールの構成は、サーバーのセキュリティを確保するための重要なステップです。以下は、iPtablesやFirewalldの使用を含む、一般的に使用されるファイアウォール構成方法です。 iPtablesを使用してファイアウォールを構成してIPTablesをインストールします(まだインストールされていない場合):sudoapt-getupdatesudoapt-getinstalliptablesview現在のiptablesルール:sudoiptables-l configuration

Debian Mail Server SSL証明書のインストール方法Debian Mail Server SSL証明書のインストール方法Apr 13, 2025 am 11:39 AM

Debian Mail ServerにSSL証明書をインストールする手順は次のとおりです。1。最初にOpenSSL Toolkitをインストールすると、OpenSSLツールキットがシステムに既にインストールされていることを確認してください。インストールされていない場合は、次のコマンドを使用してインストールできます。sudoapt-getUpdatesudoapt-getInstalopenssl2。秘密キーと証明書のリクエストを生成次に、OpenSSLを使用して2048ビットRSA秘密キーと証明書リクエスト(CSR)を生成します:Openss

Debian Mail Server仮想ホスト構成方法Debian Mail Server仮想ホスト構成方法Apr 13, 2025 am 11:36 AM

Debianシステムでのメールサーバーの仮想ホストの構成には、通常、Apache Httpserverではなく、Apache Httpserverではなく、Mail Serverソフトウェア(Postfix、Eximなど)のインストールと構成が含まれます。以下は、メールサーバーの構成のための基本的な手順です仮想ホスト:ポストフィックスメールサーバー更新システムパッケージ:sudoaptupdatesudoaptupgradeポストフィックス:sudoapt

Debian Mail Server DNSセットアップガイドDebian Mail Server DNSセットアップガイドApr 13, 2025 am 11:33 AM

Debian Mail ServerのDNS設定を構成するには、次の手順に従うことができます。ネットワーク構成ファイルを開きます。テキストエディター(VIやNANOなど)を使用して、ネットワーク構成ファイル/など/ネットワーク/インターフェイスを開きます。 sudonano/etc/network/interfacesネットワークインターフェイス構成を検索:構成ファイルで変更するネットワークインターフェイスを見つけます。通常、イーサネットインターフェイスの構成はIFETH0ブロックにあります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター