フロントエンドのエラーログモニタリングサービスSentoryをMacのdocker-composeでサクッと立ち上げて起動するまでの手順
フロントエンドのエラーログモニタリングサービスSentoryをMacのdocker-composeでサクッと立ち上げて起動するまでの手順をメモしました。
Sentry(セントリー)
Sentryとは?
Sentryとは、フロントエンドのエラー監視ツールになります。
エラーログや日時、ユーザーの情報、ブラウザや端末の情報などを集積し
GUIでログの確認を行うことができます。
Sntoryの特徴
- Sentryは様々なプラットフォームで利用が可能
- ユーザーデータ(UA、OS)やユーザー行動ログに応じたエラーを検証することができる
- プロジェクトごとにエラーのチケットを管理することができる
公式サイト
Application Performance Monitoring & Error Tracking Software | Sentry
やること
環境
- Mac OS Big SUR 11.3.1
- Docker 20.10.2
- docker-compose 1.25.0
要件
実際に利用するにはそこそこのスペックが必要になります。
- Docker 19.03.6+
- Compose 1.24.1+
- 4 CPU Cores
- 8 GB RAM
- 20 GB Free Disk Space
Sentryのインストール
githubからclone
setsentry/onpremiseのリポジトリからソースコードをクローンします。
zsh$ git clone https://github.com/getsentry/onpremise.git
cloneしたonpremiseディレクトリへ移動
cloneしたonpremiseディレクトリへ移動します。
zsh$ cd onpremise
インストールスクリプトを実行
インストールスクリプトである./install.sh
を実行します。
zsh$ ./install.sh
./install/_lib.sh: line 15: realpath: command not found
realpathコマンドが見つからないエラー
realpathコマンドが見つからないエラーが発生しました。
zshrealpath: command not found
realpathが入っているcoreutilsをインストール
Homebrewで realpathが入っているGNU Linux coreutils
をいれます。
zsh$ brew install coreutils
再度インストールスクリプトを実行
再度インストールスクリプトを実行します。
zsh$ ./install.sh
メモリ不足エラー
今度はメモリが不足しているというエラーが発生しました。
zshFAIL: Required minimum RAM available to Docker is 3800 MB, found 2993 MB
メッセージを確認する限り最低4G必要なようです。
dockerのメモリ設定変更
再度インストールスクリプトを実行
再度インストールスクリプトを実行します。
zsh$ ./install.sh
アカウント作成
アカウント作成の有無を問われるので必要に応じて回答します。
zshWould you like to create a user account now? [Y/n]:
Emailの入力
アカウント作成へY
と回答するとアカウントを作成します。
Emailを入力して実行します。
zshEmail:
Passwordの入力
続いてPasswordの入力を求めらるので入力して実行します。
zshPassword
しばらくするとインストールが完了し下記のメッセージが表示されいます。
vbnet
-----------------------------------------------------------------
You're all done! Run the following command to get Sentry running:
docker-compose up -d
-----------------------------------------------------------------
Sentryの起動
docker-compose upでSentryを起動
docker-compose upコマンドでSentryを起動します。
zsh$ docker-compose up -d
//中略
Starting sentry_onpremise_zookeeper_1 ... done
Starting sentry_onpremise_memcached_1 ... done
Starting sentry_onpremise_symbolicator_1 ... done
Starting sentry_onpremise_clickhouse_1 ... done
Starting sentry_onpremise_postgres_1 ... done
Starting sentry_onpremise_redis_1 ... done
Starting sentry_onpremise_smtp_1 ... done
Creating sentry_onpremise_symbolicator-cleanup_1 ... done
Creating sentry_onpremise_geoipupdate_1 ... done
Starting sentry_onpremise_kafka_1 ... done
Starting sentry_onpremise_snuba-sessions-consumer_1 ... done
Starting sentry_onpremise_snuba-subscription-consumer-events_1 ... done
Starting sentry_onpremise_snuba-api_1 ... done
Starting sentry_onpremise_snuba-subscription-consumer-transactions_1 ... done
Starting sentry_onpremise_snuba-outcomes-consumer_1 ... done
Starting sentry_onpremise_snuba-consumer_1 ... done
Starting sentry_onpremise_snuba-replacer_1 ... done
Starting sentry_onpremise_snuba-transactions-consumer_1 ... done
Creating sentry_onpremise_snuba-transactions-cleanup_1 ... done
Creating sentry_onpremise_snuba-cleanup_1 ... done
Creating sentry_onpremise_ingest-consumer_1 ... done
Creating sentry_onpremise_cron_1 ... done
Creating sentry_onpremise_web_1 ... done
Creating sentry_onpremise_subscription-consumer-transactions_1 ... done
Creating sentry_onpremise_sentry-cleanup_1 ... done
Creating sentry_onpremise_subscription-consumer-events_1 ... done
Creating sentry_onpremise_worker_1 ... done
Creating sentry_onpremise_post-process-forwarder_1 ... done
Creating sentry_onpremise_relay_1 ... done
Creating sentry_onpremise_nginx_1 ... done
Sentry起動の確認
docker psコマンドでSentryの起動を確認します。
ものすごい数のコンテナが立ち上がっています。
zsh$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d1af99d79486 nginx:1.21.0-alpine "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:9000->80/tcp, :::9000->80/tcp sentry_onpremise_nginx_1
31bd40c2d0b1 getsentry/relay:nightly "/bin/bash /docker-e…" 3 minutes ago Up 2 minutes 3000/tcp sentry_onpremise_relay_1
96946f054f97 getsentry/sentry:nightly "/etc/sentry/entrypo…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_web_1
142cbe99bcab getsentry/sentry:nightly "/etc/sentry/entrypo…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_post-process-forwarder_1
a73d30ffeecf getsentry/sentry:nightly "/etc/sentry/entrypo…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_worker_1
53710796c597 sentry-cleanup-onpremise-local "/entrypoint.sh '0 0…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_sentry-cleanup_1
0fc66120b6e7 getsentry/sentry:nightly "/etc/sentry/entrypo…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_subscription-consumer-events_1
6660c44c85d3 getsentry/sentry:nightly "/etc/sentry/entrypo…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_subscription-consumer-transactions_1
1178f9de7dcb getsentry/sentry:nightly "/etc/sentry/entrypo…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_ingest-consumer_1
247403b0cf0a getsentry/sentry:nightly "/etc/sentry/entrypo…" 3 minutes ago Up 3 minutes 9000/tcp sentry_onpremise_cron_1
2485d8b09449 snuba-cleanup-onpremise-local "/entrypoint.sh '*/5…" 3 minutes ago Up 3 minutes 1218/tcp sentry_onpremise_snuba-transactions-cleanup_1
3cdd89173e06 snuba-cleanup-onpremise-local "/entrypoint.sh '*/5…" 3 minutes ago Up 3 minutes 1218/tcp sentry_onpremise_snuba-cleanup_1
35672074e478 symbolicator-cleanup-onpremise-local "/entrypoint.sh '55 …" 4 minutes ago Up 3 minutes 3021/tcp sentry_onpremise_symbolicator-cleanup_1
d0f963485d02 getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up 3 minutes 1218/tcp sentry_onpremise_snuba-api_1
e9b9a080ae5b getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up 2 minutes 1218/tcp sentry_onpremise_snuba-outcomes-consumer_1
761ef79ae530 getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up 3 minutes 1218/tcp sentry_onpremise_snuba-replacer_1
5670be83129d getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up About a minute 1218/tcp sentry_onpremise_snuba-subscription-consumer-transactions_1
0f855d1ee7d4 getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up About a minute 1218/tcp sentry_onpremise_snuba-consumer_1
7c3727466982 getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up About a minute 1218/tcp sentry_onpremise_snuba-transactions-consumer_1
5ce98cc4b2ae getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up 3 minutes 1218/tcp sentry_onpremise_snuba-subscription-consumer-events_1
0ce211d4efc9 getsentry/snuba:nightly "./docker_entrypoint…" 9 minutes ago Up About a minute 1218/tcp sentry_onpremise_snuba-sessions-consumer_1
7fa51fba889b postgres:9.6 "/opt/sentry/postgre…" 9 minutes ago Up 3 minutes (healthy) 5432/tcp sentry_onpremise_postgres_1
81956699bb54 memcached:1.6.9-alpine "docker-entrypoint.s…" 9 minutes ago Up 4 minutes (healthy) 11211/tcp sentry_onpremise_memcached_1
4e57cfe13532 getsentry/symbolicator:nightly "/bin/bash /docker-e…" 9 minutes ago Up 3 minutes 3021/tcp sentry_onpremise_symbolicator_1
c65e4f13f9a4 tianon/exim4 "docker-entrypoint.s…" 9 minutes ago Up 3 minutes 25/tcp sentry_onpremise_smtp_1
d23c00d76349 confluentinc/cp-kafka:5.5.0 "/etc/confluent/dock…" 10 minutes ago Up 3 minutes (healthy) 9092/tcp sentry_onpremise_kafka_1
8bbb79e2d190 yandex/clickhouse-server:20.3.9.70 "/entrypoint.sh" 10 minutes ago Up 3 minutes 8123/tcp, 9000/tcp, 9009/tcp sentry_onpremise_clickhouse_1
f4f40b5dd5fe redis:6.2.4-alpine "docker-entrypoint.s…" 10 minutes ago Up 3 minutes (healthy) 6379/tcp sentry_onpremise_redis_1
5ff06b679111 confluentinc/cp-zookeeper:5.5.0 "/etc/confluent/dock…" 10 minutes ago Up 3 minutes (healthy) 2181/tcp, 2888/tcp, 3888/tcp sentry_onpremise_zookeeper_1
Sentryへアクセス
ブラウザからSentryを開く
http://localhost:9000
へブラウザからアクセスしSentryを開きます。
ログイン画面が表示されたらインストールは成功です。
SentryのSetup
Sentoryの初期設定を実施します。
ログイン
続いてインストール時に登録したユーザー情報を入力しログインします。
Setup情報の入力
Root URL
Sentoryを利用するURLを指定します。
Admin Email
管理者のメールアドレスを登録します。
Outbound email
SMTPサーバーの設定をします。
詳しくはこちらをご確認ください。
Sentry Developer Documentation | Sentry Developer Documentation
Beacon
使用統計(Usage Statistics)の情報を送信するかどうかの設定です。
Send my contact information along with usage statistics
送信する場合はこちらを選択します。
Please keep my usage information anonymous
送信しない場合はこちらを選択します。
入力が完了したらContinueをクリックします。
Sentryのダッシュボード
ダッシュボードが表示されたらSentryのSetupは完了です。
記事Article
もっと見る- article
Dockerの利用していないゴミを掃除しディスクスペースを解放するいくつかのやり方を紹介
- article
Next.js のバンドルサイズを可視化する@next/bundle-analyzer の紹介
- article
VSCodeでTypescriptファイルのimport補完で相対パスではなくエイリアスするための設定
- article
UUIDより短いユニークなIDを生成できるnpmライブラリnanoidの使い方
- article
【解決方法】TypeScript発生したTS2564 エラーの対処
- article
express で IP を取得する際などに利用する req.connection 非推奨(deprecated)の対処