次世代SIEMの完全ガイド
次世代SIEMの完全ガイド
イベントの継続的なロギングとモニタリングは、アプリケーションの正常性、アクセス可能性、可用性に欠かせない要素です。ロギングとモニタリングはそれぞれの機能と役割が異なりますが、アプリケーションを効果的に管理するには両方が必要です。
ロギングは、ログを収集しアクセスするプロセスです。ログは、コンポーネントやインフラストラクチャなどアプリケーションのさまざまな部分で発生した(生成された)イベントにタイムスタンプを付けて記録したものです。
モニタリングは、一連の診断ツールと手法を使用して、システムメトリックを収集して評価することです。モニタリングでは、アプリケーションのインフラストラクチャに含まれる各コンポーネントの信頼性とパフォーマンスに重点が置かれます。
この記事では、ロギングとモニタリングプロセスについて説明し、それらがアプリケーションの管理に重要である理由を見ていきます。また、ロギングとモニタリングを統合して、アプリケーション全体の堅牢な可視性とアクセシビリティを実現するためのベストプラクティスについても説明します。
ロギングとは
ログは、アプリケーションの管理に欠かせない情報源です。ログに含まれているのは、アプリケーション内で発生したイベント(トランザクション、侵害、エラーなど)の過去の記録です。ログの使用目的は、アプリケーションのパフォーマンスを時系列で把握してインサイトを得ることです。
ログを検査することで、エラーをトラブルシューティングし、セキュリティの抜け穴を見つけ、セキュリティ侵害がないか追跡できます。ログの管理に関して、考慮すべき事項がいくつかあります。
ログストレージ
アプリケーションが複雑になると、通常、生成されるログが多くなり、ログサイズが増大するうえ、ディスクが密集してストレージコストが膨らみます。増大するログストレージを効果的に管理するために、保持とアーカイブに関するポリシーを策定します。
ログ集約
アプリケーションコンポーネントが生成するログは、そのコンポーネントがホストされているサーバーに保存されます。そのため、複雑なアプリケーションの場合は、ログファイルが数百ものサーバーに分散することがあります。開発者やDevOpsエンジニアは、エラーの追跡やアプリケーションのデバッグを行うために、こうした異種のログをホストしている各サーバーにアクセスする必要があります。このようなアプローチによるデバッグは煩雑であるだけでなく、サーバーに幅広くアクセスするため、セキュリティリスクが高まる可能性もあります。
一元的なログ集約を使用すると、さまざまなサーバーを移動することなく、簡単かつ信頼性の高い方法でインフラストラクチャ全体にわたって生成されたイベントにアクセスできます。
ログの保護
機密情報(パスワードや口座番号など)が含まれているログは、適切に保護する必要があります。具体的には、機密データを暗号化またはマスキングする、機密性が高いログに対してアクセス制御ポリシーを実装するといったことを行います。
ログの拡充
ログを拡充すると、取り込まれるログの品質が向上します。また、欠落している情報を追加したり、冗長な情報を取り除いたりすることで、ログイベントをコンテキスト化できます。これにより、ログの読みやすさと信頼性が全体的に向上し、複数のログ間でイベントを相互に関連付けることができます。最終的には、各データセットを個別に評価しなくても、関連する傾向を明らかにし、根本原因の問題を特定できるようになります。
モニタリングとは
モニタリングとは、システムから提供されるログとメトリックをリアルタイムに観察することです。通常は、ダッシュボード、可視化、アラートとともに使用します。エンジニアがアプリケーションの現在の状態を常に監視しているため、問題や異常があれば特定できます。自動アラート(例えば、あるメトリックが重要なしきい値を超えた場合など)も一緒に使用すると、アプリケーションで修復を必要とする問題が発生したときすぐにエンジニアに通知できます。
モニタリングにはさまざまな手法があり、それぞれに評価するシステムメトリックが異なります。そのため、アプリケーションのエコシステムの幅広い側面に対処できます。
- リアルユーザーモニタリング (RUM) は、(アプリケーション内での)ユーザーの情報と振る舞いを使用して、エンドユーザーの操作性のパフォーマンスを明らかにします。例えば、ユーザーが商品をショッピングカートに追加したときに、Webサイトページがどのくらいの速さで読み込まれるかをモニタリングします。
- 合成モニタリングは、コンピューター化されたデータとスクリプトを使用して、ユーザーとのやり取りを模倣し、アプリケーションの整合性とパフォーマンスをテストします。例えば、不具合がないか確認するために、ショッピングカートに対して商品の追加や削除を短時間に繰り返すといったことを行います。
- ネットワークモニタリングは、ネットワークメトリック(遅延率、リクエスト時間、対応時間など)を監視することで、インフラストラクチャ内にパフォーマンスの低いコンポーネントがないか突き止めます。
- インフラストラクチャモニタリングは、各インフラストラクチャコンポーネントのリソース使用率を継続的に評価して、サーバーの正常性と稼働時間を保証します。
- アプリケーションモニタリングは、アプリケーションが適切に機能するよう、アプリケーションから提供されたログとメトリックを継続的に評価します。
ロギングとモニタリングの統合
障害が発生しているアプリケーションをトラブルシューティングするときは、ロギングとモニタリングの両方を利用することをお勧めします。ロギングを行うと、異常なイベントに関する情報を得ることができます。一方、効率的にモニタリングすると、そのようなイベントが発生したときにアプリケーションの状態を可視化できます。効果的にロギングすると問題の根本原因を掘り下げる助けとなり、効果的にモニタリングすると問題が発生した(あるいは発生しそうな)ときに通知されるようになります。
ロギングとモニタリングとの統合に向けた以下のベストプラクティスを実践することで、アプリケーションのパフォーマンスと信頼性を高め、エンジニアリングチームが効果的にトラブルシューティングできるようになります。
- ログファイルに関連性と一貫性のあるデータを維持します。
- 関連性のある有用なイベント情報をすべてログに記録し、モニタリングします。
- イベントフローに有用なコンテキスト(例えば、タイムスタンプやHTTPレスポンスコード)を追加して、モニタリングダッシュボードで詳細を可視化できるだけの十分なメタデータを各ログイベントに付加します。
- ログ形式をテンプレート化して、システム全体で統一を図ります。
- 同じログファイル内の同じようなイベントをグループ化します。
- 使用するログファイルをイベントのタイプごとに分けます(例えば、
orders.logとcancellations.log)。 - 適切な保持ポリシーを適用して、古いログをローテーションから外すか、削除します。ログ分析の速度を上げ、ログストレージコストを削減できます。
- 適切なメトリックのしきい値として効率的な条件を適用します(CPUやRAMの使用率など)。
- 重要なメトリックに対するアラートのメカニズムを有効にして、チームができる限り迅速に必要な措置を講じることができるようにします。
- しきい値を有用な状態に保ち、関連性のないアラートが生成されないようにします。
- 重要なメトリックとアプリケーションログを分析できるように、包括的なモニタリングダッシュボードをセットアップします。
次世代SIEMおよびログ管理のための世界をリードするAIネイティブプラットフォームをお試しください
SIEMとログ管理のための最高水準のAIネイティブプラットフォーム、CrowdStrike Falcon®プラットフォームでサイバーセキュリティを強化しましょう。ペタバイト規模でのセキュリティログを体験してみてください。クラウドネイティブ型または自己ホスト型での展開が可能です。ボトルネックの生じない、強力でインデックスフリーのアーキテクチャを利用してデータをロギングすれば、1日あたり1PB以上のデータを取り込んで脅威ハンティングに役立てることができます。リアルタイムの検索機能により攻撃者をしのぐスピードで対策を実施できます。複雑なクエリを実行しても、そのレイテンシーは1秒未満です。360度の可視性によりデータを統合してサイロ化を解消し、セキュリティ、IT、DevOpsチームがシームレスに脅威のハンティング、パフォーマンスのモニタリング、コンプライアンスの確保を行うことができます。30億件ものイベントにわたる作業でも1秒未満で実施できます。