お問い合わせ

info@serverion.com

お電話ください

+1 (302) 380 3902

コンテナ可観測性フレームワークのベストプラクティス

コンテナ可観測性フレームワークのベストプラクティス

コンテナの可観測性は、 なぜ そして どうやって コンテナ化されたシステムでは、メトリクス、ログ、トレースを用いて問題の発生状況を把握できます。コンテナは一時的かつ複雑なため、従来の監視では対応しきれないことがよくあります。以下に、知っておくべきポイントをご紹介します。

  • メトリクス: コンテナのパフォーマンス (CPU、メモリ使用量など) を追跡します。.
  • ログ: コンテナ ログを一元的に集約して、トラブルシューティングを容易にします。.
  • 痕跡: マイクロサービスを通じてリクエストを追跡し、ボトルネックを見つけます。.

成功するには、OpenTelemetryなどのツールを使用して可観測性の設定を標準化し、データを効率的に管理してコストを抑え、イメージスキャンやランタイム監視などのセキュリティ対策を統合する必要があります。これらのステップにより、問題解決が迅速化され、システムの信頼性が向上します。.

停電によるコストは最大 $500,000 /時間, 可観測性への投資は、技術的および財務的な健全性の両方にとって重要です。.

コンテナ可観測性の3つのコアコンポーネント:メトリクス、ログ、トレース

コンテナ可観測性の3つのコアコンポーネント:メトリクス、ログ、トレース

可観測性の3つのコアコンポーネント

メトリクスの収集

メトリクスは、CPU使用率、メモリ消費量、ネットワークスループット、エラー率といったコンテナの健全性とパフォーマンスのスナップショットを提供します。Kubernetes環境では、kube-apiserverやkubeletなどのコンポーネントが、すでにPrometheus形式でメトリクスを公開しています。 /メトリクス エンドポイントなので、収集が容易になります。.

CPU、メモリ、ネットワーク使用量などのコンテナレベルのメトリクスについては、cAdvisorが頼りになるツールです。cAdvisorは、 /メトリクス/cadvisor エンドポイントは、Prometheusなどのツールが定期的にスクレイピングできるものです。Prometheusは、分析とアラートのためにこの時系列データを保存します。パフォーマンスを最適化するには、記録ルールを使用して複雑なクエリを事前に計算し、リソースの需要を最小限に抑えます。.

システムに過負荷をかける可能性のある高カーディナリティの問題を回避するために、ラベルを重要なディメンション(名前空間、ポッド名、サービスタイプなど)に限定することが重要です。監視すべき主要な指標には以下が含まれます。 apiserver_request_total APIサーバーの負荷については、, コンテナCPU使用時間合計秒数 CPU使用率、および コンテナメモリ使用量バイト メモリ リークが停止に発展する前に検出します。.

メトリクスを管理できるようになったら、次のステップは、より完全な画像を得るためにログを一元管理することです。.

集中ログ

集中ログは、システムイベント、エラー、セキュリティアラートを一箇所に記録します。コンテナログは本質的に一時的なものであるため、一元的な場所に集約することが不可欠です。.

これを実現するには、軽量なFluent Bitや、高度なルーティング機能を備えたFluentdなどのログエージェントを導入します。これらのエージェントは、以下のログをtailできます。 /var/log Elasticsearch、OpenSearch、CloudWatch などのプラットフォームに転送してインデックス作成と検索を行います。.

使用 構造化ログ – ログ要素がキーと値のペアとしてフォーマットされる – により、プレーンテキストに比べてログの解析、フィルタリング、視覚化がはるかに容易になります。さらに、常に有効にしてください ログローテーション のために /var/log ディスク容量が予期せずいっぱいになるのを防ぐためです。これはノードのクラッシュにつながる一般的な問題です。適切なログ管理は、インシデント対応を迅速化するだけでなく、平均復旧時間(MTTR)の短縮にも役立ちます。.

観測可能性の三位一体を完成させるには、分散トレースを統合して、リクエストがシステム内をどのように流れるかをマッピングします。.

分散トレース

