ログタイプの追加

ログタイプはアプリケーションの書き込みログのフォーマットを定義します。
Site24x7では多くのログタイプをデフォルトでサポートしています。アプリケーションログを有効化し、ログプロファイルを作成します。
ログタイプを関連付けることでログの収集、解析、管理が始められます。Site24x7のデフォルトのログタイプに加えて、カスタムログタイプを作成することもできます。

目次

カスタムログタイプの追加

ログタイプを作成し、ログプロファイルに関連付ける方法についての動画はこちらです:

ご利用のログタイプがサポートされているログタイプの一覧にない場合、カスタムログタイプを作成して定義できます。

  1. Site24x7アカウントにログインします。
  2. [管理][AppLogs][ログタイプ]に移動します。次に、[ログタイプの追加]をクリックします。
  3. 表示名:表示名を入力します。
  4. 最大アップロード上限: 現在の請求サイクル中にアップロードできるこのログタイプの最大ログ量です。この項目は、ログ管理アドオンを購入したユーザーにのみ表示されます。
  5. 検索保持期間(日):ログを保持するために、定義済みの検索保持期間(日)オプションである、7、15、30、60、または90から選択できます。この設定は、収集されたログデータがSite24x7に保存され、検索可能になる日数を指定します。デフォルト値は7日間です。詳細はこちら
  6. ストレージ保持期間:[アドオンの購入]をクリックすると、各ログタイプに特定のストレージ保持期間を有効にできます。6か月、1年、2年、3年、4年、および5年から選択できます。この設定は、収集されたログデータがSite24x7に保存される期間を決定します。

    デフォルトのストレージ保持期間は、日数で設定された検索保持期間になります。 

  7. 自動ディスカバリー:[有効化]に切り替えると、このログタイプに関連付けられた新しいサーバー全体でこのログ形式を自動的に検索し、アップロードを開始します。
  8. サンプルログ: ログパターンを検出するために、サンプルのログ行を提供します。プラスアイコン + をクリックして、複数のログを追加します。AppLogsは、単一のログタイプで異なるログパターンを組み合わせるための複数のログパターンを提供します。 AppLogsは、複数行JSONキーバリューXML形式のログもサポートしています。
  9. ログパターン: ログパターンは、Site24x7がログをパースする形式です。これは要件に応じてカスタマイズできます。デフォルトで生成されたパターンでログタイプを送信することもできます。ログタイプを送信すると、当社のチームが検証し、正しいログパターンでログタイプを更新します。

    AgentDateTimeを使用してデフォルトのパターンでログタイプを送信すると、保存後にメッセージが表示されます。ログ行に有効な日時の値がない場合、日付形式としてAgentDateTimeを使用します。これは、ログ行に当社のエージェントがログを読み取った時刻が表示されることを意味します。

    デフォルトのAgentDateTimeでログタイプが作成されるたびに、当社のチームがそれが有効かどうかを検証します。無効な場合、ログパターンは正しい日時形式で更新されます。

    ログに有効な日時形式がある場合は、日付項目の定義セクションを参照して、正しい日付項目を設定してください。

    一部のサンプルログでは、ログパターンが識別され、デフォルトで生成されます。その場合、デフォルトの名前を関連する項目名に置き換えてください。ログパターンを定義して、カスタムログパターンを作成できます。
    10. パターンを定義し、名前を入力したら、チェックアイコン チェック をクリックしてパターンを保存します。クイックヘルプアイコン クイックヘルプ をクリックして、ログパターンのヘルプを表示することもできます。
    ログパターンの作成についてサポートが必要な場合は、設定したいサンプルログ行を添えて、サポート窓口までお問い合わせください。

    利用可能なログ項目設定と機能については、このドキュメントの項目設定の更新ソースでのログ行のフィルター、および派生フィールドのサポートのセクションを参照してください。

  10. HTTPSエンドポイント経由でログを送信する場合は、[APIアップロード]を有効にします。
  11. [保存してログプロファイルに進む]をクリックします
    1. すでにログプロファイルを作成済みで、ログタイプを編集中である場合は、単に[保存]をクリックできます。

AppLogs検索で収集したログの検索を開始できます。新しく作成したログタイプを入力し、項目エクスプローラーまたはクエリー言語を利用して検索を絞り込みます。

