Container Service for Kubernetes(ACK)クラスターにアプリケーションを作成またはデプロイする際に、ログ収集を設定して、Enterprise Distributed Application Service(EDAS)がビジネスログとコンテナの標準出力(stdout)および標準エラー(stderr)ログをログサービスに配信できるようにすることができます。ログサービスでは、配信されたログを行数制限なしで表示し、これらのログに対して自動集計と分析を実行できます。このトピックでは、ログ収集を設定する方法について説明します。
前提条件
ログサービスがアクティブ化されていること。詳細については、「ログサービス」をご参照ください。
ログサービスコンポーネントであるLogtailがインストールされていること。詳細については、「DaemonSetモードでKubernetesコンテナからテキストログを収集する」をご参照ください。
重要Logtailをインストールする前にログサービスをアクティブ化して、エラーを回避する必要があります。
アプリケーションの各インスタンスに 0.25コアのCPUと 250 MBのメモリが予約されていること。
アプリケーションの作成時にログ収集を設定する
EDAS console にログオンします。左側のナビゲーションペインで、 を選択します。[アプリケーション] ページが表示されます。上部のナビゲーションバーで、リージョンを選択します。ページの上部で、名前空間を選択します。左上隅にある [アプリケーションの作成] をクリックします。
[基本情報] ステップで、[クラスタタイプ] と [アプリケーションランタイム環境] を指定し、[次へ] をクリックします。次の表にパラメータを示します。
パラメータ
説明
クラスタタイプ
アプリケーションをデプロイするクラスタのタイプ。[kubernetesクラスター] を選択します。
アプリケーションランタイム環境
アプリケーションランタイム環境。ホストされているアプリケーションのタイプに基づいて、アプリケーションランタイム環境を選択します。
Java
カスタム: カスタムイメージを使用してKubernetesクラスターにアプリケーションをデプロイする場合に、このオプションを選択します。
Java: ユニバーサルJARパッケージを使用して、アプリケーションをDubboまたはSpring Bootアプリケーションとしてデプロイする場合に、このオプションを選択します。このオプションを選択した後、[Java環境] パラメータを設定できます。
Tomcat: ユニバーサルWARパッケージを使用して、アプリケーションをDubboまたはSpringアプリケーションとしてデプロイする場合に、このオプションを選択します。このオプションを選択した後、[Java環境] パラメータと [コンテナバージョン] パラメータを設定できます。
EDAS-Container (HSF): WARまたはFatJarパッケージを使用して、アプリケーションをHigh-speed Service Framework(HSF)アプリケーションとしてデプロイする場合に、このオプションを選択します。このオプションを選択した後、[Java環境]、[Pandoraバージョン]、[Ali-Tomcatバージョン] パラメータを設定できます。
PHP: アプリケーションがApache HTTP Serverで実行されるPHPアプリケーションである場合に、このオプションを選択します。
Node.js、c++、go、およびその他の言語: カスタムイメージを使用してKubernetesクラスターにアプリケーションをデプロイする場合に、このオプションを選択します。多言語アプリケーションの設定プロセスについては、このトピックでは説明していません。
[構成] ステップで、アプリケーションの環境情報、基本情報、およびデプロイ方法を設定し、関連するリソースパラメータを設定して、[次へ] をクリックします。
[詳細設定] ステップで、[ログ収集設定] をクリックし、[SLSへのログ収集を有効にする] をオンにして、ビジネス要件に基づいてパラメータを設定します。