トレースを使用すると、マイクロサービスにおけるリクエストの経路を追跡できます。メトリクスは応答時間の増加などの問題を明らかにし、ログは具体的なエラーを示しますが、トレースは分散システムのボトルネックを正確に特定します。トレース内の各「スパン」は操作を表し、これらを組み合わせることで、サービス間のやり取りの詳細なマップが作成されます。.

オープンテレメトリー は分散トレースの標準規格として現在広く採用されており、90以上のオブザーバビリティツールでサポートされています。Kubernetes 1.35以降では、組み込みのgRPCエクスポーターを介してOpenTelemetryプロトコル(OTLP)を使用してスパンを直接エクスポートできます。JaegerやZipkinなどのツールはこれらのトレースを処理し、レイテンシパターンを可視化し、遅いデータベースクエリや最適化されていないAPI呼び出しなどの非効率性を特定するのに役立ちます。.

トレースの最も強力な側面の一つは コンテキスト伝播 – すべてのサービス境界を越えて各リクエストに一意の識別子が付与される仕組みです。これにより、メトリクス、ログ、トレースが統合されたシステムにリンクされ、根本原因を迅速に特定しやすくなります。これらの可観測性コンポーネントを接続することで、MTTRを大幅に短縮し、インシデント解決を効率化できます。.

AWS re:Invent 2023 – コンテナの可観測性に関するベストプラクティス (COP319)

可観測性フレームワークの標準化

可観測性のコアコンポーネントを設定したら、次のステップはプラクティスを標準化することです。これにより、コンテナ環境全体でデータの一貫性が維持され、解釈が容易になります。.

OpenTelemetry標準の使用

オープンテレメトリー

OpenTelemetry(OTel)は、コンテナの可観測性における標準規格として、90社以上のベンダーにサポートされています。トレース、メトリクス、ログの生成、収集、エクスポートのための、ベンダーに依存しない統合フレームワークを提供します。これにより、複数の独自エージェントが不要になり、データの所有権を確実に保持できます。.

"「生成したデータはお客様の所有物です。ベンダーロックインはありません。」 – OpenTelemetryドキュメント

OpenTelemetryの強みは、セマンティックな規則にあります。これにより、異なるコードベースやプラットフォーム間で命名規則が統一されます。例えば、次のようなコンテナメトリクスは、 コンテナの稼働時間 (秒単位), コンテナ.CPU.使用量 (割り当て可能なCPUの割合として)、および コンテナ.メモリ.ワーキングセット 予測可能なパターンに従います。これらのメトリクスは、Prometheus、Jaeger、その他の商用プラットフォームなどのバックエンドとシームレスに統合できます。.

OpenTelemetryを最大限に活用するには、アプリケーションの起動直後に初期化してください。これにより、後続のすべてのライブラリ呼び出しが適切にインストルメント化されます。さらに、集中型のOpenTelemetry Collectorを導入することで、テレメトリデータをバックエンドに送信する前にバッチ処理、圧縮、変換できます。このアプローチは、システムのオーバーヘッドを削減するだけでなく、アプリケーションのインストルメンテーションを変更することなく、オブザーバビリティプラットフォームを柔軟に切り替えることができます。.

一貫したタグ付けとメタデータ

メタデータの標準化は、生のテレメトリを実用的な洞察に変換するための鍵となります。次のような一貫したラベルを使用することで、 トレースID, ポッド名, ノード名、 そして 名前空間 異なるテレメトリタイプをリンクするのに役立ちます。例えば、レイテンシの急上昇に気付いた場合、これらのラベルを使用して、問題の原因を特定のコンテナにまで遡り、リソース制限に達しているかどうかを判断できます。.

Prometheusの命名規則を採用する – 例えば オペレーター名エンティティメトリック名 – はリソース間の一貫性をさらに高めることができます。ただし、ラベルのカーディナリティには注意してください。ユーザーIDやメールアドレスのような高カーディナリティのディメンションは、ストレージコストを増大させ、過剰な一意の時系列データによってシステムを圧倒する可能性があるため、避けてください。.

