Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Deploying Umami - Open-Source Analytics Platform

2026年10月01日に「Dev.to」が公開したITニュース「Deploying Umami - Open-Source Analytics Platform」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Umamiは、プライバシー重視のオープンソースウェブ解析ツールだ。Google Analyticsの代替として、クッキーや個人情報を使わず、リアルタイムで訪問者データを収集する。Docker Composeを使い、LinuxサーバーにPostgreSQLやRedisと共にUmamiをデプロイし、ウェブサイトにトラッキングスクリプトを埋め込むことで、自己ホスト型の解析環境を構築できる。

ITニュース解説

ウェブサイトの運営において、訪問者がどのような行動をしているのか、どのページをどれくらい見ているのかといった情報は、サイト改善のために非常に重要だ。そのためのツールが「ウェブ解析プラットフォーム」である。Google Analyticsがその代表的な存在だが、プライバシーへの懸念やデータ主権の観点から、代替となるソリューションを求める声も少なくない。今回解説するのは、そうしたニーズに応えるオープンソースのウェブ解析プラットフォーム「Umami」を、自分でサーバーにデプロイする方法である。

Umamiは、プライバシー保護を最優先に設計された自己ホスト型の解析ツールである。一般的な解析ツールが利用するCookieや、個人を特定できる情報は一切収集せず、ウェブサイトの訪問者にCookieの利用許諾を求めるバナーを表示する必要もないのが特徴だ。これにより、ユーザーのプライバシーを守りながら、サイト管理者にはリアルタイムのアクセス状況、訪問者の利用デバイス、地理的な情報、どのサイトから訪問してきたかを示す参照元、そしてウェブサイト内で特定の行動が起こったことを示すカスタムイベントといった、多岐にわたる重要なメトリクス(測定値)を提供できる。このデータ収集は、非常に軽量なトラッキングスクリプトをウェブサイトに組み込むことで実現される。

この解説では、Umamiを自分の管理するLinuxサーバー上に「Docker Compose」という技術を使って展開する手順を順を追って説明する。Umamiの稼働には、データを永続的に保存するための「PostgreSQL」データベース、処理を高速化するためのセッションキャッシュとして「Redis」、そして外部からの安全なアクセス(HTTPS)を可能にする「Traefik」というリバースプロキシが利用される。Traefikは「Let's Encrypt」という仕組みを利用して、ウェブサイトの暗号化に不可欠なSSL/TLS証明書を自動で取得・更新する機能も担う。最終的には、自分のウェブサイトのトラフィックをUmamiでリアルタイムに追跡できる環境を構築することを目指す。

まず、Umamiのプロジェクトを展開するためのディレクトリ構造をサーバー上に用意する。これは、Umamiが利用する各種のデータを永続的に保存するための重要な場所となる。具体的には、PostgreSQLのデータベースファイル、Redisのキャッシュデータ、そしてTraefikがLet's Encryptから取得する証明書を格納するディレクトリを作成する。これにより、コンテナが停止したり再起動したりしても、重要なデータが失われることはない。

次に、Umamiアプリケーションや関連サービスの設定を行うための「環境変数」を定義する。これらは、ドメイン名、SSL証明書取得用のメールアドレス、アプリケーションのセキュリティを保つための秘密鍵、データベースのユーザー名とパスワードといった、システム全体に関わる重要な情報である。特に、秘密鍵やデータベースパスワードは、セキュリティのために強力なランダムな文字列を生成して使用することが強く推奨される。環境変数ファイルにこれらの情報を集約することで、設定の管理が容易になり、機密情報をコード内に直接記述するリスクを避けることができる。さらに、Umamiのトラッキングスクリプトの名前やデータ収集のエンドポイントをデフォルトとは異なる名前に設定することも可能である。これは、一部の広告ブロッカーが特定のスクリプト名をブロックするのを回避し、より確実にデータを収集するための工夫だ。Umamiが匿名利用統計を送信しないように設定する項目もある。

これらの準備が整ったら、「Docker Compose」を使って実際にサービス群をデプロイする。Docker Composeは、複数のDockerコンテナ(アプリケーションとその実行環境をまとめたもの)を連携させて一つのアプリケーションとして管理するためのツールである。今回の場合、以下の4つのサービスが連携して動作する。

