Log Service (LOG と略されます) はログシナリオのためのプラットフォームサービスです。 ログは、開発なしで短時間に収集、分散、配信、および照会ができます。そして、ログ転送、モニタリング、パフォーマンス診断、ログ解析および監査などのシナリオに適しています。 Container Service は Log Service と統合されているため、アプリケーションログを Log Service に送信することができます。
Note [クラスター管理] ページで、[Log Service の有効化] をクリックして、 > [OK] をクリックします。Log Service が正常に有効化されると、ビルトイン RAM (Resource Access Management) アカウントにより 自動的に作成された各 Logstore のログインデックスが作成されます。 この機能を有効化した場合、以下の設定の完了後、Alibaba Cloud Log Service の使用料が請求されます。 詳しくは、Billing methodをご参照ください。 ログ容量を確認し、想定外の大きなコストの発生を避けるようにします。

Log Service の有効化

  1. Container Service コンソールにログインします。
  2. 左側のナビゲーションウィンドウから [クラスター] をクリックします。
  3. クラスターの右側にある [管理] をクリックします。


  4. 右上角の [Log Service の有効化] をクリックします。


  5. 表示されたダイアログボックスで [OK] をクリックします。
    Container Service で Log Service を有効化する前に、まず RAM サービスと Log Service を有効化します。 有効化していない場合、[有効化] をクリックして RAM サービスおよび Log Service を有効にします。 Log Service が正常に有効にされると、作成された Log Service プロジェクトが表示されます。


acslogging サービスのインストール結果の確認

初めて Log Service を有効化した場合、Container Service はマシンに Log Service が必要とするエージェントをインストールします。アプリケーションが正常にインストールされた後、Log Service を使用できます。[アプリケーションリスト] ページでこのアプリケーションを検索できます。 アプリケーションが正常にインストールされた後、Log Service を使用できます。

  1. Container Service コンソールにログインします。
  2. 左側のナビゲーションウィンドウから [アプリケーション] をクリックします。
  3. [クラスター] リストからクラスターを選択し、[システムアプリケーションの非表示] チェックボックスをオフにします。
    acslogging アプリケーションが正常にインストールされます。


システムが Alibaba Cloud Log Service に対応するプロジェクトが作成されます。 Log Service コンソールでプロジェクトを表示できます。 プロジェクト名には Container Service クラスター ID が含まれます。


オーケストレーションファイルでの Log Service の利用

ほとんどの Docker アプリケーションはログを直接 stdout に書き込みます。ユーザーも同じことが可能です(ログをファイルへ書き込みのシナリオについては、次のセクションのログファイルの利用をご参照ください)。 Log Service の有効化後、 stdout ログが自動的に収集され、Alibaba Cloud Log Service に送信されます。

次の例では、WordPress アプリケーションが作成されます。 このアプリケーションには、WordPress サービスと MySQL サービスの 2 つのシナリオが含まれます。 ログは Alibaba Cloud Log Service に収集されます。これには 2 つのサービスが含まれます。WordPress サービスおよび MySQL サービスです。 ログは Alibaba Cloud Log Service に収集されます。

MySQL

image: mysql
ports:
    - 80
labels:
    aliyun.scale: "1"
environment:
    - MYSQL_ROOT_PASSWORD=password

WordPress

image: registry.aliyuncs.com/jiangjizhong/wordpress
ports:
   - 80
labels:
   aliyun.routing.port_80: wordpress-with-log
   aliyun.log_store_dbstdout: stdout # Collect stdout logs to the dbstdout Logstore
   aliyun.log_ttl_dbstdout: 30 # Set the data retention time for the dbstdout Logstore to 30 days
links:
    - mysql

前述のオーケストレーションファイルで、

  • aliyun.log_store_dbstdout: stdout はコンテナー標準を Logstore acslog-wordpress-dbstdout に書き込みます。 ラベル形式は aliyun.log_store_{name}: {logpath} となります。 ここで、
    • name は Alibaba Cloud Log Service Logstore の名前です。 実際に作成される Logstore 名は acslog-${app}-${name} となります。
    • app はアプリケーション名です。
    • logpath はコンテナーのログパスです。
    • stdout は特別な logpath で、 標準出力を示します。
  • aliyun.log_ttl_<logstore_name> は Logstore のデータ保持期間 (日数) の設定に使用されます。 値の範囲は、 1 から 365 となります。 空欄にしたままにすると、ログはデフォルトで Logstore に 2 日間保持されます。
    Note ここで設定された値は初期設定値です。 データ保持期間を後で変更する場合は、Log Service コンソールで変更します。

Container Service コンソールで、上記のオーケストレーションテンプレートを使用して wordpress という 名前のアプリケーションを作成できます。 アプリケーションの起動後、 Log Service コンソールで Logstore acslog-wordpress-dbstdout を検索できます。これは、wordpress アプリケーションのログが保存される場所です。

Log Service コンソールでのログの表示

前述のオーケストレーションファイルを使用してアプリケーションをデプロイした後、Alibaba Cloud Log Service コンソールで収集したログを表示できます。 Log Service コンソールにログインします。 対応するクラスターの Log Service プロジェクトを 検索します。 オーケストレーションファイルで使用された Logstore acs-wordpress-dbstdout を表示できます。


Logstore の右側にある [検索] をクリックしてログを表示します。

ログファイルの利用

stdout の代わりにログを直接ファイル (たとえば /var/log/app.log) に書き出すには、以下のように設定します。

aliyun.log_store_name: /var/log/app.log

name は Logstore の名前です。 /var/log/app.log はコンテナーのログパスです。

複数のログファイルを Log Service に出力するために、以下のように設定し複数のディレクトリにファイルを配置します。

aliyun.log_store_s1: /data/logs/access/access.log
aliyun.log_store_s2: /data/logs/error/error.log
aliyun.log_store_s3: /data/logs/exception/*.log #Wildcards are supported 
Note 現在、複数の Logstore は同じログディレクトリに対応していません。 前述した例の 3 つの Logstore s1、s2 および s3 に対応するログファイルは 、それぞれ3 つのディレクトリに存在する必要があります。

タイムスタンプの有効化

Docker がログを収集中にタイプスタンプを追加するかどうかを選択できます。 Container Service で aliyun.log.timestamp ラベルを使って タイムスタンプを設定します。 タイムスタンプはデフォルトで追加されます。

  • タイムスタンプの追加

    aliyun.log.timestamp: "true"

  • タイムスタンプの削除

    aliyun.log.timestamp: "false"