Slide 1

Slide 1 text

0 ログ監視ツールについて調べてみた 2024-03-08 第81回NearMe技術勉強会 Kaito Asahi

Slide 2

Slide 2 text

1 そもそもログとは? ● ログ(log) → 動詞:記録する、名詞:記録 → システムの挙動などの記録を指す ● 利⽤するケース → 不具合があったときに、どこで起きたのかが分かる(かも) → CS(カスタマーサクセス)業務などで、レビューに書かれていたことを確認できる(か も)   (e.g. 通知は正しく送られているか?メールは送られているか?) etc...

Slide 3

Slide 3 text

2 簡単なロギング ● Python ● JavaScript, TypeScript ● Rust print('Welcome to NearMe') console.log('Welcome to NearMe') println!("Welcome to NearMe");

Slide 4

Slide 4 text

3 簡単なロギング ● Python ● JavaScript, TypeScript ● Rust print('Welcome to NearMe') console.log('Welcome to NearMe') println!("Welcome to NearMe"); ずっと張り付いて監視は厳しい ログ監視ツールを使いましょう!

Slide 5

Slide 5 text

4 ログ監視ツール

Slide 6

Slide 6 text

5 ログ監視ツール 今回は、2つご紹介します

Slide 7

Slide 7 text

6 ログ監視ツール:OpenObserve ● ログ、メトリクス、トレースを収集、処理、可視化するオープンソースの可観測性プラットフォー ム ● すべてのデータを 1 か所で収集および分析できる統合プラットフォーム ● スケーラブルなので、コストも効率的 ● Elasticsearch Compatibilityもある https://openobserve.ai

Slide 8

Slide 8 text

7 ログ監視ツール:OpenObserve ● ザックリやっていること ○ fluentbitやfluentd, API callなどによってログを挿入 ○ OpenObserveでログを集約 ○ Local diskや、その他AWSのS3に保存 https://openobserve.ai/docs/architecture/#:~:text=single%20node%20deployme nts.-,Sled%20and%20Local%20disk,-Use%20this%20mode

Slide 9

Slide 9 text

8 ログ監視ツール:OpenObserve ● ザックリやっていること ○ fluentbitやfluentd, API callなどによってログを挿入 ○ OpenObserveでログを集約 ○ Local diskや、その他AWSのS3に保存 https://openobserve.ai/docs/architecture/#sled-and-local-disk:~:text=this%20set up%20done.-,Sled%20and%20Object%20storage,-etcd%20and%20object

Slide 10

Slide 10 text

