こんにちは、開発部の澁田です。
db tech showcase 2024 1日目のC5のセッションである「データベース・モニタリングだけではトラブル原因は特定できない ~ 可観測性の必要性とステップ」のレポートをお届けします。
セッション概要
データベースのトラブルは複雑で、根本原因を特定できないケースが多いです。根本原因が特定できない理由として、一般的な監視ではデータベースの状況を正確に把握するためのデータが乏しいことが挙げられます。様々なトラブルの根本原因を把握するためには、データベースの内部状況を観測して理解する『可観測性』が重要です。本セッションでは、主にRDBの一般的なデータベース監視から『可観測性』をどのようにして高めていくかをテーマにご紹介いたします。
スピーカー名:日本エクセム株式会社
エンジニアリング部
中川 森仁 様
はじめに
当セッションでは、データベース運用中に発生するトラブルの原因を正確に把握するために重要となる、データベースの「可観測性」についてご紹介いただきました。セッションの前半では、「可観測性」と「モニタリング」の違いについて紹介された後に、「可観測性」に必要な基本データについて紹介いただきました。セッションの後半では、「MaxGauge」を使用したトラブル分析の事例を紹介いただきました。
セッション内容まとめ
1. 「可観測性」と「モニタリング」の違い
- モニタリングは、CPU使用率、メモリ使用率、ディスクI/Oなど指定した値がある閾値を超えたときにアラートを出す機能である。
- 可観測性は、どのような状況でもDBの状態を正確に理解し、説明することができることを指す。可観測性を高めるには、CPU使用率などあらかじめ設定した値の取得だけではなく、トラブルが発生した際にデータベースの中で何が行われているのかが記録されている必要がある。
2.「可観測性」に必要な基本データとは
- セッション情報
- データベースの稼働状況を把握するのに重要
- SQL実行統計
- 実際に実行されているSQLを取得し、動きの悪いSQLを知ることが可能
- システム統計値
- 各データベースごとに独自に取得している情報
- インスタンス全体の状況がわかる
- 待機イベント
- データベースやSQL処理のボトルネックを知ることができる
- OS情報
- システムログ
- 内部的なエラーがわかる
3.「可観測性」が必要な理由
- モニタリングでは、トラブルの原因を直接知ることはできず、取得したアラートからエンジニアが調査し原因を把握する必要がある。情報が足りない場合、原因の把握が難しい。
- 可観測性が高ければ、CPU使用率などあらかじめ設定した値の取得だけではなく、トラブルが発生した際にデータベースの中で何が行われているのかまで記録されるため、トラブルの原因が把握しやすい。また、データの収集や分析まで行うため、調査時間の短縮や、トラブルの再現確認の手間が省ける。
聴講した感想
「可観測性」と「モニタリング」の違いを説明いただきました。CPU使用率など特定の値が閾値を超えた場合のアラートだけではトラブルの原因の把握が難しく、原因を正確に把握するにはトラブル発生時のデータベースの中でどのような動きがあったのがが記録されている必要があることを学ぶことができ勉強になりました。
また、MaxGaugeを使用したトラブル分析の事例紹介や、前半で紹介された『「可観測性」に必要な基本データ』から原因を把握する過程の説明によって、データの見方やMaxGaugeの有効性を知ることができました。
「可観測性」を考慮したデータベースの運用には、データ収集ツールと可視化ツールが必要であり、これらをOSSで構成するにはデータベース運用者自身で設定する必要があります。ですが、日本エクセム社の「MaxGauge」では、データ収集と可視化が1つになっており、すぐに使い始めることができそうだと感じました。