ログパターンの定義

各項目名は$で囲む必要があります(例:$Message$)。次の構文を使用して、カスタムログパターンを指定できます。

$FieldName:DataType:Format$
属性 説明
項目名 属性の説明を入力します。
データタイプ 項目名に関連付けられたデータタイプです。
項目名には次のデータタイプを指定できます。
- Number
- String
- Date
- Decimal
- IP (IPv4 or IPv6)
- Word
- Config
- Pattern
- JSON object
- JSON array
フォーマット "Date"データタイプのみ必要です。その他のデータタイプについてはフォーマットに追加する必要はありません。
  • Number項目の定義

    ($FieldName:Number$)
    Numberは項目名と関連付ける値のデータタイプです。
  • String項目の定義

    ($FieldName$)または($FieldName:String$)
    Stringは項目名と関連付けるテキストです。
  • Date項目の定義

    ($FieldName:Date:Format$)
    FieldNameは変数名を定義し、Dateは変数のデータタイプを定義します。Dateの変数は下記のフォーマットで定義する必要があります。
    $DateTime:date:EEEE MMM dd HH:MM:SS:SSS$
    例として、次のようなものがあります。
    日付項目 サンプルログ ログパターン
    Tuesday Sep 19 13:34:56.123 2007 - フォーマット: EEEE MMM dd HH:mm:ss:SSS yyyy Tuesday Sep 19 13:34:56.123 2007 Starting App Server $Datetime:date:EEEEE MMM dd HH:mm:ss.SSS yyyy$ $message$
    Sep 19 2007 13:34:56 123456 PST
    フォーマット: MMM dd yyyy HH:mm:ss SSSSS z
    Sep 19 2007 13:34:56:123456 PST Starting App Server $Datetime:date:MMM dd yyyy HH:mm:ss:SSSSS z$ $message$
    19-09-07 1:34:56 pm -0800
    フォーマット: yy-MM-dd hh:mm:ss a Z
    19-09-07 1:34:56 pm -0800 Starting App Server $Datetime:date:yy-MM-dd hh:mm:ss a Z$ $message$
    13:34:56,262
    フォーマット: HH:mm:ss,D
    13:34:56,262 Starting App Server $Datetime:date:HH:mm:ss,D$ $message$
    Tue September 19 13:34:56
    フォーマット: EEE MMMM dd HH:mm:ss
    Tue September 19 13:34:56 Starting App Server $Datetime:date:EEE MMMM dd HH:mm:ss$ $message$
    UNIX時間(秒単位)の場合、フォーマットは"$DateTime:date:unix$"を指定してください。 1190234095 Starting App Server $Datetime:date:unix$ $message$

    サポートしている日付フォーマット:

    フォーマットの要件 日付フォーマット
    年 - 2桁 yy (または) y 17 or 7
    年 - 4桁 yyyy 2017
    月 - 2桁 MM 07
    月 - 3桁 MMM Sep
    完全な月名 MMMM September
    日付 dd 19
    時間(0-12) hh 1
    時間(0-23) HH 13
    mm 34
    ss 56
    ミリ秒 SSS 123
    タイムゾーン(+0800 +1100)
    タイムゾーン(-0800 または PST)
    Z
    z
    -0800
    PST
    年単位の日数 D 262
    曜日 - 3文字 EEE Tue
    完全な曜日 EEEE Tuesday
    AM/PM/am/pm a pm
    Unix時間 - エポックからの秒数 unix 1190234095
    Unix時間 - エポックからのミリ秒 unixm 1190234095123

    フォルダーやファイル名から日付の値の取得

    フォルダー名には年、月、日にちが記載されます。時、分、秒の値はログ行の末尾にのみ記載されます。

    $DateTime:date:@folder(yyyy-MM-dd)HH:mm:ss$ $
    $DateTime:date:@file(yyyy-MM-dd)HH:mm:ss$ $
    $DateTime:date:@filepath(yyyy-MM-dd)HH:mm:ss$ $

    例:
    サンプルログ

    11:10:11 CassandraDaemon:init Logging initialized
    11:10:12 YamlConfigurationLoader:load Loading settings from file
    11:10:13 DatabaseDescriptor:data Data files directories

    ログパターン
    $DateTime:date:@folder(yyyy-MM-dd)HH:mm:ss$ $ClassName$:$Method$ $Message$

    ファイル名: D:\MyWebApp\2020-01-15\process.log

    日付の値がログファイルの親フォルダーにある場合、ログパターン内に@folderを入力します。

    日付値を含めないログ収集

    ログ行に日付値を含めず時間項目のみを記載したい場合、次の日付パターンを入力してください。

    サンプルログ

    11:10:11 CassandraDaemon:init Logging initialized
    11:10:12 YamlConfigurationLoader:load Loading settings from file
    11:10:13 DatabaseDescriptor:data Data files directories

    ログパターン
    $DateTime:date:@filedate(yyyy-MM-dd)HH:mm:ss$ $ClassName$:$Method$ $Message$

    @filedateには、ファイルの最終修正日が取得されます。

    日時値を含めないログ収集

    ログ行に時間と日付の値を含めない場合、次の日付パターンを入力してください。

    サンプルログ

    CassandraDaemon:init Logging initialized
    YamlConfigurationLoader:load Loading settings from file
    DatabaseDescriptor:data Data files directories

    ログパターン
    $DateTime:date:agent_time$ $ClassName$:$Method$ $Message$

    agent_timeには、エージェントがインストールされているマシンのログ読み取り時間が記載されます。

    異なる言語での日付値の解析

    次のログ列にポルトガル語の日付値が含まれているとします。

    サンプルログ
    Log Entry: 00:00:07 quinta-feira, 10 outubro 2019 Iniciando recebimento de mensagem
    Log Entry: 00:00:07 quinta-feira, 10 outubro 2019 Buscando mensagems na fila Quantidade=0
    Log Entry: 00:00:08 quinta-feira, 10 outubro 2019 Sucesso ao buscar quantidade: CM_OK

    ログパターン
    Log Entry: $DateTime:date:pt(HH:mm:ss EEEE, dd MMMM yyyy)$ $Message$
    "pt" はポルトガル語を意味します。

    他言語のコードはこちらのページをご確認ください。

  • Decimal項目の定義
    ($FieldName:Decimal$)
    Decimalは項目名に関連付けられている値を意味します。
    例:165.5
  • IP項目の定義
    ($FieldName:ip$)
    IP項目名に関連付けられている値を意味します。IPv4およびIPv6の両方を使用できます。
    例:192.0.2.1, 2001:0db8:85a3:0:0:8a2e:0370:7334
  • Word項目の定義
    ($Filename:word$)
    Word項目名に関連付けられている値を意味します。WordはStringのサブセットですが、項目に1つだけWordを含める必要があります。一つ以上のWordが存在する場合、Stringとして定義する必要があります。
  • Config項目の定義
    ($FileName:config:@file$)
    ここでの@fileが項目名に関連付けられているコンフィグタイプです。
    例:@folder, @file, @ip, @host

    ($FieldName:config:@filepath$)
    例: C:\Program Files\cassandra\logs\server.log
    ファイルパスを入力すると、Site24x7のアプリケーションログが完全なファイルパスを取得し項目に挿入します。
    特定のフォルダーに追加したい場合(例ではCassandra)、次のように項目を定義します。
    $FieldName:config:@filepath:2$
  • パターン項目の定義
  • このデータタイプはJSONファイルに対して使用し、同じログ内のJSONオブジェクト値のパターン定義を行います。
    パターン1:
    json $log:pattern:$RemoteHost$ $RemoteLogName$ $RemoteUser$ [$DateTimefield:date:dd/EEE/yyyy:HH:mm:ss$] $Method$ $RequestURI$ $Protocol$ $Status:number$ $ResponseSize:number$ $Referer$ $UserAgent$$ $stream$ $time$

    上記はデータタイプパターン項目内のデータ項目です。

    パターン2:
    json $log:pattern:$RemoteHost$ $RemoteLogName$ $RemoteUser$ [$DateTimefield$] $Method$ $RequestURI$ $Protocol$ $Status:number$ $ResponseSize:number$ $Referer$ $UserAgent$$ $stream$ $time:date:yyyy-mm-dd'T'HH:mm:ss.SSS'Z'$

    上記はデータタイプパターン項目外のデータ項目です。

    サンプルログ:

    {"log":"172.21.163.159 - - [27/Jul/2020:19:53:11] GET /test.txt HTTP/1.1 200 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36","stream":"stdout","time":"2020-07-28T11:29:54.295671087Z"}
    {"log":"172.21.163.159 - - [27/Jul/2020:19:53:11] GET /test.txt HTTP/1.1 200 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36","stream":"stdout","time":"2020-07-28T11:29:54.295671087Z"}
    {"log":"172.21.163.159 - - [27/Jul/2020:19:53:11] GET /test.txt HTTP/1.1 200 12 - Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36","stream":"stdout","time":"2020-07-28T11:29:54.295671087Z"}

  • JSONオブジェクトの定義
  • ($FieldName:json-object$)

    このデータ型はJSONログ専用です。

    json $widgetId:number$ $name$ $description$ $params:json-object$ $version$ $timestamp:date:yyyy-MM-dd HH:mm:ss$

    ここで、json-objectは、paramsフィールド名に関連付けられた値のデータ型です。 

    サンプルログ:
    {"timestamp":"2024-02-12 12:12:12","name":"Request Count of Sample App","widgetId":12,"description":"Event description","params":{"selected":212,"period":0},"version":"0.1"}

  • JSONアレイの定義
  • ($FieldName:json-array:($FirstKey$ $SecondKey$ $ThirdKey$)$)

    このデータ型はJSONログ専用です。

    json $routePlannerRouteId$ $routeDate:date:yyyy-MM-dd'T'HH:mm:ss$ $routeId$ $regionId$ $oprCode$ $stopdetails:json-array:($locationKey$ $attributes$ $routePlannerStopId$ $stopETA$)$

    ここで、json-arrayは、stopdetailsフィールド名に関連付けられた値のデータ型です。

    サンプルログ:
    {"routePlannerRouteId":"10010202","routeId":"10010202","routeDate":"2022-12-09T00:00:00","regionId":"548","oprCode":"initialETA","stopdetails":[{"attributes":"test1","locationKey":"53w4","routePlannerStopId":"257288","stopETA":"2022-12-10T15:27:09-05:00"},{"attributes":"test2","locationKey":"257288","routePlannerStopId":"257288","stopETA":"2022-12-09T13:26:58-05:00"},{"attributes":"test3","locationKey":"442433","routePlannerStopId":"442433","stopETA":"2022-12-10T15:27:09-05:00"}]}

  • 特殊文字のエスケープ
  • ログ行に特殊文字が含まれている場合は、ESC(特殊文字)を使用してください。

    特殊文字を含むサンプルログ:
    2022-01-12 22:00:29,793 GMT*16.2*Message
    2022-01-12 22:00:29,793 GMT*16.2*Message
    2022-01-12 22:00:29,793 GMT*16.2*Message

    その場合、ログパターンは次のように定義する必要があります:

    $Datetime:date:yyyy-MM-dd HH:mm:ss,S z$ESC(*)$Version$ESC(*)$Message$

