Log Service は、操作ログ機能を提供します。これによって、Log Service の使用状況をリアルタイムで把握し、O&M 効率を改善させることができます。

操作ログ機能の有効化

操作ログは、詳細なログと重要なログ (Logtail 関連のログ、使用者グループ待ち時間ログ、メータリングログ) に分かれています。それぞれは、internal-operation_log と internal-diagnostic_log に保存されます。 internal-diagnostic_log の Logstore は課金されませんが、internal-operation_log の Logstore は、一般的な Logstore として課金されます。 詳細なログには、ユーザーの各操作や API リクエストが記録されます。 複数の読み取りや書き込みリクエストがある場合、複数の操作ログが生成されます。必要に応じて、操作ログ機能を有効にします。Log Storage では、自動生成 (推奨) を選択することを推奨します。 この場合、同じリージョンにある操作ログを同じプロジェクトへ保存することができるため、ログ管理や統計が容易になります。

Logtail ハートビートのモニタリング

Logtail をインストールした後、操作ログにある「ステータスログ」を使って、Logtail の動作ステータスを確認します。

Logtail ステータスログは、internal-diagnostic_log の Logstore に保存されます。 internal-diagnostic_log ページでは、クエリステートメント __topic__: logtail_status を実行して、Logtail ステータスログを検索します。 直近の期間中のマシン数を取得し、Logtail アプリケーションマシングループのマシン数と比較します。 さらに、アラートルールを設定します。 たとえば、カウント数がマシングループ内のマシン数よりも少ない場合、アラートがトリガーされます。
  • クエリステートメント
    __topic__: logtail_status | SELECT COUNT(DISTINCT ip) as ip_count
  • クエリのスナップショットクエリと分析
  • アラートルールの設定 (マシングループ内のマシン数が 100 であると想定)アラートルールの作成
アラートがトリガーされた場合、コンソールを開いて、マシングループのステータスを表示し、マシンのハートビート情報を確認します。

メータリングデータの表示

Log Service へログを書き込んだ後、ログトラフィック、読み取りや書き込み時間、ストレージ領域などのメータリングデータを確認し、Log Service の使用状況と課金項目の詳細を確認します。

Logstore は、1 時間ごとのメータリングログを生成します。これには、統計期間内の読み取り / 書き込みトラフィックや時間、現時点での未処理ログやインデックスのストレージサイズが含まれます。 メータリングログのフィールドに関する詳細については、「ログの種類」をご参照ください。 Log Service のメータリングログは、internal-diagnostic_log の Logstore に保存されます。 internal-diagnostic_log ページでは、クエリステートメント __topic__: metering を実行して、メータリングログを検索します。

max_by 関数を使用して、各 Logstore のストレージサイズを計算します。
__topic__: metering | SELECT max_by(storage_index+storage_raw, __time__) as total_storage, project, logstore GROUP BY project, logstore
操作ログのデフォルトダッシュボードには、豊富なメータリングロググラフが用意されています。 詳細については、「サービスログダッシュボード」をご参照ください。

使用者グループの待ち時間の表示

ログが Log Service に書き込まれた後、ログの照会や分析に加えて、ログを使用することができます。 Log Service では、使用者グループが複数のプログラム言語によってサポートされています。

ログを使用する際に使用者グループを使用する場合、使用ログの待ち時間は、最も懸念される問題の 1 つです。 使用待ち時間をモニタリングすることで、使用進捗状況を把握することができます。 待ち時間が長い場合、使用者数を変更して使用速度を調整します。

操作ログの一種として、使用者グループの待ち時間ログは、internal-diagnostic_log の Logstore へ保存され、2 分ごとに生成されます。 internal-diagnostic_log ページでは、クエリステートメント__topic__: consumergroup_log を実行して、すべての使用者グループの待ち時間ログを検索します。

使用者グループ test-consumer-group の使用待ち時間のクエリ

Logtail の例外のモニタリング

Logtail を適切に実行することで、ログの整合性が保証されます。 Logtail の例外が見つかった場合、Logtail の設定を調整して、ログの欠落を回避します。

クエリステートメント __topic__: logtail_alarm を実行して、Logtail の例外ログを検索します。

15 分以内に発生した各タイプの例外数を紹介します。
__topic__: logtail_alarm | select sum(alarm_count)as errorCount, alarm_type  GROUP BY alarm_type

Logstore へ書き込むデータトラフィックのモニタリング

メータリングログを使って、1 時間以内の読み取り / 書き込みトラフィックに関する情報を取得します。 ただし、15 分など、より短い時間内の情報を取得する場合は、操作ログが必要となります。 ユーザーの各操作は、リクエストに対応しています。 各リクエストは、操作ログを生成します。 たとえば、15 分以内の書き込み操作の合計トラフィックを照会することができます。
  1. 15 分以内に Logstore に書き込まれた生ログと圧縮ログを照会します。
    Method: PostLogStoreLogs AND Project: my-project and LogStore: my-logstore | SELECT sum(InFlow) as raw_bytes, sum(NetInflow) as network_bytes
  2. 15 分以内に Logstore に書き込まれたログのトラフィック減少率を照会します。
    Method: PostLogStoreLogs AND Project: my-project and LogStore: my-logstore | select round((diff[1]-diff[2])/diff[1],2) as rate from (select compare(network_bytes, 900) as diff from (select sum(NetInflow) as network_bytes from log))
  3. アラートを作成します。
    Logstore に書き込まれたログのトラフィック減少率が 50% を超えたときにアラートがトリガーされるようにアラートルールを設定します。アラートを作成します。

操作ログの監査

プロジェクトにあるすべてのリソースの操作ログは、internal-operation_log の Logstore に保存されます。 ログには操作情報が記録されます。たとえば、マシングループを作成した際、マシングループの名前が記録されます。Logstore を操作すると Logstore の名前が記録されます。 さらに、ログは、操作を行ったユーザーの情報も記録します。 現在、ユーザー情報には、次の表に示す 3 つのタイプが含まれます。
タイプ フィールド
Alibaba Cloud アカウント
  • [InvokerUid]: Alibaba Cloud アカウントの AliUid
  • [CallerType]: 親アカウント
RAM ユーザー
  • [InvokerUid]: RAM ユーザーの AliUid
  • [CallerType]: サブユーザーアカウント
STS
  • [InvokerUid]: Alibaba Cloud アカウントの AliUid
  • [CallerType]: STS
  • [RoleSessionName]: セッションの名前
次のテーブルに基づいて、操作ログに対応するユーザー情報を取得します。