OpenTelemetryのセマンティック規則に早期に適応することで、データの明確さと検索可能性を維持し、トラブルシューティングやインシデント対応時の混乱を軽減できます。テレメトリが標準化されると、信頼性の高いホスティングインフラストラクチャを導入する準備が整います。.

使用 Serverion ホスティングソリューション

Serverion

オブザーバビリティフレームワークを導入すれば、ServerionのVPSと専用サーバーは、OpenTelemetry Collectorを大規模にホストするために必要な信頼性を提供します。ノード固有のテレメトリが必要な場合は、Serverion VPSインスタンスに「Daemonset」パターンを使用してコレクターをデプロイします。クラスター全体のデータを集約する場合は、専用サーバーに「Deployment」パターンを使用して処理を一元化し、重複を回避します。.

セットアップのセキュリティを確保するため、ロールベースアクセス制御(RBAC)を実装し、コレクターの権限を必要なものだけに制限してください。正確なボリュームマウント権限を使用し、堅牢な構成管理で機密データを保護します。さらに、コレクターの内部テレメトリを追跡し、CPUとメモリの使用状況に関するアラートを設定することで、オブザーバビリティインフラストラクチャの健全性を監視します。これにより、高負荷時でも安定性を維持できます。.

単一のホスティングインスタンスがリソース制限に達した場合、Serverionのグローバルデータセンターに複数のコレクターを負荷分散構成で展開することで、水平方向にスケールできます。Serverionが面倒な処理を担うため、コンテナ化されたアプリケーションと連携して、オブザーバビリティフレームワークを容易に拡張できます。.

監視および警告システムの設定

潜在的な問題が大きな問題に発展する前に早期に発見するには、監視およびアラートシステムの構築が不可欠です。綿密に検討された監視設定は、標準化されたフレームワークと実用的なインサイトを結び付け、チームが問題を効率的に特定し解決することを可能にします。.

SLOとSLIの定義

サービスレベル指標(SLI) 追跡する指標であり、 サービスレベル目標(SLO) これらの指標に対して設定する目標です。APIサーバーのレイテンシ、ノードの健全性、ポッドの準備状況など、ユーザーエクスペリエンスに直接影響を与える指標に焦点を当てましょう。.

重大度ベースの目標を持つSLOを設定します。例:

  • トリガー 重大なアラート 重大なサービス中断につながる可能性のある状況については、5 分以内にご連絡ください。.
  • トリガー 警告アラート 緊急性の低い問題の場合は 60 分以内。.

"「クリティカルレベルのアラートは、データ損失やクラスタ全体へのサービス提供不能につながる可能性のある状況を報告する場合にのみ使用してください。」 – オペレータの可観測性に関するベストプラクティス

大規模環境を管理するには、Prometheusの記録ルールを使用して、頻繁に使用される式を事前に計算します。これは、数百または数千のコンテナにわたるSLOを追跡する場合に特に便利です。SLOに関連付けられたすべてのアラートには、 ランブックURL 注釈を付けて、ステップバイステップの解決ガイダンスを提供し、インシデント発生時のダウンタイムを最小限に抑えます。.

実用的なアラートの設定

実用的なアラートは、単に異常な指標値を警告するのではなく、システムやユーザーに真に影響を与える症状に焦点を当てます。例えば、機能に影響を与えない軽微な指標の変動に対してアラートをトリガーするのは避け、代わりに以下のような条件を優先します。

  • 持続的な高遅延
  • ポッドの繰り返し再起動
  • 資源枯渇

PromQLを活用する 線形予測 動的なしきい値を設定する機能により、チームは潜在的な問題を予測し、エスカレーション前に対処できます。静的なしきい値では多くの場合、的外れな対応になってしまいますが、予測アラートはチームに先行して対応を促します。.

アラートを設定する際は、一時的な問題を除外するために15分間の期間を設定してください。クラスター、名前空間、ポッド情報などの重要な詳細情報に加え、状況を簡単に把握できるダッシュボードリンクも含めます。.

リソース使用率の監視

スムーズな運用を確保するには、さまざまなシステム層にわたるリソースの使用状況を監視します。

  • コントロールプレーン: API サーバーや etcd などのコンポーネントを追跡します。.
  • クラスター状態: ノードのステータスとポッドのスケジュールの問題に注意してください。.
  • コンテナメトリクス: CPU、メモリ、ネットワーク I/O に注意してください。.