パラメータ
説明
ログストア名
ログを受信するログストアの名前を入力します。ログストアが存在しない場合は、指定された名前のログストアが作成されます。
収集ログタイプ
[ファイルログ(コンテナ内のログパス)] または [コンテナの標準出力ログ] を選択できます。
収集パス
コンテナ内のログの格納パスを入力します。例:/usr/local/tomcat/logs/catalina.*.log
重要指定されたログの格納パスには、ログファイル名が含まれている必要があります。例:/tmp0/cjsc.log。
ログファイルが格納されているディレクトリに他の重要なファイルを格納しないでください。そうしないと、ファイルが上書きされる可能性があります。
複数の収集ルールを設定するには、[ログソースを追加] をクリックします。
[アプリケーションの作成] をクリックします。
[作成完了] ページで、[基本情報]、[構成]、[詳細設定] セクションの情報を確認します。次に、[アプリケーションの作成] をクリックします。
[アプリケーションの概要] ページの上部にある [詳細の表示] をクリックします。[変更リスト] ページで、アプリケーションの変更プロセスを表示します。アプリケーションがデプロイされるまで数分待ちます。アプリケーションの変更プロセスが完了したら、[アプリケーションの概要] ページの [基本情報] セクションでインスタンスのステータスを表示します。ステータスにPodが実行中であると表示されている場合、アプリケーションはデプロイされています。
アプリケーションのデプロイ時にログ収集を設定する
アプリケーションの作成時にログ収集を設定しなかった場合は、アプリケーションのデプロイ時に関連する設定を行うことができます。
EDAS console にログオンします。
左側のナビゲーションペインで、 をクリックします。上部のナビゲーションバーで、リージョンを選択します。ページの上部で、名前空間を選択します。[コンテナサービスまたはサーバーレスkubernetesクラスター] を [クラスタタイプ] ドロップダウンリストから選択します。次に、デプロイするアプリケーションを見つけて、アプリケーション名をクリックします。
[概要] または [基本情報] ページで、右上隅にある を選択します。
[デプロイモードの選択] ページで、デプロイモードを選択し、指定されたデプロイモードセクションの右上隅にある [デプロイの開始] をクリックします。
アプリケーション環境とデプロイパッケージ情報を設定します。[詳細設定] ステップで、[ログ収集設定] をクリックし、[SLSへのログ収集を有効にする] をオンにして、ビジネス要件に基づいてパラメータを設定し、[OK] をクリックします。

パラメータ
説明
ログストア名
ログを受信するログストアの名前を入力します。ログストアが存在しない場合は、指定された名前のログストアが作成されます。
収集ログタイプ
[ファイルログ(コンテナ内のログパス)] または [コンテナの標準出力ログ] を選択できます。
収集パス
コンテナ内のログの格納パスを入力します。例:/usr/local/tomcat/logs/catalina.*.log
重要[OK] をクリックすると、アプリケーションが再起動されます。この操作は、オフピーク時に実行することをお勧めします。
指定されたログの格納パスには、ログファイル名が含まれている必要があります。例:/tmp0/cjsc.log。
ログファイルが格納されているディレクトリに他の重要なファイルを格納しないでください。そうしないと、ファイルが上書きされる可能性があります。
結果の確認
アプリケーションがデプロイされると、EDASは設定されたログ収集ルールに基づいてログを収集し、指定されたログストアに配信します。
EDAS console にログオンします。
左側のナビゲーションペインで、 をクリックします。上部のナビゲーションバーで、リージョンを選択します。ページの上部で、名前空間を選択します。[コンテナサービスまたはサーバーレスkubernetesクラスター] を [クラスタタイプ] ドロップダウンリストから選択します。次に、デプロイするアプリケーションを見つけて、アプリケーション名をクリックします。
左側のナビゲーションペインで、[ログ] をクリックします。表示されたページで、[ファイルログ] タブをクリックします。
[ファイルログ] タブで、収集されたログを表示します。特定のログがタブに表示されている場合、設定されたログ収集ルールは有効です。
[アクション] 列の [移動] をクリックして、ログサービスコンソールでログをクエリおよび分析できます。詳細については、「インデックスとクエリ」をご参照ください。
[ログソースの管理] をクリックして、ログ収集ルールを管理することもできます。[ログソースの管理] ダイアログボックスで、[ログストア名] パラメータを変更し、必要に応じてログ収集ルールを作成または削除します。
FAQ
EDASのログ機能はログローテーションをサポートしていますか?
はい。EDASでは、ワイルドカードを使用してログをローテーションできます。
収集するログファイルの名前を指定する必要があります。名前は大文字と小文字が区別され、ワイルドカードを含めることができます。たとえば、
*.logを指定できます。Linuxでサポートされているファイル名ワイルドカードは、アスタリスク(
*)、疑問符(?)、および[...]です。ログをクエリするときにログサービスコンソールにデータが表示されない場合はどうすればよいですか?
ログサービスはデフォルトで過去 15分間のクエリ結果を返し、ログ収集が設定される前に生成されたログは収集しません。ログサービスコンソールにデータが表示されない場合は、webshellを使用してアプリケーションのログが生成されているかどうかを確認することをお勧めします。
ログが生成されている場合は、チケットを送信 してください。
ログが生成されていない場合は、アプリケーションを確認してください。
EDASのACKおよびサーバーレスKubernetesクラスターのDingTalkグループ
EDASでContainer Service for Kubernetes(ACK)およびサーバーレスKubernetesクラスターを使用する際に質問や提案がある場合は、チケット を送信してください。フィードバックを送信するには、DingTalkグループID 23197114 を検索して、DingTalkグループに参加することもできます。