ログパターンサンプル:

次のログパターンをサポートしています。

  • デフォルトの文字を用いたログパターン:

    文字または単語がすべてのログ行で繰り返される場合、それらをログパターンを設定することで除外できます。[,]、*、:といった文字で取り除きます。
    例は次のとおりです。

    サンプルログ:
    2017/08/01 01:05:50 [error] 28148#1452: *154 FastCGI sent in stderr

    ログパターン:

    $DateTime:date$ [$LogLevel$] $ProcessId:number$#$ThreadId:number$: *$UniqueId:number$ $Message$
    項目名 項目値
    DateTime 2017/08/01 01:05:50
    LogLevel error
    ProcessId 28148
    ThreadId 1452
    UniqueId 154
    Message FastCGI sent in stderr
  • カスタム日付フォーマットを用いたログパターン:

    異なる日付フォーマットがサンプルログに含まれている場合、ログパターンに既存の日付フォーマットを入力する必要があります。

    サンプルログ:
    demo_user demo_db 192.168.22.10 58241 2018-01-08 11:58:23 AEDT FATAL: no pghba.conf entry for host

    ログパターン:

    $User$ $DB$ $RemoteIP$ $PID$ $DateTime:date:yyyy-MM-dd HH:mm:ss z$ $LogLevel$: $Message$
    項目名 項目値
    User demo_user
    DB demo_db
    RemoteIP 192.168.22.10
    PID 58241
    DateTime 2018-01-08 11:58:23 AEDT
    LogLevel FATAL
    Message no pghba.conf entry for host
  • 除外項目のあるログパターン:

    ログには各行で項目数が異なるケースがあります。
    このような場合、ログパターン内で"!"を用いて空欄の項目を除外する必要があります。
    次の例では、"ProcessId"が2番目のログで空欄となっています。そこでこの項目を除外します。

    サンプルログ:
    Aug 7 07:35:02 log-host systemd[1]: Stopping CUPS Scheduler
    Aug 7 08:40:02 log-host kernel: 817216.167300] audit: type=1400

    ログパターン:

    $DateTime:date$ $Host$ $Application$![$ProcessId$]!: $Message$
    項目名 項目値 - 行1 項目値 - 行2
    DateTime Aug 7 07:35:02 Aug 7 08:40:02
    Host log-host log-host
    Application systemd kernel
    ProcessId 1 -
    Message Stopping CUPS Scheduler 817216.167300] audit: type=1400

