CloudWatch LogsからGrafana Lokiにログ基盤を移行

18.3K Views

December 15, 22

スライド概要

Qiita Night~AWS~で発表した資料です

本資料では、CloudWatch LogsからGrafana Lokiへのログ基盤変遷の概要とLokiを利用したログ検索の紹介を行っています

当日のイベントはconnpassを御覧ください
https://increments.connpass.com/event/266692/

profile-image

LIFULL HOME'Sを運営する株式会社LIFULLのアカウントです。 LIFULLが主催するエンジニア向けイベント「Ltech」等で公開されたスライド等をこちらで共有しております。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

CloudWatch LogsからGrafana Lokiに ログ基盤を移行 株式会社LIFULL 川合 拓央

2.

自己紹介 LIFULLについて 移行に至った背景 移行後の状態 目次 まとめ 2

3.

自己紹介 川合 拓央 @hir00 ソフトウェアエンジニア @LIFULL Kubernetesをベースとした内製 PaaS 「KEEL」を開発・運用 このPaaSを活用するためのプラクティスを導入するEnabling SREとして活動 https://www.lifull.blog/archive/category/KEEL 「Istioを本番環境に導入するまで」 「LIFULLが主要サービスの(ほぼ)全てをKubernetesに移行するまで」 「GitHub Actions Self-hosted runnes on Kubernetesによる自動化」 3

4.

LIFULLについて あらゆる「LIFE」を「FULL」に。 「したい暮らしに、出会おう。」をコンセプトに掲げ、簡単で便利な住まい探しをお手伝いする不動産・住宅情報の総合サービスです。 物件の探しやすさや住まいに関する情報の見つけやすさ、検討がしやすくなるように、様々な機能や情報を拡充していきます。 今後も、ユーザーに寄り添いながら、ともに理想の住まい探しを実現します。 4

5.

背景 歴史 ・マイクロサービス化が進行 車輪の再発明 各チームがロギング・監視基盤を実装 デプロイフローの実装 5

6.

背景 歴史 ・2018年頃Kubernetesの導入を開始 =内製PaaS「KEEL」 ロギング・監視の共通基盤を実装

7.

背景 メトリクスを利用した監視とGrafanaでの可視化を提供 7

8.

背景 柔軟にクエリ出来るログ閲覧環境を提供 8

9.

背景 ✔各チームがロギング・監視基盤を実装 共通基盤上で稼働するアプリケーションが増える ログコストが高くなっていることを観測 CloudWatch LogsのPutLogEventsのコスト比率が高い 理想は大量のデータを扱えるログ基盤がコストを抑えて提供できていること 9

10.

Grafana Lokiの導入 ログの収集/検索 低コスト スケーラブル 引用: https://grafana.com/oss/loki/ https://grafana.com/docs/loki/latest/fundamentals/architecture/components/ 10

11.

Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki fields @timestamp, @message, @logStream {grouping="kubernetes.ns.svc"} | filter structural_log.status >= 499 | json | sort @timestamp desc | structural_log_status >= 499 | limit 20 11

12.

Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki {grouping="kubernetes.ns.svc"} stats count(*) by @logStream | json | filter structural_log.status >= 499 | structural_log_status >= 499 12

13.

Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki sum( rate( stats count(*) by @logStream {grouping="kubernetes.ns.svc"} | filter structural_log.status >= 499 | json | structural_log_status >= 499 [1m] ) ) by (metadata_pod_name) 13

14.

Grafana Lokiの導入 CloudWatch Logs Insights Grafana Loki quantile_over_time( fields structural_log.status, structural_log.reqtime, structural_log.uri, @message | filter structural_log.uri = "/xxx" | stats pct(structural_log.reqtime, 99) by bin(1m) 0.99, {grouping="kubernetes.ns.svc"} | json | structural_log_uri = "/xxx" | unwrap structural_log_reqtime | __error__="" [1m] ) by (structural_log_status) 14

15.

Grafana Lokiの導入 二面書きをしながら使用感の検証 運用コストはCloudWatch Logsと比較すると増える 金額コストは70%削減

16.

Grafana Loki移行後の状態 16

17.

Grafana Loki移行後の状態 17

18.

Grafana Loki移行後の状態 18

19.

Grafana Loki移行後の状態 19

20.

Grafana Loki移行後の状態 20

21.

まとめ CloudWatch Logsを利用したログ基盤を提供 →ログ量の増加に伴いログコストが増加する課題 →S3をbackendとするログ集約ソフトウェアGrafana Lokiへの移行を行った ✔ 大量のデータを扱えるログ基盤がコストを抑えて提供できていること ・運用コストは増 ・金額コストは70%削減 ・メトリクス・ログ・トレースをGrafanaで統合 21

22.

ご清聴ありがとうございました 22