Anypoint Monitoring のログ

Runtime Manager​ を使用したログの記録に加え、Anypoint Monitoring でログファイルが集約されるため、ログの管理、検索、絞り込み、分析を行うことができます。集約されたログを監視と併用して、迅速な問題の特定と障害の調査に役立てることができます。これらの機能では次の操作がサポートされます。

  • 選択された Mule アプリケーションと環境の検索に基づいてイベントおよび情報パターンの比較分析と識別を行う。

  • Mule アプリケーションの特定のワーカー (またはワーカーのセット) のログ内を検索して確認する問題のスコープを狭める。

  • 重要なログのスナップショットを問題の原因に取り組む開発者と共有する。

カスタマイズされたログを使用するオンプレミスサーバーの場合:

(​log4j2.xml​ ファイルのパターンレイアウトの変更により) カスタマイズされたログを使用するアプリケーションで生成されたログは、Anypoint Monitoring に正しくインデックス付けされない場合があります。正しくインデックス付けするには、Mule のデフォルトパターンレイアウト (次のいずれか) を使用します。

  • <PatternLayout pattern="%-5p %d [%t] [event: %X{correlationId}] %c: %m%n" />​、または

  • <PatternLayout pattern="%d [%t] %-5p %c - %m%n" />

カスタマイズされたタイムゾーンを使用して Cloudhub および Anypoint Runtime Fabric にデプロイされたアプリケーションの場合:

カスタマイズされたタイムゾーンを使用して Cloudhub および Anypoint Runtime Fabric にデプロイされたアプリケーションでは、デフォルトの JVM タイムゾーンを上書きしないでください。タイムゾーンは UTC である必要があります。タイムゾーンをローカルタイムゾーンに変更すると、Anypoint Monitoring では誤ったタイムスタンプでログがインデックス付けされます。

検索ログ

Anypoint Monitoring の左側のメニューで ​[Log Search (ログ検索)]​ をクリックします。ログ検索ページでは、いくつかの異なる方法でログのテキストを検索できます。検索項目に検索クエリを入力する方法、UI を使用して検索条件を追加する方法、クエリを作成する方法があります。

Flex Gateway でデプロイされた API のログを検索する場合は、​[Application (アプリケーション)]​ 検索条件を使用します。インスタンスの識別には ​[App ID (アプリケーション ID)]​ 項目を使用します。

ログ検索クエリ

ログを検索するには、検索クエリをログ検索項目に入力し、​Enter​ キーを押します。

検索する語を正確に指定します。たとえば、不正な要求を見つけるには「​"code 400"​」と入力します。複数単語の 完全一致を見つけるには、検索語を引用符で 囲みます。

"code 400"​ の検索結果の例:

ログ検索

正確な語がわからない場合は、検索にアスタリスクワイルドカードを使用します。

ワイルドカード検索 ​payload=org.glassfish.grizzly*​ の結果の例:

ワイルドカードを使用したログ検索

検索条件の追加

事前定義された項目、演算子、および値を使用してログを検索するための検索条件を作成できます。

  1. [+Add a filter (+検索条件を追加)]​ をクリックします。

  2. ドロップダウンリストから事前定義された項目を選択します。

    • application

    • class

    • environment

    • environment type

    • log level

    • logger

    • message

    • thread

    • timestamp

    • worker

  3. ドロップダウンリストから演算子を選択します。
    使用可能な演算子は、選択した項目に応じて変化します。
    演算子を選択すると、値が必須の場合は、​[Value (値)]​ ボックスが右側に表示されます。

  4. 該当する場合は、値を入力します。
    次の画像は、検索条件を使用して、タイムスタンプが指定された日付の範囲内であるログをすべて検索する例を示します。

    検索条件クエリの使用

    「​検索条件​」と「​演算子​」を参照してください。

  5. (省略可能) ​[Label (表示ラベル)]​ に値を入力します。

  6. [Save (保存)]​ をクリックします。
    [+Add a filter (+検索条件を追加)]​ の右に検索条件が表示されます。

NOTE: [Application (アプリケーション)]​ 検索条件を使用すると、結果には Flex Gateway でデプロイされた API が含まれます。

検索クエリ

検索クエリをクエリ DSL に変換する手順は、次のとおりです。

  1. [+Add a filter (+検索条件を追加)]​ をクリックします。

  2. [Edit Query DSL (クエリ DSL を編集)]​ をクリックします。

  3. クエリを入力し、​[Save (保存)]​ をクリックします。
    次の例は、「INFO」という log-level を検索するクエリを示します。

    {
      "query": {
        "match": {
          "log-level": {
            "query": "INFO",
            "type": "phrase"
          }
        }
      }
    }

    検索クエリ UI には、クエリのドキュメントへのリンクがあるため、より複雑なクエリを実行できます。

    次の例は、複雑なクエリを示します。