APIエンドポイント経由でログ送信

HTTPSエンドポイントを経由したログ送信を行えます。

項目設定の更新

    ログタイプの追加画面のサンプル出力欄の[項目設定の編集]をクリックしてください。

    各項目で、次の設定を編集できます。

  • 表示名:項目の名前です。
  • この項目の単位:適切な単位を選択します。数字の項目のみ表示されます。
  • Groupbyの有効化:同じ値をもつエントリをグループ化します。
  • Groupbyの文字列長:Groupbyクエリの出力で表示できる文字数を指定します。
    最大200文字まで指定できます。
  • 検索結果からこの項目を隠します:検索結果を表示する際に指定した項目を隠します。
  • マスキングの有効化:[はい]を選択し、正規表現でキャプチャグループを指定することで、文字列をマスキングします。
  • ハッシュ化の有効化:[はい]を選択し、正規表現でキャプチャグループを指定することで、データをハッシュ化します。
    詳細はこちらのページをご確認ください。

ログ行のフィルター

ログタイプの追加画面のサンプル出力欄の[項目設定の編集]をクリックしてください。

ログ行のフィルター欄で、次の設定を編集できます。

  • この項目のみログ行を選択します:[一致]、[不一致]、[含む]、[含まない]を選択して、取得するログ行を指定します。
  • これら値のいずれか:指定した条件の値を入力します。
  • この項目を無視:[はい]を選択すると、指定した項目のアップロードを無効にします。
  • [適用]をクリックします。

