GH GambleHub

インフラストラクチャモニタリング

インフラストラクチャモニタリング

1)目的とフレーム

インフラ監視は、プラットフォームの健全性、パフォーマンス、可用性に関するシグナルのシステムです。彼は次のようにしなければなり:
  • ユーザーがクラッシュする前に警告する(早期発見)。
  • 根本原因(症状から原因)の診断を行います。
  • リリースと自動ロールバックのSLOゲートをサポートします。
  • インシデント後の分析(データとしての証拠)をフィードします。

支持の主義:設計によって観察できる、より少ない騒音-より多くの信号、反作用の自動化、真実の単一のパネル。

2)観察可能性のトライアド

時系列-レート/デマンド/エラー/彩度(USE/RED)

ログ:コンテキストを含むイベントの詳細;秘密/PIIを含まない。
トレース:因果関係を持つ分散ケース。

プラス:
  • プロファイリング(CPU/ヒープ/ロック/io)、システムレベルのeBPF。
  • イベント/監査(K8sイベント、configs/secretsの変更)。

3) SLI/SLO/SLA-品質言語

SLI: 'availability'、 'error_rate'、 'p95_latency'、 'queue_lag'。

SLO(ターゲット): "成功したリクエスト≥ 99。30日で9%"

エラーの予算:許容;自動ストップリリースに使用されます。

SLOの例(YAML):
yaml service: "api-gateway"
slis:
- name: success_rate query_good: sum(rate(http_requests_total{status!~"5.."}[5m]))
query_total: sum(rate(http_requests_total[5m]))
slo: 99. 9 window: 30d

4)モニタリングレイヤーマップ

1.ホスト/VM/ノード: CPU/ロード/盗難、 RAM/スワップ、 ディスクIOPS/レイテンシ、ファイルシステム。
2.ネットワーク/LB/DNS: RTT、パケット/ドロップ、バックログ、SYN/タイムアウト、健康プローブ。
3.Kubernetes/Orchestrator: APIサーバー、etcd、コントローラ、スケジューラ;pods/nodes、保留中/evicted、スロットリング、kube-events。
4.サービス/コンテナ:RED (Rate/Errors/Duration)、 readiness/liveness。
5.データベース/キャッシュ:QPS、ロック待ち、レプリケーションラグ、バッファヒット、遅いクエリ。
6.キュー/バス:コンシューマラグ、リクエスト/デッドレター、スループット。
7.ストレージ/クラウド:S3/Blobエラーとレイテンシ、プロバイダからの429/503。
8.境界境界:WAF/Rate Limits、 4xx/5xx by route、 CDN。
9.合成:HTTPスクリプトチェック(デポジット/出力)、TLS/証明書。
10.経済/容量:サービス、利用、ヘッドルームあたりのコスト。

5)ホワイトボックスブラックボックス

ホワイトボックス:サービス内のエクスポート/SDK (Prometheus、 OpenTelemetry)。
Blackbox:異なる地域の外部サンプル(可用性、レイテンシー、TLS有効期限)。
コンバイン:「外側に記号」+「内側に診断」。

'blackbox_exporter'の例:
yaml modules:
https_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"

6) Kubernetes: 主要な信号

'apiserver_request_total'、 'etcd_server_has_leader'、 etcd fsync。
'container_cpu_cfs_throttled_seconds_total'、 'node_pressure'。
パッド:保留中/CrashLoopBackOff、 OOMKilled、再起動。
プラン/制限:リクエストと制限、PodDisruptionBudget、 HPA/VPA。
ネットワーク:NetworkPolicyが低下し、conntrackの枯渇。

「クラスタの健康」「、ワークロードの飽和」「、トップエラーサービス」。

7) DBおよびキュー

PostgreSQL/MySQL:レプリケーションの遅延、デッドロック、遅いクエリ%、チェックポイントI/O。
Redis/Memcached:ヒット率、立ち退き、拒否された接続。
Kafka/RabbitMQ:消費者の遅延、unacked、 requeue、 ブローカーISR、ディスク使用量。

8) RED/USE指標とビジネス相関

