さようならG Analytics、Hello Umami !

3 min read

こんにちは、無能です。

Google Analyticsを今まで使用しておりましたが今回OSSのアナリティクス収集としてUmamiを導入してみました。
Umami

Image

なんで入れたの?

サイトパフォーマンスチェックでGoogle AnalyticsのJSコードロードがリモートで実行されるのですが、それがめちゃくちゃ遅く嫌だったからです。
言うて、広告入れているからそんなこと言えた口では無いのですがGoogle Analyticsが特に全体の結果のロードに悪影響を与えているようにしか思えませんでした。
他の手段としたら、ローカルにgtagのコードを設置すればその分の無駄なトラフィックが生まれることは減るのですがこの際にちょうど以下のブログ
mimoexのブログ
を見るタイミングがあり、プライバシーポリシーを眺めたらなんか

アクセス解析ツールとしてUmamiを活用しています。

と書いてあって興味から調べたことから辿り着きました。 このタイミングに見るのもなにかの縁だろうと思い導入。
ちなみに、日本語記事はマジで無いです。言ってもまだある方とは言える気がするが。

Umamiとは

OSSのアクセス解析するツールです。

クッキー不要で誰でもかんたんに立ち上げることが可能。
日本の情報が少ないですが、立ち上げて見ました。

How to Install

まずはソースコードを引っ張ってきます。

sudo git clone -b dev https://github.com/umami-software/umami.git

今回は開発者版を使ってみます。

そして、yarn install

yarn install

DBの用意

MySQLにテーブルとユーザを作っていきます。

sudo mysql
mysql> CREATE USER 'umamiuser'@'localhost' IDENTIFIED BY 'YourPassword';
mysql> CREATE DATABASE umami;
mysql> GRANT ALL PRIVILEGES ON umami.* TO 'umamiuser'@'localhost';
mysql> FLUSHPRIVILEGES;
mysql> exit

DBパスワードは、

echo -n "YourLikePharse" | sha256sum

として出力されたものを使用しました。
個人の出来る範囲内であればこの方法が一番手軽でセキュアなパスワード生成出来るかと思います。

これでDBは一旦終わりです。

.envの設定

使用ポート、DBの接続先設定を行います。

この時点で、APP_SECRETに使う文字列を生成しておきましょう。

openssl rand -base64 30

この値をコピーしておきます。

vim .env

以下のように設定しました。

DATABASE_URL=mysql://umamiuser:YourPassword@localhost:3306/umami

APP_SECRET=openssl rand -base64 30で生成した値
PORT=8050
HOSTNAME=稼働させるIP(私はWireGuard上のIPを指定)

Run Umami

公式ではpm2を使用することを推奨しておりますが、基本的に自分はps -efからプロセスが分かりやすいようにnpm startで稼働。

npm run start-env

あとは、Nginx側でリバースプロキシを行い終了。

サイトでの設定

HTTP上からUmamiにアクセスし、ログインは
User : admin
Password : umami
と初期設定がされているのでそれでログイン。
必ず変更しましょう。

Image

すごい・・・・!!

あとは、Gtagのように<head>に入れる為のコードが出てくるのでトラッキングを行いたいサイトにいれるだけ
Image

これは・・・凄すぎますね・・・。

結果的にサイトにも優しい

他にもロードしているJSはありますがLighthouse結果が高パフォーマンスを記録しました。
Image

まあ何度もいいますが、決してこのベンチマークが全てではありません。
でもこれで良い点数取れるのはベンチマーク厨からしたら嬉しいよねっていうだけです。

それではまた。
(本当は自鯖のTerraformがqemuでも使えること知ったからそれやる予定だったのに)
こんな感じでしたが、よろしくお願いします。
本日もありがとうございました。