Matomoの(Piwik)勉強用環境を構築する

アクセス解析ツールで多く利用されているのが「Googleアナリティクス」だと思います。
弊所のブログでも紹介しておりますが、やはり選ばれる要因として無償で始めることができ、その後の運用コストも掛からないことが大きいと思います。

今回は同じく無償で利用できるMatomo(Piwik)の勉強環境を構築したいと思います。
(最近PiwikからMatomoに変更になりました)

まずMatomoのメリットですが
①データを自分で完全管理できる(機密性)
②ユーザーインターフェースや機能などをカスタマイズできる(拡張性)
③強制的な変更がなく、自分で継続的なコントロールができる(可用性)

デメリットは
①自分で全てを構築・管理・運用しなければいけない
②Googleアナリティクスに比べて有識者が少なく情報を集め辛い
③構築・運用コストが発生する

余談ですが、

2020年2月18日に「デジタルプラットフォーマー」と呼ばれる巨大IT企業を規制する新法案が閣議決定されました。

https://www.meti.go.jp/press/2019/02/20200218001/20200218001.html
(経済産業省「特定デジタルプラットフォームの透明性及び公正性の向上に関する法律案」が閣議決定されました)

また、2020年2月12日に行われた「第135回 個人情報保護委員会」の流れも注視しておいたほうが良いでしょう。
https://www.ppc.go.jp/aboutus/minutes/2020/20200212/

このような法案や制度がどこまで派生して、どこまで影響を及ぼすかは未知数ですが
流行りのクラウドサービス(Saas)に頼っても、その後のリスクはある程度覚悟しておいたほうが良いかなと思います。

近々の状況だとAWSやSalesforceなどを使用しているが、やはりコストが高いので
他サービスへの移行やインハウス化の流れも検討する会社が増えてきているのではないでしょうか。

以上のような状況をふまえて、インハウス化の一つとしてMatomo導入の検討になります。

動作要件

10万PV/月

CPU:2
メモリ:2GB
ディスク容量:50GB(SSD)

100万PV/月

CPU:4
メモリ:8GB
ディスク容量:250GB(SSD)

1000万PV/月

2台構成
アプリサーバ(CPU:8、メモリ:8GB、ディスク容量:100GB(SSD))

DBサーバ(CPU:8、メモリ:16GB、ディスク容量:400GB(SSD))

3台構成
アプリサーバ1(CPU:4、メモリ:4GB、ディスク容量:100GB(SSD))

アプリサーバ2(CPU:4、メモリ:4GB、ディスク容量:100GB(SSD))

DBサーバ(CPU:8、メモリ:16GB、ディスク容量:400GB(SSD))

公式サイト動作要件
https://matomo.org/docs/requirements/

今回は勉強用でアクセス数(10万PV以下)が少ないサイトを設定するので
手軽に利用できるレンタルサーバ(エックスサーバ)を使いたいと思います。

本格的に使用する場合はスケールアップが可能なVPSや専用サーバ、
クラウド環境で構築してください。

インストール準備

Matomoをダウンロードする