RED: 'rate' (RPS)、 'errors' (4xx/5xx)、' duration '(p95/p99)。
USE(リソース用):使用率、彩度、エラー。
プロダクトと関連付けて下さい:沈殿物/支払の成功、詐欺の旗、転換-これらはカナリア解放のための「監視」です。

9)アラート構造

階層1(ページ):SLOに影響を与えるインシデント(可用性、5xx、レイテンシ、クラスタクリティカルなコンポーネント障害)。
Tier-2(チケット):容量の劣化、SLOに影響を与えないエラーの増加。
Tier-3(お知らせ):トレンド、予測能力、期限切れの証明書。

エスカレーションルール:沈黙時間/重複圧縮、オンコール回転、フォローザサン。

Alertmanagerルートの例:
yaml route:
group_by: ["service","severity"]
receiver: "pager"
routes:
- match: { severity: "critical" }
receiver: "pager"
- match: { severity: "warning" }
receiver: "tickets"

10)プロメテウス規則の例

10.SLOしきい値を持つ1 5xxエラー

yaml groups:
- name: api rules:
- alert: HighErrorRate expr:
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m])) > 0. 005 for: 10m labels: { severity: "critical", service: "api-gateway" }
annotations:
summary: "5xx > 0. 5% 10m"
runbook: "https://runbooks/api-gateway/5xx"

10.2書き込みエラー予算(マルチウィンドウ書き込み)

yaml
- alert: ErrorBudgetBurn expr:
(1 - (
sum(rate(http_requests_total{status!~"5.."}[1m])) /
sum(rate(http_requests_total[1m]))
)) > (1 - 0. 999) 14 for: 5m labels: { severity: "critical", slo: "99. 9" }
annotations: { summary: "Fast burn >14x for 5m" }

10.3システム彩度(CPUスロットリング)

yaml
- alert: CPUThrottlingHigh expr: rate(container_cpu_cfs_throttled_seconds_total[5m]) > 0. 1 for: 10m labels: { severity: "warning" }
annotations: { summary: "CPU throttling >10%" }

11)ログ: コレクション、正規化、保持

標準化:JSONログ:'ts'、 'level'、 'service'、 'trace_id'、 'user/tenant'。
パイプライン:エージェント(Fluent Bit/Vector)→バッファ→インデックス/ストレージ。
改訂:PII/シークレットマスキング。
保持:速い貯蔵のクラス(7-14日)、冷たいアーカイブ(30-180日)。
セマンティクス:error budgets/deprecates-別々のチャンネル。

12)トレイルとOpenTelemetry

インストゥルメント入力ポイント(ゲートウェイ)、kliyent→servis呼び出し、DB/caches/queues。
クイックナビゲーションのためにメトリックをトレース属性(Exemplars)にバインドします。
中央ゲートウェイとしてのOTel Collector:フィルタリング、サンプリング、選択したバックエンドへのエクスポート。

OTel Collectorの例(フラグメント):
yaml receivers: { otlp: { protocols: { http: {}, grpc: {} } } }
processors: { batch: {}, tail_sampling: { policies: [ { name: errors, type: status_code, status_codes: [ERROR] } ] } }
exporters: { prometheus: {}, otlp: { endpoint: "traces. sink:4317" } }
service:
pipelines:
metrics: { receivers: [otlp], processors: [batch], exporters: [prometheus] }
traces: { receivers: [otlp], processors: [tail_sampling,batch], exporters: [otlp] }

13)合成および外的な点検

ビジネスシナリオ(ログイン、入金、出金、購入)のHTTP実行。
TLS/Domain:証明書の用語/CAA/DNSの健康。
地域性:主要国/プロバイダ(ルーティング/ブロックリスト)からのサンプル。
合成は、緑色の内部テレメトリーであっても、ユーザーが利用できない場合に警告する必要があります。

14)プロファイリングおよびeBPF

連続的なプロファイリング:熱い機能、ロックの同一証明。
eBPF:システムイベント(syscalls、 TCP retransmitts)、オーバーヘッドを最小限に抑えた製品。
プロファイルアラート(チケット)、およびリリース後のリグレッション-ロールバックのシグナルとして。

