ABEMA における統合監視基盤としての Grafana の導入事例
株式会社AbemaTV / tetsuya28
EM / EM / 従業員規模: 501名〜1,000名 / エンジニア組織: 101名〜300名
利用プラン | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
---|---|---|---|
OSS | 101名〜300名 | 2016年4月 | B to C |
利用プラン | OSS |
---|---|
ツールの利用規模 | 101名〜300名 |
ツールの利用開始時期 | 2016年4月 |
事業形態 | B to C |
アーキテクチャ
アーキテクチャの意図・工夫
Grafana への依存度が上がっていくにつれて、可用性が求められるようになってきたので Grafana のピアリング機能を用いて Pod を冗長化し、データベースの外出しなどを行うことで、ゾーン障害にも耐えられるような構成にしています。
導入の背景・解決したかった問題
導入背景
Grafana / Prometheus を導入する前 ( 2016 年時点 ) は Stackdriver で Google Cloud のリソースメトリクスのみを監視していました。
当時は、マイクロサービスから吐き出されるアプリケーションレベルのメトリクスを可視化することができていないことが課題でした。
そこで、マイクロサービス間の通信状況やサービスごとにカスタマイズされたメトリクスなど、アプリケーションレベルのメトリクスも収集し、監視できる状態を目指して Grafana / Prometheus の導入を検討しました。
比較検討したサービス
なし
選定理由
Prometheus のデータを可視化するためのソリューションとして Grafana はデファクトスタンダードになっており、特に他のソリューションとの比較検討は行いませんでした。
導入の成果
Grafana / Prometheus を利用することで、アプリケーションレベルのメトリクスも可視化することができ、システム的なメトリクスではなく一部のビジネス指標を可視化するダッシュボードも含めて Grafana で可視化できるようになりました。
導入時の苦労・悩み
Helm を利用してデプロイしているのですが、同時は Helm chart の柔軟性が低く Google Kubernetes Engine や ABEMA に特化したカスタマイズを行うことができませんでした。
そのため、導入初期は公式の Helm chart を fork し、独自にカスタマイズを行っていました。
ここ数年で公式の Helm chart の柔軟性も向上してきたため、公式の更新に追従しやすくするために 2023 年に公式の Helm chart を利用する形に移設を行いました。
導入に向けた社内への説明
上長・チームへの説明
Grafana は OSS のため、経営陣・上長への特別な説明等は必要ありませんでした。
活用方法
モニタリング定例などで定常的にサービスの状態を観測する際や、障害調査の際にメトリクス / ログ / トレースを確認するのに利用しています。
現在の状態を可視化するだけではなく、イベントや毎年の年末の負荷対策などでも過去のメトリクスを参考にキャパシティプランニングを行っています。
システムメトリクスだけではなく、一部のビジネス的な指標を可視化するダッシュボードとしても利用しています。
また、一部のシステムのアラートには Grafana 8 系から実装されているアラート機能を利用しています。
よく使う機能
- メトリクス / ログ / トレースの検索 / 可視化
- アラート
ツールの良い点
- 可視化ツールとしてデファクトスタンダードになっておりドキュメントや参考記事が豊富です。
また開発やコミュニティも活発であり不具合なども比較的早く発見・対応が行われている印象を受けます。
2. Helm chart も公式がメンテナンスしており、運用が比較的簡単です。
3. Grafana を含めた周辺のエコシステムが整っています。
メトリクスの可視化だけではなくログやトレースの可視化、また可視化するデータそのものの取得・保存や、その先の通知まで Grafana エコシステムで完結するような世界になってきているように感じます。
そのため、開発者は何かあれば Grafana を見にいくことでシステムに何が起きているかを把握することができます。
ツールの課題点
- 使い込んでくると OSS 版では使えない機能があります。
システムメトリクスだけではなく一部ビジネス指標も Grafana で可視化するようになったことで、全員が全てのデータを自由に見れるのではなく適切な権限を持った人に適切なデータを開示するための柔軟性の高い RBAC 設計などを行う際に OSS 版のライセンスだと使えない機能があります。
また、 Anomaly detection などの機能も OSS 版ライセンスだと利用できません。
2. バージョンアップをしているとたまに不具合を引くことがあります。
Grafana に限った話ではないが、ツールとしての機能が増えてきてユーザがどのような使い方をするか把握できなくなってくると、バージョンアップの際の動作確認で正常性を担保することが難しくなってきます。
今後の展望
自前で監視基盤を構築するのであれば、可視化部分に関しては実質 Grafana 一択になるかと思います。
しかし、簡単に導入できて便利な一方で、使い込み始めると Enterprise ライセンス前提の機能があったりするので、どこまでを要件として定義するかを事前に確認しておくと良いかと思います。
Grafana Cloud のような SaaS も登場しているので併せて確認しておくと良いかと思います。
また、 OSS の中でも比較的開発が活発で、メジャーバージョンも含めて良くも悪くも更新が頻繁にあるのが特徴です。
株式会社AbemaTV / tetsuya28
EM / EM / 従業員規模: 501名〜1,000名 / エンジニア組織: 101名〜300名
よく見られているレビュー
株式会社AbemaTV / tetsuya28
EM / EM / 従業員規模: 501名〜1,000名 / エンジニア組織: 101名〜300名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法