Looker では、画像ベースの形式(HTML、PNG、PDF ファイル)でデータを送信またはダウンロードし、紙のサイズや表の展開などの機能を使用するために Chromium というレンダリング ソフトウェアが必要です。このページでは、Looker のセルフホスト型インスタンスにレンダリング ソフトウェアをインストールする方法について説明します。
Looker がホストするインスタンスには Chromium がすでにインストールされています。
Chromium レンダリングは、ページでリクエストされたすべてのリソースが完了するまで待ってから、「完了」シグナルを送信し、レンダリングされたコンテンツを生成するよう Looker に指示します。これらのリソース リクエストの数と頻度によっては、ネットワークでリクエストが悪意のあるものとして誤ってフラグが立てられ、リクエストがドロップされ、レンダリング ジョブが遅延する可能性があります。
Chromium プロジェクトは、Google Chrome の機密情報以外の部分を共有するために Google が開始したオープンソース プロジェクトです。
Chromium のインストール要件と前提条件
Looker は、Ubuntu、Debian、RedHat、CentOS、Amazon Linux など、主要なすべてのエンタープライズ Linux ディストリビューションのリリース バージョンをサポートしています。このページでは、Ubuntu、Debian、RedHat/CentOS/Amazon Linux に Chromium をインストールする手順について説明します。
Chromium は、Looker インスタンスをホストするマシンの実行可能パスにインストールする必要があります。Looker アプリケーションで Chromium にアクセスするには、chromium
コマンドを使用するか、CHROMIUM_PATH
環境変数でカスタムパスを設定する必要があります。
Looker インスタンスで Chromium を実行するには、Chromium 86 以降が必要ですが、Looker では特に Chromium 102.x を使用することをおすすめしています。Looker インスタンスが Debian にインストールされている場合、Chromium には Debian 9(stretch)以降が必要です。
クラスタ化された Looker インストールに Chromium をインストールする場合は、各ノードの Chromium バージョンが完全に同じである必要があります。ビルド番号の違いなど、わずかな違いでも、Looker のレンダリング機能に影響する可能性があります。
データに英語以外の文字が含まれている場合は、Chromium のインストールに加えて、Google Noto フォント パッケージ(サイズは数 GB)をインストールします。このフォント パッケージをインストールするには、コマンドラインで次のコマンドを実行します。
mkdir -p /tmp/fonts
cd /tmp/fonts
curl -O https://noto-website-2.storage.googleapis.com/pkgs/Noto-unhinted.zip
unzip Noto-unhinted.zip
mkdir -p /usr/share/fonts/opentype/noto
cp *.otf *.otc /usr/share/fonts/opentype/noto # Ignore any *.otc not found errors
mkdir -p /usr/share/fonts/truetype/noto
cp *.ttf /usr/share/fonts/truetype/noto
chmod a+r -R /usr/share/fonts/*/noto
fc-cache -f -v
成功した場合:
cd $HOME
rm -rf /tmp/fonts
Ubuntu への Chromium のインストール
Looker アプリケーションで Chromium にアクセスするには、chromium
コマンドを使用するか、CHROMIUM_PATH
環境変数でカスタムパスを設定する必要があります。Ubuntu にインストールする場合は、Chromium ウェブブラウザをインストールしてから、Looker アプリケーションでインストールが見つかるようにエイリアスを設定する必要があります。
昇格した権限を必要とする手順を実行する場合は、
sudo
コマンドを使用することをおすすめします。root ユーザーとしてログインしているときに Chromium をインストールしないでください。root ユーザーとしてログインしているときに Chromium をインストールすると、Looker で PDF または PNG のレンダリングが実行されないことがあります。
Chromium を起動するには、フォントがシステムにインストールされている必要があります。フォントはコマンドライン インターフェースを使用してインストールできます。たとえば、次のコマンドは Ubuntu 16.04 LTS にデフォルトのフォントをインストールします。
apt-get install fonts-freefont-otf
Chromium をインストールするには、次のコマンドを実行します。
apt-get update && apt-get install -y chromium-browser
chromium-browser
をchromium
としてエイリアスにするか、CHROMIUM_PATH
環境変数をエクスポートする必要があります。chromium-browser
をchromium
としてエイリアスにするには、~/.bashrc
ファイルに次のように記述します。alias chromium='chromium-browser'
このエイリアスを Looker に認識させるには、コマンドラインで次のコマンドを実行します。
sudo ln -s /usr/bin/chromium-browser /usr/bin/chromium
任意の環境変数を設定したら、Looker アプリケーションを再起動して設定を有効にします。開いているターミナル セッションを再起動したり、
source ~/.bash_profile
を実行してターミナルで新しい構成を読み取るようにしたりすることも必要な場合があります。
Chromium をインストールした後、CHROMIUM_PATH
環境変数を設定していない場合は chromium --version
から、CHROMIUM_PATH
環境変数を設定している場合は $CHROMIUM_PATH --version
から有効なレスポンスが返されます。
Debian への Chromium のインストール
昇格した権限を必要とする手順を実行する場合は、sudo
コマンドを使用することをおすすめします。root ユーザーとしてログインしているときに Chromium をインストールしないでください。root ユーザーとしてログインしているときに Chromium をインストールすると、Looker で PDF または PNG のレンダリングが実行されないことがあります。
Chromium には Debian 9(stretch)以降が必要です。
Looker インスタンスで Docker と最小限の Debian インストールを使用している場合は、procps をインストールし、root として実行されていないことを確認します。
Chromium を起動するには、フォントがシステムにインストールされている必要があります。コマンドライン インターフェースを使用してフォントをインストールするには、次のコマンドを実行します。
apt-get install fonts-freefont-otf
Chromium をインストールするには、次のコマンドを実行します。
apt-get update && apt-get install -y chromium
任意の環境変数を設定したら、Looker アプリケーションを再起動して設定を有効にします。開いているターミナル セッションを再起動したり、
source ~/.bash_profile
を実行してターミナルで新しい構成を読み取るようにしたりすることも必要な場合があります。
Chromium をインストールした後、CHROMIUM_PATH
環境変数を設定していない場合は chromium --version
から、CHROMIUM_PATH
環境変数を設定している場合は $CHROMIUM_PATH --version
から有効なレスポンスが返されます。
オプションの Chromium 環境変数
CHROMIUM_PATH
: Chromium バイナリのパス。デフォルトはchromium
です。CHROMIUM_PID_DIR
: ライブラリが Chromium PID ファイルを格納できるパス。Looker アプリケーションの作業ディレクトリでのデフォルトはchromium_pid_files
です。CHROMIUM_PORT_RANGE_START
とCHROMIUM_PORT_RANGE_END
: Chromium アプリケーションは、ローカルマシン上のプロセス間で通信するために、さまざまなポートを必要とします。デフォルトの範囲は 40000 ~ 40500 ですが、これらの環境変数の両方を設定すると、このデフォルト値をオーバーライドできます。未使用のポートは範囲からランダムに選択され、単一のレンダリングの期間のみ使用されます。DISABLE_EXTERNAL_RENDER_ACCESS
: 外部またはブロックされたインターネット アクセスがない、セルフホスト型 Looker インスタンスまたはサーバーの管理者は、DISABLE_EXTERNAL_RENDER_ACCESS=true
を設定する必要があります。通常、Chromium レンダラは、ページでリクエストされたすべてのリソースが完了するまで待機してから、Looker にコンテンツの生成を促す「完了」シグナルを送信します。これらのリクエストの一部は、接続がないため破棄され、タイムアウトやレンダリング時間の大幅な増加につながる可能性があります。この環境変数をtrue
に設定すると、レンダラはすべてのリクエストの完了を待機しなくなります。Looker Marketplace からインストールされた一部のマップ ビジュアリゼーションやカスタム ビジュアリゼーションでは、インターネット接続が必要になる場合があります。