ソースでのログ行のフィルター

  • このフィールドの場合のみログ行を選択: 以下の[これらの値のいずれか]フィールドの値に基づいてログ行を選択するには、オプションから[一致]、[不一致]、[含む]、[含まない]のいずれかを選択します。

    以下の例を参考にしてください:

    • INFOログを収集したくない場合は、[不一致]を選択し、以下の[これらの値のいずれか]フィールドにINFOと入力します。
    • 単語systemを含むログのみを収集したい場合は、[含む]を選択し、以下の[これらの値のいずれか]フィールドにsystemと入力します。

      メモ:フィルターの値では、大文字と小文字が区別されます。

  • これらの値のいずれか:上記で指定した条件の値を入力します。
  • ソースでこのフィールドを無視:はい]に切り替えると、アップロード前にエージェント側で特定のフィールドを無視します。
  • 適用]をクリックします。
    フィールド設定

色条件

色条件を使用してログを色分けし、正規表現または完全一致を使用してカスタムルールを設定して、検索結果とダッシュボードウィジェット全体で一貫した可視性を確保します。    

派生フィールドのサポート

派生フィールドのサポートを使用して、未解析のフィールドに正規表現を定義し、必要な情報を抽出できます。

ログのタグ付け

ログのタグ付けを使用して、ログを効果的に分類し、フィルターします。事前定義またはカスタムのログタグルールを適用し、タグ付けされたログを検索し、ログ管理を効率化するためのアラートを作成します。

関連ガイド