Traefikは「リバースプロキシ」と呼ばれる役割を果たす。ウェブサイトへの外部からのアクセスを最初に受け付け、それを内部の適切なサービス(この場合はUmami)に転送する。また、HTTP通信を自動的にHTTPSにリダイレクトし、Let's Encryptと連携してSSL/TLS証明書を自動で取得・更新することで、安全な通信経路を確立する。PostgreSQLは高機能で信頼性の高いリレーショナルデータベースであり、Umamiが収集したウェブサイトの訪問データ、設定情報、ユーザーアカウントなどを永続的に保存する役割を担う。Redisは高速なインメモリデータストアであり、Umamiのセッション情報などのキャッシュとして利用される。これにより、データベースへのアクセス負荷を軽減し、アプリケーションの応答速度を向上させる。Umamiが今回デプロイするメインのウェブ解析アプリケーション本体である。PostgreSQLとRedisが正常に稼働していることを確認した後に起動し、Traefikを通じて外部からのアクセスを受け付けるように設定される。

これらのサービスの設定は「docker-compose.yml」というファイルに記述される。このファイルには、各サービスがどのDockerイメージ(アプリケーションの元となるテンプレート)を使用するか、どのポートを開放するか、どのような環境変数を参照するか、他のサービスとどのように連携するかといった詳細な指示が含まれる。例えば、UmamiサービスはPostgreSQLとRedisが健康状態になるまで待機するように設定されており、サービスの依存関係が適切に管理されている。

このDocker Composeファイルを作成し終えたら、簡単なコマンド一つで定義されたすべてのサービスをバックグラウンドで起動することができる。その後、コマンドを使って各コンテナが正常に動作しているか、特にデータベースやキャッシュサービスが「healthy」(健康状態)であるかを確認することが重要だ。Umamiのログを確認することで、データベースへの接続や初期化(マイグレーション)が正常に行われたことを検証できる。

すべてのサービスが正常に稼働していることを確認できたら、ウェブブラウザを使って設定したUmamiのドメイン名(例: https://umami.example.com/login)にアクセスし、Umamiのダッシュボードにログインする。初回ログイン時には、デフォルトの管理者ユーザー名(admin)とパスワード(umami)を使用する。システムをセキュアに保つため、ログイン後すぐにこのデフォルトパスワードを独自の強力なパスワードに変更することが必須である。設定画面から簡単にパスワードを変更できる。

次に、実際にウェブサイトのトラフィックを追跡するための設定を行う。Umamiは、個々のウェブサイトごとにデータを分離して管理するため、まず解析したいウェブサイトをUmamiダッシュボードに登録する必要がある。ウェブサイト名とドメイン名を入力して保存すると、そのウェブサイト専用の「トラッキングコード」が生成される。このコードは、JavaScriptで書かれた短いスクリプトタグであり、ウェブサイトのHTMLドキュメントの<head>セクションに埋め込むことで、訪問者の情報をUmamiサーバーに送信する役割を果たす。data-website-idという属性には、登録したウェブサイト固有のIDが設定され、src属性には、UmamiサーバーのトラッキングスクリプトのURLが記述される。このURLは、環境変数でカスタムパスを設定した場合はそのパスが使用される。

このトラッキングコードをウェブサイトに埋め込んだら、実際にそのウェブサイトに何度かアクセスして、仮想的な訪問者トラフィックを発生させる。その後、Umamiダッシュボードに戻り、登録したウェブサイトを選択すると、ページビュー数、参照元、利用デバイスの種類、訪問者データなどが表示され、リアルタイムタブでは現在アクセスしている訪問者数を確認できる。これにより、トラッキングスクリプトが正しく機能し、データがUmamiサーバーに正常に収集されていることを検証できる。

このようにして、プライバシーを重視した自己ホスト型のウェブ解析環境が構築される。一度環境が整えば、複数のウェブサイトを追加して一元的にトラフィックを比較したり、特定のユーザー行動を追跡するための「カスタムイベント」を設定したり、定期的なメールレポートを生成したり、UmamiのAPIを利用して他のツールと連携させたりと、さまざまな活用が可能になるだろう。これらの機能を通じて、ウェブサイトのパフォーマンスを詳細に分析し、ユーザーエクスペリエンスの向上に役立てることができる。

関連コンテンツ

関連IT用語