例えば、モニター kube_pod_container_status_restarts_total クラッシュループしているコンテナを見つけるには、15分以内に3回以上の再起動が一般的なしきい値となります。同様に、etcdデータベースのサイズを追跡します(apiserver_storage_db_total_size_in_bytes) は、制限を超えるとコントロール プレーン全体が危険にさらされる可能性があるため、注意が必要です。.

監視すべきその他の重要な領域には、保留中のポッドやスケジュールの失敗などがあり、これらは多くの場合、リソース不足やリクエストの設定ミスを示唆しています。コンテナが以下の理由で終了した場合、 OOMキル イベントでは、情報レベルのアラートを設定して、リソース制限違反を早期に警告し、広範囲にわたる障害を防止します。.

最後に、アラートのパフォーマンスを定期的に評価してください。アラートの頻度、解決時間、誤検知率などの指標を分析します。これにより、環境の変化に合わせてルールを改良し、効果を維持できるようになります。.

可観測性フレームワークにセキュリティを追加する

コンテナ化されたアプリケーションを監視する場合、セキュリティは単なる「あったらいい」ではなく、絶対に必要なものです。可観測性フレームワークにセキュリティを直接組み込むことで、パフォーマンス追跡に使用しているのと同じツールを活用して潜在的な脅威を特定できます。ただし、これは最初からすべてが正しく設定されている場合にのみ機能します。.

イメージスキャンと脆弱性管理

CI/CDパイプラインにイメージスキャンを組み込むことは、開発プロセスの早期段階で脆弱性を検出するための積極的なステップです。インラインスキャンは、イメージをローカルでスキャンし、スキャンツールにはメタデータのみを送信することで、機密データのプライバシーを確保します。このアプローチにより、承認されていないイメージが問題を引き起こす前にブロックします。.

"「イメージスキャンは、セキュアDevOpsワークフローにおける最前線の防御です。」 – Sysdig

レジストリレベルのスキャンを実装し、サードパーティ製イメージを含むすべてのイメージをデプロイ前に検証することで、この保護を拡張できます。Kubernetesアドミッションコントローラーを使用して、スキャンされていないイメージやコンプライアンス基準を満たしていないイメージをブロックします。新たな脆弱性(CVE)が絶えず出現しているため、「デイゼロ」の脅威に対処するために、本番環境のイメージを定期的に再スキャンすることが重要です。.

本番環境で悪用される可能性のある脆弱性の修正に注力してください。一貫性を保つために、イメージには変更可能なタグではなく、SHA256ダイジェストなどの不変の識別子でタグ付けしてください。 :最新.

ランタイムセキュリティ監視

ランタイム監視は、コンテナの挙動を監視することで、保護の層をさらに強化します。例えば、カーネルのシステムコールを監視することで、異常なファイルアクセスやネットワークアクティビティを検出できます。ベースラインを確立することで、逸脱を迅速に特定しやすくなります。.

中央集権化 標準出力 そして 標準エラー出力 コンテナランタイムのログは、セキュリティイベントの時系列記録を作成し、コンテナのシャットダウン後も参照できます。リスクを最小限に抑えるには、コンテナのUIDをランダム化して権限昇格をブロックする設定を行ってください。さらに、seccompまたはAppArmorプロファイルを適用し、不要なLinux機能を削除し、CPUとメモリの制限を設定することで、リソース枯渇攻撃を防止できます。.

ServerionによるDDoS防御とログ記録

ランタイム監視は内部プロセスのセキュリティを確保するだけでなく、DDoS攻撃などの外部脅威からの保護も同様に重要です。Serverionのホスティングインフラストラクチャは、世界中に分散したデータセンターを通じて、組み込みのDDoS防御を提供します。この構成により、ボリューム型攻撃がアプリケーションに到達する前に吸収されます。レート制限やジオブロッキングなどの機能は、アプリケーションレベルでの防御層をさらに強化します。.

