Logtail クライアントは、Log Service ユーザーがコンソールで ECSインスタンスまたはローカルサーバーからログを収集する際に補助します。

前提条件

  • ログを収集する前に Logtail をインストールする必要があります。 Logtail は、Windows および Linux オペレーティングシステムをサポートしています。インストール方法については、Logtail の Linux へのインストールLogtail の Windowsへのインストールを参照してください。

  • ECSインスタンスまたはローカルサーバーからログを収集するには、ポート80と443が開いていることを確認してください。

制限

  • 単一のファイルは、1 つのみの設定で収集できます。 複数の設定を使用してファイルを収集する必要がある場合は、ソフトリンクが推奨されます。 例えば、/home/log/nginx/logの下にあるファイルは、2 つの設定を使用して収集する必要があります。一方は元のパスを設定し、もう一方はフォルダ用に作成されたソフトリンクln -s /home/log/nginx/log /home/log/nginx/link_logを設定します。

  • オペレーティングシステムのバージョンの詳細は概要を参照してください。

  • クラシックネットワークや仮想プライベートクラウド(VPC)、または Log Service プロジェクトの ECS インスタンスは、同一リージョンでなければなりません。 ソースデータがインターネットを通して送信される場合(IDC の使用法と同様)、リージョンサービスのプロジェクトが存在するリージョンをリージョンの説明に基づいて選択できます。

ログ収集の設定プロセス

ログサービスコンソールでは、シンプルモード、デリミタモード、JSON モード、 フルモードなどのモードでテキストログを収集するように Logtail を設定できます。 シンプルモードとフルモードを例に挙げます。 構成の手順は次の通りです。

図 1. 手順