{
  "query": {
    "range": {
      "workerId": {
        "gte": 0,
        "lte": 20
      }
    }
  }
}
複雑な検索クエリには、検索条件と値を指定する UI に同等の機能がないことがあります。そうしたクエリはクエリ UI で作成および表示するしかありません。

ログデータの表示

デフォルトでは、ログ検索結果内のログエントリは簡略化されています。ログメッセージと詳細をテーブルまたは JSON 形式に展開して表示できます。

ログメッセージを展開する方法

表形式ログ

次の例は、テーブルとして展開されたログエントリを示します。テーブルには、[Quick Filter (簡易検索条件)] リストに表示されるログ検索条件項目が含まれます。

application	      test40x.us-e1.qax.cloudhub.io
class	            qtp437897409-31
environment	      Sandbox
environment type	%{[fields][env_type]}
log level	        ERROR
logger            DefaultMessagingExceptionStrategy
message
                  ****************************************************
                  Message               : No record could be found in payload or in flow variable BATCH_RECORD (java.lang.IllegalStateException).
                  Element               : null
                  ----------------------------------------------------
                  Exception stack is:
                  No record could be found in payload or in flow variable BATCH_RECORD (java.lang.IllegalStateException). (org.mule.api.transformer....
                  (72 more...)

                  (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
                  ****************************************************
timestamp         April 25th 2018, 17:09:53.517
worker            0

JSON 形式のログ

次の例は、JSON 形式で展開されたログエントリを示します。

{
  "_version": 1,
  "_source": {
    "class": "qtp437897409-31",
    "logger": "DefaultMessagingExceptionStrategy",
    "_ending": 0,
    "timestamp": "2018-04-26T00:09:53.517Z",
    "message": ".Example***
    .ExampleMessage: No record could be found in payload or in flow variable
    BATCH_RECORD (java.lang.IllegalStateException)..ExampleElement...",
    "log level": "ERROR",
    "worker": "0",
    "environment": "Sandbox",
    "environment type": "sandbox",
    "application": "test40x.us-e1.qax.cloudhub.io"
  },
  "fields": {
    "timestamp": [
      "2018-04-26T00:09:53.517Z"
    ]
  },
  "highlight": {
    "orgId": [
      "@kibana-highlighted-field@6046b96d@/..."
    ]
  },
  "sort": [
    1524701393517
  ]
}

専用ページでのログ完全表示

特定の問題に関するログが見つかったら、(簡易検索条件、検索項目、検索条件タグのない) 専用ページで完全なログを表示できます。ログは表形式または JSON 形式で表示できます。

  1. 選択したログから、​[View This Log (このログを表示)]​ をクリックします。

    View This Log (このログを表示)
  2. 表形式または JSON 形式で展開されたログを表示します。

    展開されたログを表示

前後のログの表示

特定の問題に関するログを見つけた後、その前後にある他のログレポートを調べることがあります。

  1. 選択したログから、​[View Surrounding Logs (前後のログを表示)]​ をクリックします。

    [View Surrounding Logs (前後のログを表示)] タブ
  2. 選択したログの前後から指定件数のログを読み込むか、デフォルトを使用します。

    前後のログの表示

デフォルト設定は次のとおりです。

  • Load 5 more​ newer logs (以降のログをさらに 5 件読み込む)

  • Load 5 more​ older logs (以前のログをさらに 5 件読み込む)

事前定義された検索条件の使用

[Quick Filters (簡易検索条件)]​ リストが開いている場合、事前定義されたログ検索条件を選択して使用できます。

各結果グループごとに、​[Quick Filters (簡易検索条件)]​ リストには、最新の 500 件のログエントリの最初の 5 個の結果が表示されます。500 件を超えるエントリがある場合や、上位 5 個の値が合計値の 100% を表していない場合は、結果グループごとに ​[See More (表示を増やす)]​ リンクが表示されます。​[See More (表示を増やす)]​ をクリックすると、​[Add a Filter (検索条件を追加)]​ ボックスが開き、ここでパラメーターを設定して結果をさらに絞り込むことができます。

事前定義された検索条件の次の例では、ERROR ログレベルを選択しています。

事前定義されたログ検索条件

[Quick Filter (簡易検索条件)] リストから事前定義された検索条件を選択すると、 ページ最上部近くの ​[Add a Filter (検索条件を追加)]​ の横に表示されます。

検索条件のアクション

検索条件にカーソルを置くと、次のアクションを選択できます。

  • Enable/Disable (有効化/無効化)​ - 検索条件を有効化または無効化します。無効化された検索条件はグレー表示されます。

  • Pin/Unpin (固定/固定解除)​ - 検索条件を固定または固定解除します。

  • Invert (反転)​ - 検索条件の操作を変更します。たとえば、検索が ​log level IS ERROR​ の場合、 反転後は ​log level IS NOT ERROR​ になります。

  • Remove (削除)​ - 検索条件を削除します。

  • Edit (編集)​ - 検索条件設定を変更します。

ログへの検索条件列の追加

[Quick Filters (簡易検索条件)] リストから、ログ結果の列の追加や削除ができます。たとえば、[Log Level (ログレベル)]、[Timestamp (タイムスタンプ)] または [Environment (環境)] 項目を追加することもできます。

検索条件項目の列アイコンを次のようにクリックします。

検索条件列をログに追加する方法

ログに次のような [​log-level​ (ログレベル)] 列が作成されます。

ログの検索条件列

検索条件列を削除するには、検索条件項目の列アイコンを 次のようにクリックします。

ログから検索条件列を削除する方法

列にカーソルを置いたときに表示される ​[X] アイコン​を使用して削除することもできます。

検索条件列の移動

ログ結果の検索条件列を左または右に移動するには、列ヘッダーにカーソルを置いて矢印アイコンを使用します。

ログから検索条件列を削除する方法

検索条件

事前定義された検索条件または作成した検索条件を使用します。

検索条件 説明

application

CloudHub の Mule アプリケーションのフルドメイン。

am-flights.us-e2.stgx.cloudhub.io

class

ログを生成する Java クラス。

[am-flights].am-flights-api-httpListenerConfig.worker.34

environment

CloudHub 環境名。

myEnv

environment type

CloudHub 環境種別

Sandbox​、​Design​、​Production

log level

ALL、DEBUG、ERROR、FATAL、INFO、OFF、TRACE、WARN

INFO

logger

Log4J ロガークラス

HttpListenerRegistry

message

Log4J メッセージ

No listener found for request: (POST)/zaraza

timestamp

ログのタイムスタンプ。有効な形式: MMM dd yyyy, HH:mm:ss.SSS

サポートされる時間設定は、​s​ (秒)、​m​ (分)、​h​ (時間)、 ​d​ (日)、​w​ (週)、​M​ (月)、​y​ (年)。​now​ は相対時刻で 次のように使用します。

  • 過去 5 分間: now-5m

  • 本日現在まで: now/d

  • 今週: now/w

  • 今週初から現在まで: now/w

  • 前月: now-1M/M

worker

CloudHub ワーカー ID。

0​、​1

演算子

検索条件の作成時には次の演算子を使用できます。例: log-level IS

is

すべての検索条件に使用できます。

is not

すべての検索条件に使用できます。

is between

timestamp​ に使用できます。

is not between

timestamp​ に使用できます。

exists

すべての検索条件に使用できます。

does not exist

すべての検索条件に使用できます。

ログ項目値全体に基づく絞り込み

結果のログでじょうご型アイコンを使用して、ログ項目値全体に対する検索条件を作成または削除できます。

ログメッセージ検索条件の作成

作成した検索条件は、ページ上部の検索条件領域に検索条件タグとして表示されます。

ログメッセージ検索条件タグ

その検索条件は他の検索条件と同様に編集や使用ができます。「​検索条件​」を参照してください。

ログの共有

ログへの URL を共有できます。

  1. ログから、画面右上にある 3 つの縦ドットをクリックします。

    ログの共有
  2. [Share (共有)]​ を選択してログページの URL を ​[Share Logs Search Link (ログ検索リンクを共有)]​ 項目に読み込みます。

    ログリンクを共有
  3. [Copy (コピー)]​ をクリックします。

ログ検索の保存と保存したログ検索の表示

ログ検索を保存して表示します。

  1. [Save Search (検索を保存)]​ をクリックします。

  2. [View saved searches (保存した検索を表示)]​ を選択します。

  3. [View Saved Searches (保存した検索を表示)]​ を再度クリックして、メインのログページに戻ります。

ログ検索の保存メニュー
保存したログ検索を表示

検索のクリア

「​ログ検索の保存と保存したログ検索の表示​」と同じメニューから現在の検索をクリアできます。

  1. [Save Search (検索を保存)]​ をクリックします。

  2. [Clear Current Search (現在の検索をクリア)]​ を選択します。

関連情報