Serverionのロギング機能は、お客様の可観測性フレームワークとシームレスに統合し、クラウド構成から個々のコンテナに至るまで、スタック全体のセキュリティイベントを捕捉できます。トラフィックのベースラインを確立することで、正当な使用量の急増とボット駆動型攻撃の初期兆候を区別できます。昨年だけでも、世界中で約900万件のDDoS攻撃が重要なサービスを標的としました。.

"「主な課題は、正当なユーザーと悪意のあるボットを区別することです。特に、両方が大量のトラフィックを生成している場合、それが困難になります。」 – SecurityScorecard

ログ設定のセキュリティをさらに強化するには、最小権限の原則に従ってください。ロールベースアクセス制御(RBAC)を使用して、監視ツールへのアクセスを必要なディレクトリのみに制限します。サーバーのようなコンポーネントの場合は、ベアラートークンまたは基本認証を有効にし、操作対象となるIPアドレスを制限します。さらに、監視ツールのパフォーマンス(CPU、メモリ、スループットなど)を監視し、攻撃中に過負荷にならないようにしてください。.

規模とコストの管理

システムの効率性を維持するには、堅牢な可観測性とセキュリティ対策を維持することと同様に、規模とコストの管理も重要です。コンテナの利用が増えるにつれて、可観測性データの量も増加します。例えば、次のような単一のメトリクスを追跡するだけで、 ノードファイルシステムの可用性 10,000ノードにまたがって約10万個の時系列が生成されますが、これは多くのシステムで管理可能な範囲です。しかし、ユーザーIDのような高カーディナリティラベルを導入すると、その数は1億個にまで急増し、標準的なPrometheusの設定では処理できないほどになります。課題は、制御にあります。 基数 重要な洞察力は保持したままです。.

高カーディナリティデータの管理

高いカーディナリティは、ユーザーID、メールアドレス、動的なポッド名など、値の範囲が無制限のラベルがメトリクスに含まれている場合に発生します。ラベルの一意の組み合わせごとに新しい時系列が生成され、多大なリソースを消費します。.

"各ラベルセットは、RAM、CPU、ディスク、ネットワークコストがかかる追加の時系列です。通常、オーバーヘッドは無視できる程度ですが、多数のメトリックと数百台のサーバーにわたる数百のラベルセットを扱うシナリオでは、オーバーヘッドが急速に増加する可能性があります。 – Prometheusドキュメント

これに対処するには、, 集約 記録ルールはあなたの最大の味方になります。記録ルールは複雑なクエリを事前に計算し、リソースをあまり消費しない新しい時系列データを作成できます。例えば、次のようなルールは (インスタンス、名前空間、ポッド) を除いた合計 意味のあるデータを維持しながら、高カーディナリティのラベルを削除します。さらに、取り込み時に、 メトリック再ラベル設定 不要なラベルを削除する インスタンス または ポッド 特に長期的な傾向分析に便利です。大量のメトリクスや分散トレースの場合は、, 摂取サンプル採取 もう一つの効果的な戦略です。この方法では、100%の重大なエラートレースをキャプチャしますが、通常のトレースの量を例えば1%に減らすことで、システムに過大な負担をかけることなく統計的な関連性を確保します。.

ほとんどのメトリクスのカーディナリティは10以下に抑えてください。これを超えるメトリクスについては、環境全体で数個に制限してください。手続き的に生成される値にはラベルを使用せず、イベントの「開始時刻」カウンターではなくUnixタイムスタンプをエクスポートすることで、頻繁な更新を最小限に抑えます。これらのプラクティスは、システムに過負荷をかけることなく、効率的な可観測性を維持するのに役立ちます。.

データ保持ポリシー

すべての観測データを同じ方法で保存する必要はありません。 階層型ストレージ 適切なデータへのアクセスを維持しながらコストのバランスをとることができます。一般的なアプローチは次のとおりです。

  • ホットパス: アラートやライブダッシュボードのリアルタイムデータを Kafka やストリームプロセッサなどのシステムに保存します。.
  • 暖かい道: ほぼリアルタイムの分析とトラブルシューティングには、Prometheus などの時系列データベースを使用します。.
  • コールドパス: 長期的なコンプライアンスおよび監査データをデータレイクまたは S3 などのストレージにアーカイブします。.