手順

  1. プロジェクト名をクリックしてLogstore リストを開きます。
  2. 対象の Logstore の右側にあるデータ・インポート・ウィザードをクリックします。
  3. データソースを選択します。

    他のソースの下のテキストを選択することで、データソースの設定に入ります。

  4. 設定名を指定します。

    設定名の長さは 3〜63 文字で、小文字、数字、ハイフン(-)、アンダースコア(_)を含めることができます。小文字の英字で開始し、終了する必要があります。

    設定名は、後から変更することはできません。
  5. ログディレクトリとファイル名を指定します。

    ディレクトリ構造は、完全パスまたはワイルドカードを含むパスである必要があります。

    *?のみがディレクトリ内でワイルドカードとして 使用できます。

    ログファイル名は、完全なファイル名またはワイルドカードを含む名前でなければなりません。 ファイル名の規則については、 Wildcard matchingを参照してください。

    ログファイルの検索モードはマルチレベルのディレクトリマッチングモードです。つまり、指定したフォルダ(このフォルダのすべてのサブディレクトリを含む)で、ファイル名検索モードに適合するすべてのファイルがモニターされます。こちらに2つの例があります:

    • /apsara/nuwa/ … /*.Logは接尾辞が.Logで、/apsara/nuwa ディレクトリ(再帰的なサブディレクトリを含む)に存在するファイルを意味します。
    • /var/logs/app_* … /*.Log*.Logを含むファイル名を持ち、app_* 検索モード(再帰的なサブディレクトリを含む)に準拠するすべてのディレクトリに存在するファイルを意味します。/var/logsディレクトリの下にあります。
    1つのファイルは、1つの設定でしか収集できません。
    図 2. ディレクトリとファイル名の指定


  6. 収集モードを設定します。

    Logtail はシンプルモード、デリミタモード、JSON モード、正規表現モード、およびその他のログ収集メソッドをサポートしています。 詳細は収集方法を参照してください。 この例では、シンプルモードと正規表現モードを使用して収集モードの設定を紹介しています。

    • シンプルモード

      シンプルモード、つまりシングルラインモードでは、 デフォルトで 1 行のデータがログとして扱われます。すなわち、2行のログはログファイルの改行で区切られます。 システムはログフィールドを抽出しません(つまり、デフォルトでの正規表現は(.*))。ログ生成時刻として現在のサーバのシステム時刻が使用されます。 より詳細な設定を行うには、設定をフルモードに変更して設定を調整します。 Logtail 設定の変更方法については、Logtail 設定の作成を参照してください。

      シンプルモードで、ファイルディレクトリとファイル名を指定するだけで、 Logtail は行ごとにログを収集します。Logtail はログコンテンツからフィールドを抽出しません。さらに、ログ時間は、ログがキャプチャされた時間に設定されます。

    • モード

      ログコンテンツ(クロスラインログやフィールド抽出など)のパーソナライズされたフィールド抽出設定を設定するには、フルモードを選択します 。 これらのパラメーターの具体的な意味と設定方法の詳細については、概要を参照してください。

      1. Enter ログサンプルを入力します。

        ログサンプルを提供する目的は、ログサービスコンソールがログ内の正規表現モードを自動的に抽出するのを容易にすることを目的としています。 実際の環境からログを使用してください。

      2. Disable シングルラインを無効にします。

        シングルラインモードがデフォルトのオプションです。これは、ログが1行ずつ区切られていることを意味します。 クロスラインログ(Java プログラムログなど)を収集する必要がある場合は、 シングルラインを無効にし、 正規表現を設定する必要があります。

      3. 正規表現を設定します。

        このオプションは、自動生成手動入力という 2 つの機能を提供します。 ログサンプルを入力した後、 自動生成をクリックすると、 正規表現が自動的に生成されます。 失敗した場合は、手動モードに切り替えて正規表現を入力して検証することができます。

      4. フィールドの抽出を設定します。

        ログコンテンツでフィールドを1つずつ分析して処理する必要がある場合は、フィールドの抽出機能を使用して、 指定されたフィールドをキーと値のペアに変換してからサーバーに送信します。 したがって、ログコンテンツ(具体的には正規表現)を解析する方法を指定する必要があります。

        ログサービスコンソールでは、構文解析のための正規表現を2通りの方法で指定できます。 最初のオプションは、簡単な対話を介して正規表現を自動的に生成することです。 抽出するフィールドを示すために、ログサンプルの”ドラッグ選択”メソッドを使用して、” 正規表現の作成 “をクリックすると、ログサービスコンソールが自動的に正規表現を生成します。

        このようにして、自らが書くことなく正規表現を生成することができます。 さらに、手動で正規表現を入力することもできます。 [手動で正規表現入力]をクリックすると、 手動入力モードに切り替えることができます。 式が入力されたら、右側の[検証]をクリックして、 式がサンプルログを解析して抽出できるかどうかを確認します。

        ログ解析の正規表現が自動的に生成されるか手動で入力されるかにかかわらず、抽出された各フィールドに名前を付ける必要があります (つまり、フィールドのキーを設定する必要があります)。

        図 3.

      5. [システム時間を使用] を設定します。

        [システム時間を使用] はデフォルトで設定されています。 無効になっている場合は、フィールド抽出中の時間フィールドとして使用する特定のフィールド(値)を指定し、 このフィールドの名前をtimeとする必要があります。timeフィールドを選択した後、 自動生成時間フォーマット内にあります) をクリックして、このフィールドを解析するメソッドを生成できます。 ログの時刻形式の詳細については、テキストログー 日付形式を参照してください。

  7. 状況に応じて高度なオプションを設定して、次へをクリックします。

    ローカルキャッシュオリジナルログのアップロードトピック生成モードログファイルエンコーディング最大モニタディレクトリの深さタイムアウト、およびフィルター設定を要件に応じて設定します。それ以外の場合は、デフォルトのままにしておきます。

    構成項目 詳細
    ローカルキャッシュ ローカルキャッシュを有効にするかどうかを選択します。 この機能を有効にすると、ログサービスが利用できないときにログがマシンのローカルディレクトリにキャッシュされ、サービスの復旧後にログサービスに引き続き送信されます。 デフォルトでは、最大で1GBのログをキャッシュできます。
    オリジナルログのアップロード オリジナルログをアップロードするかどうかを選択します。有効にすると、デフォルトで新しいフィールドが追加され、オリジナルログがアップロードされます。
    トピック生成モード
    • Null - トピックを生成しない:デフォルトオプションであり、トピックをヌル文字列として設定し、トピックを入力せずにログを照会できることを示します。
    • マシングループのトピック属性:異なるフロントエンドサーバーで生成されたログデータを明確に区別するために使用されます。
    • ファイルパスレギュラー:このオプションを選択すると、正規表現を使用してパスからコンテンツをトピックとして抽出するには、カスタム正規表現を入力する必要があります。 ユーザーとインスタンスによって生成されたログデータを区別するために使用されます。 ユーザーとインスタンスによって生成されたログデータを区別するために使用されます。
    カスタム正規表現 トピック生成モードとしてファイルパスレギュラーを選択すると、カスタム正規表現を入力する必要があります。
    ログファイルエンコーディング
    • utf8: UTF-8エンコーディングを使用。
    • gbk: GBKエンコーディングを使用
    最大モニターディレクトリの深さ ログソースからログを収集するときに監視するディレクトリの最大深度を指定します。要するに、最大でモニターできるログレベルを指定します。 範囲は0~1000で、0を指定した場合は、現行ディレクトリレベルのみをモニターすることになります。
    タイムアウト 指定された時間内に更新がない場合、ログファイルはタイムアウトします。 タイムアウトの次の設定を構成できます。
    • タイムアウトにならない:すべてのログファイルを永続的にモニターし、ログファイルがタイムアウトしないように指定します。
    • 30分のタイムアウト:ログファイルが30分以内に更新がないければタイムアウトになり、モニターされなくなります。
    フィルター構成 フィルター条件に完全に準拠したログのみ、収集できます。
    たとえば:
    • 条件に一致するログを収集します:Key: level Regex:WARNING|ERRORは、レベルがWARNINGまたはERRORのログのみを収集することを示します。
    • 条件に適合しないログをフィルターします
      • Key:level Regex:^(?!. *(INFO|DEBUG))、INFOまたはDEBUGレベルのログを収集しないことを示します。
      • Key:url Regex:. *^(?!.*(healthcheck)). *、urlにヘルスチェックを含むログをフィルターすることを示します。 keyがurlでvalueが/inner/healthcheck/jiankong.htmlのログなどは収集されません。
    同様の事例についてはregex-exclude-wordregex-exclude-patternを参照してください。
  8. 設定が完了したら、次へをクリックします。
    マシングループを作成していなければ、1つを作成する必要があります。 マシングループの作成方法は、「マシングループの作成」 Logtail マシングループの作成を参照してください。
    • Logtail 設定が有効になるまでには最大3分かかります。
    • IISアクセスログを収集するには、Logstash を使用した IIS ログの収集を参照してください・
    • Logtail 設定を作成後、Logtail 設定リストを表示したり、Logtail 設定を変更したり、Logtail 設定を削除することができます。 詳細は、Logtail 設定の作成を参照してください。
    図 4. マシングループに設定の適用


    ログサービスは、設定が完了するとログを収集し始めます。

その他の操作

上記の設定が完了すると、ページの指示どおりに検索、分析、ビジュアライゼーションシッパーとETLを設定することができます。

シンプルモードで Log Service に収集されたログは次のとおりです。 すべてのログの内容は、 contentという名前のキーの下に表示されます。

図 5. プレビュー

フルモードでログサービスに収集されたログは、次のとおりです。 設定されたキー値に従って、各ログの内容がログサービスに収集されます。

図 6. プレビュー


設定項目をログに記録

Logtail を設定するときは、設定項目を完了する必要があります。 一般的に使用される構成項目の説明と制限は次のとおりです。

構成項目 説明
ログパス ログ監視ディレクトリとログファイル名がマシン上のファイルと一致することを確認してください。 ディレクトリはファジー一致をサポートしておらず、絶対パスに設定する必要がありますが、ログファイル名はファジー一致をサポートしています。 ワイルドカードを含むパスは、複数のレベルのディレクトリと一致する可能性があります、つまり、指定されたフォルダ(すべてのレベルのディレクトリを含む)の下の、ファイル名に適合するすべてのファイルを監視することができます。
ログファイル名 収集されたログ・ファイルの名前を示します。名前は大文字と小文字を区別し、*.logのようにワイルドカードを含むことがあります。 Linuxのファイル名ワイルドカードには、\*、 ?、[…]があります。
ローカルストレージ 短期間のネットワーク中断のために送信できないログをローカルキャッシュに一時的に保存するかどうかを指定します。
First-line log header 正規表現による複数行ログの開始行を示します。 複数行のログ収集(たとえば、スタック情報を持つアプリケーションログ)では、個々のログを区切るために行を使用することはできません。 この場合、複数行ログの開始行を指定する必要があります。 この行が検出されると、最後のログが終了し、新しいログが開始されたことを示します。 そのため、開始ヘッダーに一致するルール、つまり正規表現を指定する必要があります。
ログ解析式 ログ情報を抽出し、Log Serviceでサポートされているログ形式に変換する方法を示します。 必要なログフィールドを抽出し、各フィールドに名前を付けるには、正規表現を指定する必要があります。
ログ時刻形式 ログデータのタイムスタンプ文字列の時刻形式を解析する方法を定義します。 詳細はテキストログー 日付形式を参照してください。

ログの書き込み方法

ログを収集するために Logtail を使用することに加えて、Log Service はログを書くのに役立つAPIとSDKも提供します。

  • API を使用してログを書き込む

    ログサービスには、ログを書き込むのに役立つ RESTful API が用意されています。 PostLogStoreLogs インターフェイスを PutLogStoreLogs 使用してデータを書き込むことができます。 完全な API リファレンスについては、Overviewを参照してください。

  • SDK を使用してログを書き込む

    ログサービスは、API に加えて、複数の言語(Java、.NET、PHP、およびPython)で SDK を提供しているため、簡単にログを書き込むことができます。 SDK リファレンスについては、SDKリファレンス を参照してください 概要