Qlik Logging Service – 構成および統合
Qlik Sense の May 2021 のリリース以降、集中ログ システムは新規インストールでは使用できなくなりました。May 2021 より前のリリースからアップグレードした場合、集中ログは非推奨になり、将来のリリースで削除されることに注意してください。詳細については、[Windows 上の Qlik Sense Enterprise での集中ログの非推奨] を参照してください。
このトピックでは、Qlik Logging Service で利用可能な構成および統合の機能を説明します。これらの機能は、 テクニカル サポートの支援を得ながら問題を解決するコンテキストでQlik使用する必要があります。
動的構成
Qlik Logging Service が提供する機能のほとんどは、次の構成ファイルによって制御されています。QlikCentralizedLogging.config は通常、C:\ProgramData\Qlik\Sense\Log にあります。このファイルには、Qlik Logging Service が認識するすべての設定を XML 形式で格納されています。通常、コマンド ラインの起動中、update コマンドまたは setup を実行すると Qlik Logging Service によって直接修正されます。
この「動的構成」機能では、次の新しい設定、CentralizedLoggingConfigurationNotificationEnabled が採用されています。この設定の既定値は「False」です。この設定は常に動的です。つまり、構成ファイルを直接修正し、ファイルを保存することで値が変更され、それにともなって Qlik Logging Service が新しい値を読み取り、使用します。この設定を既定値の「False」に設定している場合、構成ファイル内の他の設定に加えた変更は Qlik Logging Service では検出されないため、変更を反映させるためにはサービスの再起動が必要になります。この設定が「True」に設定されている場合、以下に示す設定に対する変更は、構成ファイルを保存すると Qlik Logging Service がただちに検出し、適用します。
キー | 説明 | 範囲 |
---|---|---|
CentralizedLoggingLogMaxFileSizeMb | ログ サービスが、ログをファイルに記録します。この設定は、ロール オーバーされる前のログ ファイルの最大サイズを MB 単位で制御します。 | 1... |
CentralizedLoggingLogEnabled | ログ サービスによるファイルへのログ記録の有効、無効を切り替えます。 | True、False |
CentralizedLoggingEnabled | ログ サービス機能を有効または無効にします。True の場合、受信するログ エントリを受け付けて記録します。False の場合、ログ サービスは実行されたままですが、ログを記録する機能は無効となります。 | True、False |
CentralizedLoggingServerBufferSize | 内部バッファのログ エントリのサイズを設定します。内部バッファが一杯になると、データベースへの書き込みが実行されます。たとえば、10 に設定すると、10 個のログ エントリを受信した時点でデータベースへの書き込みが行われます。 | 1... |
CentralizedLoggingServerTimeoutSeconds | データベースへの書き込みを実行するタイムアウト期限を秒単位で設定します。アイドル システムの場合、ログ エントリが一杯になることは頻繁にはありません。このしきい値を設定することで、内部バッファが一杯でない場合でもデータベースへの書き込みを実行します。 | 1... |
CentralizedLoggingLogLevel | ログの冗長性レベルを制御します。 | Off、Fatal、Error、Warn、Info、Debug、All |
MaximumDatabaseSizeInGB |
データベースの最大サイズを GB 単位で設定します。データベース サイズがこの値を超えると、設定した最大値をデータベース サイズが下回るまで、データベースからエントリを削除します。 2 未満の値を設定すると、この機能は無効になります。 |
0... |
CentralizedLoggingConfigurationNotificationEnabled | 動的構成の設定を有効または無効にします。True に設定した場合、動的構成の設定に加えた変更は、サービスを再起動しなくてもただちに反映されます。False に設定した場合、新しい設定値を反映させるには再起動が必要です。この設定自体は常に動的で、ただちに反映されます。 | True、False |
CentralizedLoggingDBSizeCheckPeriod |
データベースのサイズを確認する頻度を設定します。値は、ミリ秒単位で指定します。 値がゼロ (0) の場合、この機能を無効にします。600,000 (10 分) が、この機能を使用する場合の最小値です。この値より小さい数値は自動的にこの最小値に設定され、2,147,483,646 (596 時間) が設定可能な最大値です。 |
0, 600000..2147483646 |
CentralizedLoggingDBArchiveCheckPeriod |
ログ エントリをアーカイブする必要の有無を確認する頻度を設定します。値は、ミリ秒単位で指定します。 値がゼロ (0) の場合、この機能を無効にします。600,000 (10 分) が、この機能を使用する場合の最小値です。この値より小さい数値は自動的にこの最小値に設定され、2,147,483,646 (596 時間) が設定可能な最大値です。 |
0, 600000..2147483646 |
CentralizedLoggingDBPurgeCheckPeriod |
アーカイブされたエントリをパージする必要の有無を確認する頻度を設定します。値は、ミリ秒単位で指定します。 値がゼロ (0) の場合、この機能を無効にします。600,000 (10 分) が、この機能を使用する場合の最小値です。この値より小さい数値は自動的にこの最小値に設定され、2,147,483,646 (596 時間) が設定可能な最大値です。 |
0, 600000..2147483646 |
CentralizedLoggingDBStatsCheckPeriod |
データベースの統計を取得する頻度を設定します。値は、ミリ秒単位で指定します。 値がゼロ (0) の場合、この機能を無効にします。300,000 (5 分) が、この機能を使用する場合の最小値です。この値より小さい数値は自動的にこの最小値に設定され、2,147,483,646 (596 時間) が設定可能な最大値です。 |
0, 300000..2147483646 |
CentralizedLoggingPlatformPerformanceCheckPeriod |
プラットフォームのパフォーマンス指標を取得する頻度を設定します。値は、ミリ秒単位で指定します。 値がゼロ (0) の場合、この機能を無効にします。1,000 (1 秒) が、この機能を使用する場合の最小値です。この値より小さい数値は自動的にこの最小値に設定され、2,147,483,646 (596 時間) が設定可能な最大値です。 |
0, 1000..2147483646 |
CentralizedLoggingProcessPerformanceCheckPeriod |
プロセスのパフォーマンス指標を取得する頻度を設定します。値は、ミリ秒単位で指定します。 値がゼロ (0) の場合、この機能を無効にします。1,000 (1 秒) が、この機能を使用する場合の最小値です。この値より小さい数値は自動的にこの最小値に設定され、2,147,483,646 (596 時間) が設定可能な最大値です。 |
0, 1000..2147483646 |
CentralizedLoggingPlatformPerformanceCounters |
CentralizedLoggingPlatformPerformanceCheckPeriod の期間ごとに収集する、プラットフォームのパフォーマンス カウンタを設定します。 次の書式を使用します。 Database payload key; Counter Category; Counter Name [;] [カウンタ インスタンス] | Database payload key... |
|
CentralizedLoggingProcessPerformance |
CentralizedLoggingProcessPerformanceCheckPeriod の期間ごとにパフォーマンス カウンタを収集するプロセスを設定します。 次の書式を使用します。 Process Name | Process Name | ... 「Process Name」はプロセスを表すシンプルな名前です。たとえば、この設定の既定値は、「engine|proxy|repository|scheduler」となります。 |
|
CentralizedLoggingPlatformEvents |
監視するプラットフォーム イベントのセット。 次の書式を使用します。 EventLogX, [EventSourceX]:EventID0, EventID1, ..., EventIDn| EventLogY, [EventSourceY]:EventID0, ..., EventIDn |
Qlogs の統計
Qlik Logging Service は定期的に Qlogs データベースに関する統計を収集します。このデータベースは、すべてのログ エントリで使用されています。この統計を収集する頻度は CentralizedLoggingDBStatsCheckPeriod の設定で制御します。値をゼロ (0) に設定すると収集を実行しません。値は単位ミリ秒で指定し、既定値は 10 分 (10 * 60 * 1000 = 600000 ミリ秒) です。収集された情報にはレコード カウント数とサイズ情報が含まれ、次のクエリで閲覧できます。
SELECT * FROM public.view_db_stats;
Windows イベント ログの統合
Windows イベント ログとの統合は新機能で、構成済み Windows イベントに関する情報を Qlik Logging Service が収集できます。Qlik Logging Service が監視するイベントのセットは、CentralizedLoggingPlatformEvents 設定で設定します。値をクリアすると、この機能が無効になります。既定値は次のとおりです。
<add key="CentralizedLoggingPlatformEvents" value="System:1074,6013,36888,36874,2013,7031,4202|Application, Engine:300|Application, .NET Runtime:1026|Application, PostgreSQL:0" />
これは、既定で構成されたイベントの説明です。
イベント ログ | イベント ソース | イベント ID | 説明 |
---|---|---|---|
System | - | 1074 | ユーザーがシステムの再起動を開始 |
System | - | 6013 | システムのアップタイム |
System | - | 36888 | Schannel (TLS プロトコル) エラー |
System | - | 36874 | Schannel (TLS プロトコル) エラー |
System | - | 2013 | 空きディスク領域不足 |
System | - | 7031 | 予期しないサービス終了 |
System | - | 4202 | TCP/IP ネットワーク構成の問題 |
アプリケーション | エンジン | 300 | 予期しない例外がエンジンで発生 |
アプリケーション | PostgreSQL | 0 | PostgreSQL エラー |
アプリケーション | .NET ランタイム | 1026 | .NET プロセスが終了 |
CentralizedLoggingPlatformEvents 設定の値を以下のように修正することで、他のイベントを監視できます。
前述のとおり、イベント ログが 1、イベント ソースが 2、イベント ID が 3 です。上記で強調したイベントをキャプチャするには、以下に示すように、値 "Application, Perflib: 1008" を CentralizedLoggingPlatformEvents 設定に付加する必要があります。
<add key="CentralizedLoggingPlatformEvents" value="System:1074,6013,36888,36874,2013,7031,4202|Application, Engine:300|Application, .NET Runtime:1026|Application, PostgreSQL:0|Application, Perflib: 1008" />
イベント ソースは任意ですが、複数のイベント ソースが同一のイベント ID を使用する可能性のある場合は有用です。上記の例の場合、イベント ソース "Perflib" を省略すると、すべてのアプリケーションについて イベント ID 1008 を監視します。複数のイベント ID を同じイベント ログとイベント ソースについて監視することができ、これらのイベント ID はカンマ「,」で区切られます。複数のイベント ログとイベント ソースを監視することができ、これらはパイプ文字「|」で区切られます。
Qlik Logging Service がキャプチャする Windows イベントは、Qlogs データベースに対し以下のクエリを実行することで閲覧できます。
SELECT * FROM public.view_platform_events;
Windows パフォーマンス モニターの統合
Qlik Logging Service は Windows パフォーマンス モニターと統合されており、システムに対し構成済みの指標について定期的にクエリを実行します。この統合は、構成済みのプラットフォーム指標の監視と構成済みプロセスの監視の 2 つのセクションに分かれます。
プラットフォーム指標
プラットフォーム指標の監視に使用する期間は CentralizedLoggingPlatformPerformanceCheckPeriod 設定で制御します。値をゼロ (0) にするとこの機能が無効になります。既定値は 5 分 (5 * 60 * 1000 = 300000 ミリ秒) です。
収集される指標またはパフォーマンス カウンタは、CentralizedLoggingPlatformPerformanceCounters の設定で構成され、既定値は次のとおりです。
既定値の表
データベース項目 | カウンタ カテゴリ | カウンタ名 | カウンタ インスタンス |
---|---|---|---|
CPUInterruptPercent | プロセッサ | % Interrupt Time | _Total |
CPUQueueLength | System | Processor Queue Length | |
CPUUserUtilizationPercent | プロセッサ | % User Time | _Total |
CPUUtilizationPercent | プロセッサ | % Processor Time | _Total |
DiskFreeSpacePercent | LogicalDisk | % Free Space | _Total |
DiskIdleTimePercent | PhysicalDisk | % Idle Time | _Total |
DiskIOQueueLength | PhysicalDisk | Avg. Disk Queue Length | _Total |
DiskTimePerReadSeconds | PhysicalDisk | Avg. Disk sec/Read | _Total |
DiskTimePerWriteSeconds | PhysicalDisk | Avg. Disk sec/Write | _Total |
MemoryAvailableMBytes | メモリ | Available MBytes | |
MemoryCacheBytes | メモリ | Cache Bytes | |
MemoryCommittedBytesInUsePercent | メモリ | % Committed Bytes In Use | |
MemoryFreePageEntries | メモリ | Free System Page Table Entries | |
MemoryPagesPerSecond | メモリ | Pages/sec | |
MemoryPoolNonPagedBytes | メモリ | Pool Nonpaged Bytes | |
NetworkBytesPerSecond | Network Interface | Bytes Total/sec | * |
NetworkOutputQueueLength | Network Interface | Output Queue Length | * |
設定値 CentralizedLoggingPlatformPerformanceCounters の書式は、以下に示すように Windows パフォーマンス モニターが使用する命名規則と構造に従っています。
CentralizedLoggingPlatformPerformanceCounters の設定値を修正することで、パフォーマンス カウンタを追加することもできます。設定値は以下の書式を使用します。
- パフォーマンス カウンタはそれぞれ、パイプ文字「|」で区切られます。
- 1 つのパフォーマンス カウンタはセミコロン「;」で区切られた 4つの項目で構成されており、空白文字を追加して読みやすくすることもできます。
- 最初の項目は任意で、データベースへのパフォーマンス カウンタの格納に使用する名前に対応します。項目が指定されない場合は、カウンタの名前が代わりに使用されます。
- 2 つめの項目はカウンタ カテゴリで、上の画像の 1 に対応しています。
- 3 つめの項目はカウンタで、上の画像の 2 に対応しています。
- 4 つめの項目はカウンタ インスタンスで、上の画像の 3 に対応しています。この項目は任意で、ワイルドカード文字「*」を設定するか、または何も指定しないと利用可能なすべてのインスタンスが収集されます。
上に示したカウンタを追加するには、設定 CentralizedLoggingPlatformPerformanceCounters に「| Test1 ; ICMP ; Messages/sec ; *」を追加する必要があります。これでパフォーマンス カウンタは CentralizedLoggingPlatformPerformanceCheckPeriod 設定で設定した期間に基づいて収集され、Qlogs データベースに対して以下のクエリを使用することでデータベースからパフォーマンス カウンタを取得できます。
プラットフォーム指標は、Qlogs データベースに対して以下のクエリを実行することで閲覧できます。
SELECT * FROM public.view_platform_metrics;
プロセス指標
プロセス指標の監視に使用する期間は CentralizedLoggingProcessPerformanceCheckPeriod 設定で制御します。値をゼロ (0) にするとこの機能が無効になります。既定値は 5 分 (5 * 60 * 1000 = 300000 ミリ秒) です。
パフォーマンス指標は、CentralizedLoggingProcessPerformance 設定によって構成されたプロセスについて収集され、既定値は次のとおりです。
この設定の書式も、以下に示すように Windows パフォーマンス モニターが使用する命名規則と構造に従っています。
リストに含まれるプロセスそれぞれについて、利用可能なすべてのパフォーマンス カウンタが収集されます。リストのプロセスはそれぞれパイプ文字「|」で区切ります。追加のプロセスについて指標を収集するには、「シンプルな名前」を CentralizedLoggingProcessPerformance 設定に付加する必要があります。たとえば、上記のように chrome を追加するには、「| chrome」という文字列を CentralizedLoggingProcessPerformance 設定に付加します。
プロセス指標は、QLogs データベースに対して以下のクエリを実行することで閲覧できます。
SELECT * FROM public.view_process_metrics;
エクスポート
Qlik Logging Service は、管理しているログ データをエクスポートできます。 この補完的な機能により、Qlik のテクニカル サポートとの間でログ データを共有しやすくなります。export コマンドは、Qlik Logging Service をコマンド ライン ツールとして使用している時に利用できます。
使用方法: Qlik.Logging.Service.exe <export> [[エクスポート_オプション]]
エクスポートされるデータは暗号化されていませんが、圧縮によりバイナリ形式となっていて、Qlik Logging Service 以外のツールでは読み取ることができません。
エクスポート
「export」コマンドは、Qlik Logging Service が管理するすべてのログ データをエクスポート先にコピーします。以下のコマンド オプションを使用して、エクスポート内容とエクスポート先を制御することができます。
--output_file または -o (必須): エクスポートしたデータを保存する場所を指定します。場所は、ディスク ファイル、またはエクスポートされたデータを待ち受ける Qlik Logging Service のアドレスです。ファイルを指定する場合、エクスポート プロセスによりターゲット ファイルが作成または置き換えられます。待機サービスを指定する場合の書式は <hostname または host ip address>[: port] です。ホストの名前またはホストの IP アドレスを指定し、コロン「:」(必要な場合)、待ち受けているホストが使用するポート番号の順に続けます。ポートが指定されない場合は、既定の 7081 が使用されます。
--hostname または -h: エクスポートされるデータを、指定したホストに由来するサブセットに限定します。比較では大文字と小文字は区別されません。
--level または -l: エクスポートされるデータを、指定したレベルと同等のサブセットに限定します。比較では大文字と小文字は区別されません。
--to_timestamp: エクスポートされるデータを、指定した日付より前に作成されたサブセットに限定します。詳細については、以下の「日付書式」セクションを参照してください。
--from_timestamp: エクスポートされるデータを、指定した日付より後に作成されたサブセットに限定します。詳細については、以下の「日付書式」セクションを参照してください。
--process_name: エクスポートされるデータを、指定したプロセスに由来するサブセットに限定します。比較では大文字と小文字は区別されません。
例
これらのコマンドは、管理者特権なしの「コマンド プロンプト」でテストしたものです。
すべての内容をファイルにエクスポートするには:
ホスト「Node1」の 2018/09/01 から 2018/09/02 10:00PM の間の内容を、ポート 80 で待ち受ける待機ネットワークの到達可能なホストにエクスポートするには:
日付書式
日付の書式は、「YYYY-MM-DD [[HH:MM:SS]]」です。日付の部分は必須、時刻の部分は任意で、時刻を省略した場合の既定値は「00:00:00」です。
- 日付
- YYYY: 年、4 桁
- MM: 月、2 桁、01 ~ 12
- DD: 日、2 桁、01 ~ 31
- Time
- HH: 時、2 桁、00 ~ 23
- MM: 分、2 桁、00 ~ 59
- SS: 秒、2 桁、00 ~ 59
テクニカル ノート
Unicode の NULL 文字
Qlik Logging Service を使用するプロセスでは、ごくまれに Unicode 文字の NULL (\u0000) がログ エントリに含まれる場合があります。この文字は、文字列の終わりを表すために使用されることがほとんどであるため、多くのツールで問題の原因となります。QLogs データベースに Unicode 文字が挿入されると、次の PostgreSQL の場合のようなエラー メッセージが表示される可能性があります。
ERROR: サポートされていない Unicode エスケープ シーケンス
DETAIL: \u0000 はテキストに変換できません。
CONTEXT: JSON data, line 1: {"Message":...
STATEMENT: 「SQL_CUR4」で 200 をフェッチ
Qlogs データベースに対し、以下のスクリプトを実行すると、Unicode の NULL 文字「\u0000」が「<UNICODE_NULL>」という文字列で置き換えられます。
構成ファイルのリセット
何らかの理由で Qlik Logging Service 構成ファイルの QlikCentralizedLogging.config が破損または読み取り不能になった場合、このファイルを削除すると、次回サービスを起動したときに新しいファイルが既定値を使用して作成されます。同じことは個々の設定にも当てはまり、構成ファイルのある設定を削除すると、次回のサービス起動シーケンスの間にその値が既定値で置き換えられます。
マルチノードの構成
マルチノード環境では通常、 はすべてのノード上で実行されます。
マルチノード環境では通常、Qlik Logging Service はすべてのノード上で実行されます。既定の構成では、すべてのノードがデータベース管理機能を実行します。これは不具合ではありませんが、単一のノードをデータベースを保守する担当として指定する構成の方がより効率的です。たとえば、3 ノード展開の場合、各ノードで実行される Qlik Logging Service は次のように構成できます。
中央ノードおよびリム ノード 1
<!-- 一元化されたログ記録構成 -->
<!-- データベース サイズ管理を無効 -->
<add key="CentralizedLoggingDBSizeCheckPeriod" value="0" />
<!-- アーカイブ管理を無効 -->
<add key="CentralizedLoggingDBArchiveCheckPeriod" value="0" />
<!-- パージ管理を無効 -->
<add key="CentralizedLoggingDBPurgeCheckPeriod" value="0" />
<!-- データベース統計収集を無効 -->
<add key="CentralizedLoggingDBStatsCheckPeriod" value="0" />
<!-- プラットフォーム パフォーマンス指標収集を有効 (1 分) -->
<add key="CentralizedLoggingPlatformPerformanceCheckPeriod" value="60000" />
<!-- プロセス パフォーマンス指標収集を有効 (1 分) -->
<add key="CentralizedLoggingProcessPerformanceCheckPeriod" value="60000" />
リム ノード 2 (データベース管理)
<!-- 一元化されたログ記録構成 -->
<!-- データベース サイズ管理を有効 (5 分、最大サイズ 6 GB) -->
<add key="CentralizedLoggingDBSizeCheckPeriod" value="300000" />
<add key="MaximumDatabaseSizeInGB" value="6" />
<!-- アーカイブ管理を有効 (60 分) -->
<add key="CentralizedLoggingDBArchiveCheckPeriod" value="3600000" />
<!-- パージ管理を有効 (60 分) -->
<add key="CentralizedLoggingDBPurgeCheckPeriod" value="3600000" />
<!-- データベース統計収集を有効 (5 分) -->
<add key="CentralizedLoggingDBStatsCheckPeriod" value="300000" />
<!-- プラットフォーム パフォーマンス指標収集を有効 (1 分) -->
<add key="CentralizedLoggingPlatformPerformanceCheckPeriod" value="60000" />
<!-- プロセス パフォーマンス指標収集を有効 (1 分) -->
<add key="CentralizedLoggingProcessPerformanceCheckPeriod" value="60000" />