セルフホストな OpenObserve を docker compose で構築する
お久しぶりです。
今回は、OpenObserve を docker compose で構築してみます。
OpenObserve とは
ログ、メトリクス、トレースなどの監視を 1 つのプラットフォームでできる、フルスタックのオープンソースの監視ツールです。
このツールを使うことで、フロントエンド、バックエンド、データベース、ネットワークなどを観察することができるそうです。
出典:OpenObserve
この OpenObserve は クラウドサービスとしても提供されており、無料で使うことができます。
しかし、今回は検証したい機能が有料プランに含まれているため、セルフホスティングします。
OpenObserve のセットアップ
公式のドキュメントには Windows, Mac, Linux, Docker, Kubernetes でのインストール方法が記載されています。
今回は Docker でのインストール方法を参考に、 docker compose で構築してみます。
まずはデータを保存するディレクトリと compose ファイルを作成します:
$ mkdir data
$ vim compose.yml
services:
app:
image: public.ecr.aws/zinclabs/openobserve:latest
ports:
- 5080:5080
volumes:
- ./data:/data
environment:
- ZO_DATA_DIR=/data
- ZO_ROOT_USER_EMAIL=root@example.com
- ZO_ROOT_USER_PASSWORD=Complexpass#123
root@example.com
はログイン時に使用するメールアドレス、Complexpass#123
はパスワードに置き換えてください。
次に、コンテナを起動します:
$ docker-compose up -d
起動したら、ブラウザで http://localhost:5080
にアクセスします。
画像のようなログイン画面が表示されたら、先ほど設定したメールアドレスとパスワードでログインします。
ログインに成功すると次のような画面が表示されます。
あとは、ドキュメントを参考にしながら色々と試してみてください。
サンプルデータの登録
ドキュメントに従って、次はサンプルデータを登録してみます。
サンプルデータのダウンロードと解凍:
$ curl -L https://zinc-public-data.s3.us-west-2.amazonaws.com/zinc-enl/sample-k8s-logs/k8slog_json.json.zip -o k8slog_json.json.zip
$ unzip k8slog_json.json.zip
サンプルデータの JSON を API を使って登録します。
サンプルデータの登録:
$ curl http://localhost:5080/api/default/default/_json -i -u root@example.com:Complexpass#123 -d "@k8slog_json.json"
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 15 Jun 2023 17:13:30 GMT
Content-Type: application/json
Content-Length: 71
Connection: keep-alive
vary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers
{"code":200,"status":[{"name":"default","successful":3846,"failed":0}]}
root@example.com:Complexpass#123
はログイン時に使用するメールアドレスとパスワードに置き換えてください。
成功すると、{"code":200,"status":[{"name":"default","successful":3846,"failed":0}]}
のようなレスポンスが返ってきます。
先ほどの画面をリロードすると、次のように表示が変わっているはずです。
次に、サンプルデータを検索してみます。
ログページにアクセス、ドロップダウンから default
を選択して、クエリボックスには match_all('error')
を入力して、検索ボタンをクリックします。
すると、次のようにログが表示されます。
表示されない場合は、右上から検索対象の期間を変更してみてください。
まとめ
今回は、OpenObserve を docker compose で構築してみました。
全部入りコンテナなので、簡単に構築できて検証には便利です。
次回以降は、OpenObserve の機能を試してみたいと思います。
Discussion