15)ダッシュボードと「真実のパネル」

最小セット:

1.プラットフォームの概要:主要サービス、エラー予算、アラートによるSLI/SLO。

2.API RED:ルート別のRPS/ERRORS/DURATION。

3.K8sクラスター:コントロールプレーン、容量ヘッドルーム。

4.DB/キャッシュ: lag/locks/slow query%、 hit ratio。

5.キュー:backlog/lag、 fail/retry。

6.Per-release:メトリックの前後の比較(カナリアウィンドウ)。

7.FinOps:名前空間/サービスごとのコスト、アイドル/特大のSS。

16)インシデント、アラートノイズ、エスカレーション

重複排除: サービス/原因グループ化、カスケード抑制

沈黙/メンテナンス:リリース/マイグレーションはすべて赤で「ペイント」しないでください。
Runbooks:診断手順とロールバック「ボタン」を備えた各クリティカルアラート。
Postmortem:タイムライン、彼らが学んだこと、追加/クリーニングされた信号。

17)モニタリングにおける安全性

ルール/データソースの読み取り/編集のためのRBAC。
秘密:エクスポーター/エージェントトークン-シークレットマネージャ経由。
分離:クライアント/テナントメトリクス-別々のスペース/タブに。
Integrity:エージェント/ビルドの署名、GitOpsによる設定(マージレビュー)。

18)ファイナンス&キャパシティ(FinOps)

クォータと予算;異常な成長への警報。
右サイジング:要求/限界の分析、CPU/RAM使用率、重要でないタスクのスポットインスタンス。
パフォーマンスKPIとして「リクエスト/テナントあたりのコスト」。

19)アンチパターン

カスタムSLIを使用しないインフラストラクチャメトリクスのみ。
100+alerts 「about everything」→blindness on-call。
唯一のソースとしてログ(メトリックとトレースなし)。
バージョニング/レビューなしで変更可能なダッシュボード。
合成の欠如:「すべてが緑色です」、しかし、フロントは利用できません。
リリースとの接続はありません。「現時点で変更されたもの」に答えることは不可能です。

20)実装チェックリスト(0-60日)

0-15日

3-5キーサービスのSLI/SLOを定義します。
基本的なエクスポート/エージェントを有効にし、JSONログを標準化します。
Tier-1アラート(可用性、5xx、 p95)を構成します。

16-30日

重要なシナリオの合成を追加します。
入力/重要なサービスでOTelを有効にします。
ダッシュボード「Per-release」とerror-budget burn-rules。

31-60日

高度な信号でDB/キュー/キャッシュをカバーします。
高CPUサービスのeBPF/プロファイリングを実装します。
ルール/ダッシュボード/アラート、定期的なノイズクリーニングのためのGitOps。

21)成熟度の指標

主要サービスのSLOカバレッジ≥ 95%です。
MTTA/MTTR(目標:分/分の数十)。
自動アクションまたはクイックロールバックで閉じられたTier-1アラートの割合。
「便利「/」騒々しい「アラートの比率は>3:1です。
すべての「お金」パスの合成カバレッジ=100%。

22)アプリケーション: ミニテンプレート

Prometheus-ステータスクラスによる空室状況

yaml
- record: job:http:availability:ratio_rate5m expr: sum(rate(http_requests_total{status!~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

グラファナ-カナリアのためのヒント


expr: histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket{version=~"stable    canary"}[5m])) by (le,version))

Alertmanager-義務と沈黙

yaml receivers:
- name: pager slack_configs:
- channel: "#oncall"
send_resolved: true inhibit_rules:
- source_match: { severity: "critical" }
target_match: { severity: "warning" }
equal: ["service"]

23)結論

監視はグラフのセットではありませんが、SREオペレーティングシステム:品質契約としてのSLI/SLO、真実の源としてのメトリック/トレイル/ログ、制御信号としてのアラート、「ユーザーボイス」としての合成、変更の規律としてのGitOps。ホストからAPIへの単一のループを構築し、それをリリースとロールバックに結び付けます。プラットフォームは予測可能で、高速で経済的です。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。