9 ログ監視ツール:OpenObserve ● 料金面(https://openobserve.ai/pricing):Developer, Proだけここには載せます ○ Developer(無料) ■ 200 GB Ingestion/month ■ Additional ingestion at $0.3/GB ■ 200 GB Query Volume/month ■ 200 M records function executions/month ■ 15 Days Retention ■ 10 users ○ Pro($19/month) ■ Ingestion ($0.3/GB) ■ Query Volume ($0.01/GB) ■ Functions execution ($0.05/1M records) ■ 30 days retention for logs and traces ■ 120 days retention for metrics ■ Unlimited users

Slide 11

Slide 11 text

10 ログ監視ツール:Grafana Loki ● Prometheus に触発されている ○ 水平方向にスケーラブル ○ 高可用性 ○ マルチテナント ● コスト効果が高い ● インデックス付け ○ ログの内容には貼らない ○ 各ログストリームのセットのラベルをインデックス付け https://grafana.com/oss/loki/

Slide 12

Slide 12 text

11 ログ監視ツール:Grafana Loki ● インデックス付け ○ ログの内容には貼らない ○ 各ログストリームのセットのラベルをインデックス付け https://grafana.com/oss/loki/#:~:text=Loki%20takes%20a%20unique%20approach%20by%20only%20indexi ng%20the%20metadata%20rather%20than%20the%20full%20text%20of%20the%20log%20lines%3A

Slide 13

Slide 13 text

12 ログ監視ツール:Grafana Loki ● ザックリやっていること ○ Promtail:Lokiへログを送る ○ Loki:ログを貯める ○ Grafana:ログを集計して、可視化 https://grafana.com/oss/loki/#:~:text=How%20does%20Grafana%20Loki%20work%3F

Slide 14

Slide 14 text

13 ログ監視ツール:Grafana Loki ● 料金面:Cloud(https://grafana.com/pricing/):Free Forever, Proだけここには載せます ○ Free Forever(無料) ■ Metrics:10k metrics billable series, 14 days retention ■ Visualization:3 active users with Enterprise plugins ■ Logs, Traces, Profiles:50 GB each, 14 days retention ■ IRM:3 active users ■ Frontend Observability:50k sessions ■ k6 Performance testing:500 virtual user hours, 14 days retention ○ Pro(pay as you go) ■ Metrics $8 per 1k series, 13 months retention ■ Visualization $8 per active user or $55 per active user with Enterprise plugins ■ Logs, Traces, Profiles $0.50 per GB ingested, 30 days retention ■ IRM $20 per active user ■ Frontend Observability $0.90 per 1k sessions ■ k6 Performance testing $0.15 per VUh, 30 days retention

Slide 15

Slide 15 text

14 ログ監視ツール 今回のハンズオンでは、各サービスの ダッシュボードでログを確認するまで となります

Slide 16

Slide 16 text

15 ログ監視ツールを体験:OpenObserve 1. ハンズオンに必要なものをCloneする 2. Docker imageをpullして、runをする $ cd handson-openobserve $ mkdir data $ docker-compose up -d $ git clone [email protected]:asakaicode/handson-openobserve.git

Slide 17

Slide 17 text

16 ログ監視ツールを体験:OpenObserve 3. http://localhost:5080にアクセスし、ログインする メールアドレス:[email protected] パスワード  :Complexpass#123

Slide 18

Slide 18 text

17 ログ監視ツールを体験:OpenObserve 4. yarn installを行い、アプリケーションを走らせる $ yarn $ yarn run build $ yarn run start

Slide 19

Slide 19 text

18 ログ監視ツールを体験:OpenObserve 5. curlコマンドで、以下にGETリクエストを投げる 6. http://localhost:5080にアクセスし、ログを確認する $ curl http://localhost:3020/hello

Slide 20

Slide 20 text

19 ログ監視ツールを体験:OpenObserve 7. 🔍アイコンを押して、詳細を確認する

Slide 21

Slide 21 text

20 ログ監視ツールを体験:OpenObserve 8. 詳細が確認できる

Slide 22

Slide 22 text

21 ログ監視ツールを体験:Grafana Loki 1. ハンズオンに必要なものをCloneする 2. handson-lokiディレクトリに移動 3. Grafana, Promtail, Lokiのdocker imageをdocker composeを用いてpullし、runさせる 4. yarn installを行い、アプリケーションを走らせる $ cd handson-loki $ git clone [email protected]:asakaicode/handson-loki.git $ docker-compose up -d $ yarn $ yarn run build $ yarn run start

Slide 23

Slide 23 text

22 ログ監視ツールを体験:Grafana Loki 4. http://localhost:3000にアクセスし、ログインをする アカウント名:admin パスワード :admin

Slide 24

Slide 24 text

23 ログ監視ツールを体験:Grafana Loki 5. ダッシュボードを作成する

Slide 25

Slide 25 text

24 ログ監視ツールを体験:Grafana Loki 5-1. “Add visualization”を押す

Slide 26

Slide 26 text

25 ログ監視ツールを体験:Grafana Loki 5-2. データソースとして、“Loki”を選択

Slide 27

Slide 27 text

26 ログ監視ツールを体験:Grafana Loki 5-3. 一旦、空のダッシュボードが作成

Slide 28

Slide 28 text

27 ログ監視ツールを体験:Grafana Loki 6. ログを入れていく 6-1. 以下のようにGETリクエストを投げる(2種類) $ curl http://localhost:3021 $ curl http://localhost:3021/hello

Slide 29

Slide 29 text

28 ログ監視ツールを体験:Grafana Loki 6-2. ダッシュボードで、”Label filters”から、”level=info”とする

Slide 30

Slide 30 text

29 Thank you