Tableau製品のログを解析するツール「Logshark」を使ってみた #tableau

はじめに

※当エントリはTableau Server v2018.3を前提としています。

どうも。DI部@大阪オフィスのtamaです。

今回はTableauのログを解析してワークブックとして出力してくれるという便利ツールのLogsharkをご紹介します。

Logsharkとは

Tableauのログからデータを抽出し、エラー状態、パフォーマンスのボトルネック、バックグラウンドで動いているアクティビティを識別して理解するのに役立つワークブックを作成することができます。

ちなみに、何となくTableau Server専用と思っちゃいますが、Tableau Desktopのログにも対応しています。ただ、今回はTableau Serverのログを使用したいと思います。

Logsharkを導入するための準備

システム要件

下記を満たしたWindowsマシンが必要です。ちなみにTableau Serverがインストールされているマシンである必要はありません。

  • 64ビット版のWindows Server(2008 R2以降)
  • Logsharkをインストールするマシンのローカル管理者権限を持つアカウント
  • .NET Framework 4.5.1(またはそれ以降のバージョン)
    • Logsharkのインストール時に自動でインストールされる
  • できるだけ最新のハードウェアとソフトウェアを搭載したコンピューターを使用する
    • Logsharkがログファイルを処理する能力は、CPU、メモリ、およびディスクI / Oのパフォーマンスが向上するにつれて早くなる
  • Tableau Desktop v10.5(またはそれ以降)
    • 解析結果を閲覧するために必要

Logsharkのインストール

インストーラーをGETする

下記よりダウンロードします。

  • https://github.com/tableau/Logshark/releases/download/3.0.1/Setup_Logshark_v3.0.1.exe

インストーラーを実行する

まず、Optionを選択します。

インストール先や、Path環境変数といった設定の画面にうつります。今回はとりあえず初期設定でいきます。

Installをクリックすると、処理が進んでインストールが完了します。

Logsharkを使ってみる

ログを用意する

解析したいTableau Serverのログを取得しておきます。

実行する

Logsharkをインストールしたマシンに、Tableau Serverのログを配置します。

コマンドプロンプトを起動し、Logsharkのフォルダに移動します。そして、下記のコマンドを実行することで、Logsharkが実行されます。

logshark Target [Options]

Targetという部分に、ログファイルの名前を指定します。また、どのようなオプションがあるかは--helpを指定して実行します。

>cd C:\Program Files\Logshark
>logshark C:\Users\xxxxxx\Desktop\logs.zip

Logsharkで解析した結果を確認する

ワークブックの種類

Logsharkを実行すると、解析結果がわかるワークブックがOutputフォルダに配置されます(既定だとC:\Program Files\Logshark\Output)。フォルダ名はHostName_DateTime_FileNameというルールで命名されます。

  • HostName
    • Logsharkが実行されたコンピュータの名前
  • DateTime
    • ログがいつ処理されたかを示すタイムスタンプ
  • FileName
    • ログアーカイブファイルの名前

フォルダをのぞくと、ズラッとワークブック(と元になっているhyper)が出力されていますね。

公式ドキュメントに記載されているワークブックの説明を訳してみました(ほぼGoogle翻訳)。

プロセス ワークブック 概要
Apache Apache.twbx Apache(http)ログファイルから、vizロード時間、ビュー数、エラー、警告などを、収集・分析します。
Backgrounder Backgrounder.twbx サブスクリプションや抽出の更新など、Tableau Serverのバックグラウンドタスクおよびジョブに関する情報を表示します。データはバックグラウンダーのログファイルから取得されます。
ClusterController ClusterController.twbx clustercontrollerおよびzookeeperのログファイルから取得された、クラスターコントローラーのイベントおよびエラーに関する情報を表示します。ディスクのパフォーマンスに関する情報も含まれています。
Config Config.twbx ログファイルからTableau Serverのトポロジと構成設定を表示します。
Filestore Filestore.twbx ファイルストアのイベントとエラーに関する情報を表示します。
Hyper Hyper.twbx 抽出の生成や抽出クエリの詳細など、Hyperアクティビティに関する情報を表示します。
Netstat Netstat.twbx サーバーログセット内の、netstatのアウトプットファイルから取得した、トランスポート層の予約ポートに関する情報を表示します。 netstatデータを表示するためには、Tableau Serverのログを取得する際に、ziplogsに-n引数を付けて実行する必要があります。
Postgres Postgres.twbx アプリケーションクエリの詳細など、Tableau Serverリポジトリのイベントとエラーに関する情報を表示します。
ResourceManager ResourceManager.twbx Server Resource Managerログイベントから収集された情報を表示します。ワークブックには、CPU使用率、メモリ使用率、およびプロセスリサイクルイベントに関するメトリックが含まれています。
SearchServer SearchServer.twbx 検索インデックス作成イベントを含む、Tableau ServerのSearch&Browserサービスに関する情報を表示します。
VizPortal Vizportal.twbx 認証やAPIの問題など、Tableau ServerのApplication Serverイベントに関する情報を表示します。
VizqlServer VizqlServer.twbx Tableau vizqlserverログファイルから、エラーデータを含む高レベルのセッション概要情報を収集します。

ワークブックを見てみる

今回は、バックグラウンダーのワークブックを見てみようと思います。というのも、Tableau Serverを利用しているユーザーがよく遭遇するエラーで多いのが、抽出作成に関するエラーだから(超個人的感覚)です。

Background Task Overview

バックグラウンダーが、いつ、どんなジョブを行ったかを概観できます。上からジョブを選択していくことで、そのジョブの詳細情報が下記ビューに表示されていきます。

Backgrounder Utilization

バックグラウンダーがどれだけ処理に時間を費やしているか(またはどれだけ待機時間があるか)を見ることが出来ます。真ん中のタイムラインがぎちぎちに埋まっていたら、行うジョブ数に対して、バックグラウンダーの数が足りていません。下部の「1時間あたりの平均待機時間」が多い場合は、逆にバックグラウンダーを持て余しています。このダッシュボードの対象となっているジョブは、成功したジョブのみです。

Backgrounder Error Analysis

バックグラウンダーのエラーに関するダッシュボードです。上部のメニューでジョブが行われた時間や種類を選択すると、該当するエラーのクラスやエラー種別の一覧が出ます。さらにそれを選択すると、下記のビューに、選択したエラーの詳細な時間とエラーメッセージを確認することができます。

Extract Task Details

抽出更新ジョブに関するダッシュボードです。このダッシュボードの観点は「どのくらいの頻度で抽出に失敗しているか」です。100%失敗している抽出は、明らかに何らかの原因によって抽出が妨げられているので、エラーメッセージ等から、解決を図る必要があります。

Subscription Task Details

上記ダッシュボードのサブスクリプション版です(今回使用したTableau Serverが、サブスクリプション全く行ってないため、情報がありません…)。

おわりに

こんな感じで、Tableau製品で何が起こっているのかを、サクっと確認することができます。詳細な調査はTableau社のテクニカルサポートに見てもらう必要がありますが、ある程度自分で不具合原因のアタリをつけられるツールとしては、有用だと思いました。

参考