例えば、デフォルトのIstio設定では、高カーディナリティラベルのストレージ負荷を軽減するため、ローカルPrometheusインスタンスの保持期間を6時間に設定しています。高解像度データは即時のトラブルシューティングのために保持し、集約された低カーディナリティデータは履歴分析用に保存されます。この戦略により、ストレージコストを最大40%削減できるだけでなく、クエリパフォーマンスも向上します。オブザーバビリティ予算は、インフラストラクチャ全体のコストの約3%を占めることが多いため、保持ポリシーの最適化は財務効率に直接的な影響を与える可能性があります。.

eBPFツールによるスケーリング

さらに最適化するには、カーネルレベルの監視を検討してください。 eBPFベースのツール グラウンドカバーのように。これらのツールはLinuxカーネルから直接データを収集し、ネットワークトラフィック、ディスクI/O、プロセス間通信に関する詳細な情報を提供します。しかも、リソース消費は最小限です。そして何より素晴らしいのは、これらのツールは透過的に動作し、アプリケーションコードを変更する必要がないことです。.

ライブラリの統合を伴いオーバーヘッドが発生する可能性のある従来のインストルメンテーションとは異なり、eBPFはカーネルレベルで動作するため、システムコールのオーバーヘッドを低く抑えることができます。そのため、CPUサイクルが重要となる本番環境に最適です。リソース消費をさらに削減するために、OpenTelemetryバッチプロセッサなどのツールは、データを500件ごとや30秒ごとなどのチャンクにグループ化してから送信できます。このアプローチにより、ネットワーク呼び出しの回数が最小限に抑えられ、オブザーバビリティフレームワークの負荷が軽減されると同時に、効率が最大限に高まります。.

結論

ベストプラクティスの概要

強力なコンテナ可観測性フレームワークを確立することは、スムーズなアプリケーションパフォーマンスを維持するための鍵となります。このフレームワークは、以下の3つのコアコンポーネントで構成されています。 メトリクス, ログ、 そして 痕跡 – クラスターの内部動作の完全なビューを提供するために連携します。.

OpenTelemetryなどの標準規格を採用し、インテリジェントなアラートを設定することで、チームは真に重要な業務に集中できるようになります。重要なアラートは約5分以内にトリガーされ、重大なインシデントに対してのみ即時対応が求められます。セキュリティ面では、可観測性フレームワークは、従来のパフォーマンスデータに加え、失敗したログイン試行、不正な変更、異常なネットワークアクティビティを追跡する必要があります。コストを効果的に管理するには、データ保持ポリシー、カーディナリティ制御、eBPFなどのツールなどの戦略が不可欠です。システム停止は最大で $500,000 /時間, これらの実践により、業務と財務の両方が保護されます。.

"「セキュリティと同様に、可観測性は開発や運用の後で考えるものではありません。ベストプラクティスは、計画の早い段階で可観測性を考慮に入れることです。」 – AWS 可観測性のベストプラクティス

もちろん、これらのベスト プラクティスは、安定した信頼性の高いホスティング プラットフォームで実現されます。.

Serverionがどのように可観測性をサポートするか

Serverionは、信頼性とセキュリティに優れたホスティングソリューションを提供することで、可観測性の取り組みを強化します。これらのベストプラクティスを最大限に活用するには、可観測性ツールに強力なインフラストラクチャが必要です。Serverionのホスティングサービスは、PrometheusスクレーパーやFluent Bitアグリゲーターなどのツールのバックボーンを提供するとともに、 DDoS 保護 そして 安全なログ記録 最高のパフォーマンスを維持するため。.

重要なホスト信号にアクセスし、 ジャーナル ログを活用することで、クラスターの問題のデバッグがより迅速かつ効率的になります。内蔵のDDoS防御と詳細なログ記録により、セキュリティがさらに強化され、ネットワーク攻撃とアプリケーションパフォーマンスのリアルタイムな相関関係を把握できます。VPS、専用サーバー、AI GPUインフラストラクチャなど、どの環境でも、Serverionのグローバルデータセンターは、システム障害発生時でも監視ツールの稼働を維持します。高可用性ホスティングこそが、オブザーバビリティツールの真価を発揮するための基盤なのです。.