公式サイト(https://matomo.org/docs/installation/)からMatomoファイル一式をダウンロードします。

「Download Matomo for free」をクリックしてください。

Matomoを解凍する

ダウンロードした「matomo3.13.1.zip」を解凍しておきます。

Matomoをアップロードする

解答したMatomoをエックスサーバにFTP経由でアップロードします。もし、FTPの接続情報がわからない場合は以下の手順で確認してください。

※本来はSFTPを使用したほうが良いです。

管理画面にあるFTPの「サブFTPアカウント設定」をクリックします。

「FTPソフト設定」タブをクリックすると、サーバー名、ユーザー名が確認できると思います。

確認したFTP接続情報をFTPソフトに設定してエックスサーバに接続してください。

Matomoをインストールするルートディレクトリに解凍したファイルをアップロードします。

今回は何も入っていないサーバなので「XXXX.xsrv.jp/public_html/」にアップロードしました。

次にMatomoが使用するデータベースを作成します。

データベースを準備する

Matomoが使用するデータベースをMySQLで作成します。

データベースを作成する

データベースにある「MySQL設定」をクリックします。

「MySQL追加」タブをクリックして、データベース名と文字コードを設定します。

確認して「追加する」をクリックします。

このデータベース名はMatomoのインストール時に使うのでメモしておいてください。

次にMatomoがデータベースへ接続するユーザーを作成します。

ユーザーを作成する

「MySQLユーザ追加」をクリックして、ユーザIDとパスワードを設定してください。

確認して「追加する」をクリックします。

このユーザIDとパスワードはMatomoのインストール時に使うのでメモしておいてください。

権限設定

作成したデータベースが使えるように作成したユーザに権限設定を行います。

「MySQL一覧」タブをクリックします。

作成したデータベースの「アクセス件未所有ユーザ」に作成したユーザを設定します。

「戻る」ボタンをクリックします。

ユーザが設定されたことを確認してデータベース設定は終わりになります。

PHPを準備する

Matomoが推奨するバージョンを確認して、PHPのバージョンを設定します。

管理画面の「PHP」のある「PHP Ver.切替」をクリックします。

対象ドメイン(サーバ)の「選択する」をクリックします。

現在をバージョンを確認して、インストールMatomoの推奨環境のバージョンに変更してください。

(試しインストールした2020/1/9時点ではPHP7.3だと不具合が出るらしいので、この時はPHP7.2系にしました)

これでPHPの準備が出来ました。

Matomoをインストールする

ブラウザでファイルを置いたURLを開いてください。

私の場合では「http://XXXX.xsrv.jp/matomo/」になります。

配置とURLが正しい場合は次の画面が表示されます。

「次へ」をクリックします。

システムの確認

システム要件の確認を行っています。

動作環境として不足がある場合は対応が必要になります。

強制SSL接続」が「!」になってますが、インストール後に設定するので「次へ」をクリックします。

データベースのセットアップ

Matomo用に作成したデータベース情報を入力します。

接続がうまく行くとMatomoで使用するテーブルが作成されます。

「次へ」をクリックします。

Matomoのスーパーユーザーを作成する

Matomoで使用する管理者ユーザーの設定をします。

ウェブサイトのセットアップ

アクセス解析を行うウェブサイトの登録を行い、「次へ」クリックします。

一応トラッキングコードをコピーしておきます。 (後からでも確認可能)

「次へ」をクリックします。

これでMatomoのインストールと設定は完了になります。

「MATOMOを続ける」をクリックするとログイン画面が表示されます。

インストール時に作成したスーパーユーザーでログインしてください。

まだトラッキングコードをサイトに設定していなかったり、データを受信出来てない場合はこのような画面になります。

これでMatomoが使用できるようになりますが、インストール時に「!」が出ていたSSL接続がまだなのでエックスサーバで設定したいと思います。

ついでにWAFの設定も確認したいと思います。

SSLとWAFの設定

セキュリティ強化のためにSSLとWAFの設定を行います。

SSLを設定する

管理画面の「ドメイン」にある「SSL設定」をクリックします。

Matomoが入っているドメイン名(サーバ)の「選択する」をクリックします。

「独自SSL設定追加」タブをクリックします。

「確認画面へ進む」をクリックします。

「追加する」をクリックします。

「SSL新規取得申請中です。しばらくお待ちください。」と表示されるので、処理が完了するまで待ちます。

処理が完了したら「戻る」をクリックします。

「反映待ち」となりhttps付きのURLになります。

反映には時間がかかるので時間を置いてから確認してください。

次にWAFを設定します。

WAFを設定する

エックスサーバが提供しているWAFを設定します。

管理画面の「セキュリティ」にある「WAF設定」をクリックします。

Matomoが入っているドメイン名(サーバ)の「選択する」をクリックします。

何も設定していないと全て「OFF」になっているので、これを全て「ON」に変更します。

「選択する」をクリックします。

「戻る」をクリックします。

「反映待ち」と表示れます(私の場合は1時間ほど掛かりました)

SSL同様こちらも時間をおいて確認しましょう。

自動リダイレクション設定

httpからhttpsに自動リダイレクションされるようにMatomo/config配下にある「config.ini.php」ファイルの[General] セクションの下に次の記述を追加します。

force_ssl = 1

これでhttpsに統一されるはずです。

念の為、仕事で使う場合は接続できるIPアドレスの制限を設定しておくことをお勧めします。

https://XXXX.xsrv.jp/matomo/」 にアクセスしてログインしてみましょう。

タグの設置も完了して正常にアクセス情報を受信すると、このような画面になります。

ちなみにタグの設置はGoogleタグマネージャーを使用しました。

まとめ

レンタルサーバでも無事にMatomoをインストールすることが出来ました。

共有サーバーなのでスペック要件は低いですが動作も問題ありませんでした。

色々勉強中ですが、可能性は高いと思いますので本格的に扱えるようにしたいと思います。