Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mackerel のコンテナ監視の近況 / Mackerel Meetup #13

astj
October 23, 2019

Mackerel のコンテナ監視の近況 / Mackerel Meetup #13

astj

October 23, 2019
Tweet

More Decks by astj

Other Decks in Technology

Transcript

  1. 3 • mackerel-container-agent について ◦ 概要 ◦ 最近 (Meetup #13

    ~) のアップデート • ECS クラスター監視について 今日の話題
  2. 5 • コンテナ監視用の軽量エージェント ◦ mackerel-agent とは別のエージェントです • Amazon ECS と

    Kubernetes に対応 • 1 タスク / 1 Pod ごとにひとつの「ホスト」 mackerel-container-agent
  3. 7 • タスク / Pod を「ホスト」として登録 ◦ サービス・ロールの割り当て • リソース状況をメトリックとして投稿

    ◦ コンテナごとの CPU、メモリ、トラフィック ◦ => 受け取った Mackerel サーバー側で監視 • プラグインの実行 ◦ チェック監視、カスタムメトリックの投稿 container-agent でやること
  4. 11 • クラスタやノードの監視 ◦ ノードの情報: mackerel-agent ▪ 実行しているコンテナの情報: mackerel-plugin-docker ◦

    クラスタの情報: ▪ ノード数、タスク/Pod数、… ▪ ECS の場合: AWS インテグレーション container-agent でやらないこと
  5. 12 • 監視対象のコンテナに横付け(Side-car) ◦ ECS: タスク定義 ◦ Kubernetes: Pod manifest

    • ECS / K8s の metadata API から情報を取得 ◦ ECS: Task Metadata Endpoint v3 ◦ Kubernetes: kubelet API mackerel-container-agent
  6. 14 TaskDefinition: Type: AWS::ECS::TaskDefinition Properties: RequiresCompatibilities: - FARGATE NetworkMode: awsvpc

    Memory: 512 Cpu: 256 ContainerDefinitions: - Name: app Image: ... - Name: mackerel-container-agent Image: mackerel/mackerel-container-agent:latest Memory: 128 Environment: - Name: MACKEREL_CONTAINER_PLATFORM Value: ecs - Name: MACKEREL_APIKEY Value: <YOUR_MACKEREL_APIKEY> Essential: false container-agent の設定 (ECS) 元々のタスク定義 サイドカーを追加
  7. 15 container-agent の設定 (ECS) - Name: app - Name: mackerel-container-agent

    Image: mackerel/mackerel-container-agent:latest Memory: 128 Environment: - Name: MACKEREL_CONTAINER_PLATFORM Value: ecs - Name: MACKEREL_APIKEY Value: <YOUR_MACKEREL_APIKEY> Essential: false
  8. 20 • ECS 向けの設定が統一 (v0.1.0) ◦ 注意: ECS コンテナエージェント /

    Fargate プラットフォームのバージョン 機能追加・変更 ecs, ecs_v3, ecs_awsvpc,fargate ecs
  9. 23 • before: ◦ 「ホスト」 ▪ 1台200メトリックまで 1800円/台 • after:

    ◦ 「スタンダードホスト」 ▪ 1台200メトリックまで 1800円/台 ◦ 「マイクロホスト」 ▪ 1台30メトリックまで 648円/台 課金体系の変更 ※2019/05当時のスタンダードプランの税込金額です。 現在は消費税増税に伴い金額を改定しています。
  10. 24 • タスク / Pod は「マイクロホスト」に • 殆どの場合1タスク/Pod = 1マイクロホスト

    ◦ (メトリック数が多くなる場合複数台換算) ▪ 非常に多くのコンテナを含む場合 ▪ プラグインを多数追加した場合 課金体系の変更
  11. 31 • 1クラスター = 1マイクロホスト • CloudWatch を元にメトリックを取得 ◦ クラスター全体でのリソース状況

    ▪ (CPU, メモリ) の (割り当て, 利用) ◦ サービスごとのリソース状況 ▪ タスク実行数 ▪ (CPU, メモリ) の (割り当て, 利用) AWS インテグレーション - ECS
  12. 32 • クラスター全体の情報が1「ホスト」に集約 • container-agent で取れない情報はあまりない ◦ 例: ロールの CPU

    積み上げグラフ • 要件に応じて使い分けてご利用ください! ECS クラスターの監視