よくある質問

コンテナの監視に OpenTelemetry を使用する主な利点は何ですか?

OpenTelemetryは、コンテナの監視方法を標準化することで、コンテナの監視をより簡単にするオープンソースフレームワークです。 痕跡, メトリクス、 そして ログ 収集されます。ベンダー中立的なアプローチにより、特定のプロバイダーに縛られることなく、異なるバックエンドシステムを自由に選択したり切り替えたりすることができます。.

OpenTelemetryを使えば、アプリケーションのインストルメントは一度だけで済みます。その後は、あらゆる可観測性プラットフォームにデータを簡単にエクスポートできます。この一貫性により、監視が簡素化され、トラブルシューティングが効率化され、将来の変更にも確実に対応できる可観測性環境が実現します。.

システム パフォーマンスを向上させるために高カーディナリティ メトリックを管理する最適な方法は何ですか?

高いカーディナリティを持つメトリクスを管理することは、コンテナ可観測性フレームワークを高速かつ費用対効果の高い状態に保つための鍵となります。高いカーディナリティは、メトリクスに多数の一意の値を持つラベル(例えば インスタンス, ポッド、 または 名前空間)。これにより、ストレージ システムが過負荷になり、リソースの需要が増加し、特に Kubernetes や Istio などの環境ではパフォーマンスが低下する可能性があります。.

高カーディナリティメトリックを処理するための実用的な方法を次に示します。

  • ラベルは必要最低限のものに限定するトラブルシューティングに不可欠なラベルのみを使用してください。コンテナIDやリクエストIDなど、変動の大きいラベルは、固有のメトリクスの数が急速に膨れ上がる可能性があるため、使用を避けてください。.
  • 指標を早期に集計するPrometheusの記録ルールなどのツールは、より高レベルでメトリクスを事前計算することで役立ちます。これにより、保存する必要がある生の時系列データの量を削減できます。.
  • 指標をシンプルにする: 取り込み中に不要なラベルを削除または書き換えます。また、バケット数を制限したカウンターやヒストグラムなど、より効率的な指標タイプを使用することもできます。.

メトリクスを合理化・集約することで、スケーラブルで効率的な可観測性フレームワークを維持できます。これは、Serverionが提供するような堅牢なインフラストラクチャ上でワークロードを実行する場合に特に重要です。.

コンテナの可観測性フレームワークにおける重要なセキュリティプラクティスは何ですか?

コンテナの可観測性フレームワークを安全に保つには、メトリック、ログ、トレースといったテレメトリデータを、脅威を発見するためのツールとしてだけでなく、保護すべき資産として捉えることが重要です。可観測性パイプライン全体にセキュリティ対策を組み込むことで、異常を早期に特定できるだけでなく、コンテナを監視するシステムも保護できます。.

考慮すべき重要な手順は次のとおりです。

  • 検証およびスキャンされたコンテナイメージを使用する: これにより、展開前に脆弱性を検出し、セキュリティ上の欠陥を導入するリスクを軽減できます。.
  • 制限された権限でコンテナを実行する: 侵入による潜在的な損害を最小限に抑えるために、ルート アクセスの付与を避け、読み取り専用ファイル システムを適用します。.
  • APIキーやトークンなどの秘密情報を保護する: 機密情報を専用の秘密管理ツールに保存し、実行時に安全に挿入して漏洩を防止します。.
  • テレメトリデータを暗号化する: 転送中のデータには TLS を使用し、保存中のデータには安全な保存方法を使用して機密性を確保します。.
  • 厳格なアクセス制御を実施する: ロールベースのアクセス制御 (RBAC) を実装して、観測可能性データを表示および管理できるユーザーを制限します。.

これらのプラクティスに従うことで、特に Serverion のホスティング ソリューションなどの信頼性の高いインフラストラクチャと組み合わせることで、コンテナー化された環境を保護する安全で信頼性の高いフレームワークを構築できます。.

関連ブログ投稿

ja