Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
1 Mackerel のコンテナ監視の近況 Mackerel Drink Up #9 Tokyo id:astj (Asato Wakisaka)
Slide 2
Slide 2 text
2 ● id:astj(あさとじぇー) ○ Mackerel 開発チーム ○ アプリケーションエンジニア ○ テックリード 自己紹介
Slide 3
Slide 3 text
3 ● mackerel-container-agent について ○ 概要 ○ 最近 (Meetup #13 ~) のアップデート ● ECS クラスター監視について 今日の話題
Slide 4
Slide 4 text
4 mackerel-container-agent Mackerel のコンテナ監視の近況
Slide 5
Slide 5 text
5 ● コンテナ監視用の軽量エージェント ○ mackerel-agent とは別のエージェントです ● Amazon ECS と Kubernetes に対応 ● 1 タスク / 1 Pod ごとにひとつの「ホスト」 mackerel-container-agent
Slide 6
Slide 6 text
6 タスク / Pod をホストのように扱う container-agent でやること
Slide 7
Slide 7 text
7 ● タスク / Pod を「ホスト」として登録 ○ サービス・ロールの割り当て ● リソース状況をメトリックとして投稿 ○ コンテナごとの CPU、メモリ、トラフィック ○ => 受け取った Mackerel サーバー側で監視 ● プラグインの実行 ○ チェック監視、カスタムメトリックの投稿 container-agent でやること
Slide 8
Slide 8 text
8 container-agent でやること
Slide 9
Slide 9 text
9 container-agent でやること
Slide 10
Slide 10 text
10 container-agent でやること
Slide 11
Slide 11 text
11 ● クラスタやノードの監視 ○ ノードの情報: mackerel-agent ■ 実行しているコンテナの情報: mackerel-plugin-docker ○ クラスタの情報: ■ ノード数、タスク/Pod数、… ■ ECS の場合: AWS インテグレーション container-agent でやらないこと
Slide 12
Slide 12 text
12 ● 監視対象のコンテナに横付け(Side-car) ○ ECS: タスク定義 ○ Kubernetes: Pod manifest ● ECS / K8s の metadata API から情報を取得 ○ ECS: Task Metadata Endpoint v3 ○ Kubernetes: kubelet API mackerel-container-agent
Slide 13
Slide 13 text
13 mackerel-container-agent
Slide 14
Slide 14 text
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: Essential: false container-agent の設定 (ECS) 元々のタスク定義 サイドカーを追加
Slide 15
Slide 15 text
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: Essential: false
Slide 16
Slide 16 text
16 最近のアップデート Mackerel のコンテナ監視の近況
Slide 17
Slide 17 text
17 正式版のリリース (2019/06) 最近のアップデート
Slide 18
Slide 18 text
18 2019/02 パブリックベータ (v0.0.1) 2019/06 正式版 (v0.1.0) 最新: v0.2.0 正式版のリリース
Slide 19
Slide 19 text
19 ● 公式プラグイン入りのイメージ ○ v0.0.5 より ○ 一部含めていない公式プラグインもあります ■ 含めてほしいプラグインがあればリクエストを! 機能追加・変更 % docker pull \ mackerel/mackerel-container-agent:plugins
Slide 20
Slide 20 text
20 ● ECS 向けの設定が統一 (v0.1.0) ○ 注意: ECS コンテナエージェント / Fargate プラットフォームのバージョン 機能追加・変更 ecs, ecs_v3, ecs_awsvpc,fargate ecs
Slide 21
Slide 21 text
21 ● S3 上の設定ファイルのポーリング (v0.2.0) ○ 元々はシグナルによる再読み込みを実装 ○ 設定によってポーリングも可能に ○ 再デプロイせず監視設定のみを変更可能 機能追加・変更
Slide 22
Slide 22 text
22 課金体系の変更 (2019/05~) 最近のアップデート
Slide 23
Slide 23 text
23 ● before: ○ 「ホスト」 ■ 1台200メトリックまで 1800円/台 ● after: ○ 「スタンダードホスト」 ■ 1台200メトリックまで 1800円/台 ○ 「マイクロホスト」 ■ 1台30メトリックまで 648円/台 課金体系の変更 ※2019/05当時のスタンダードプランの税込金額です。 現在は消費税増税に伴い金額を改定しています。
Slide 24
Slide 24 text
24 ● タスク / Pod は「マイクロホスト」に ● 殆どの場合1タスク/Pod = 1マイクロホスト ○ (メトリック数が多くなる場合複数台換算) ■ 非常に多くのコンテナを含む場合 ■ プラグインを多数追加した場合 課金体系の変更
Slide 25
Slide 25 text
25 summary Mackerel のコンテナ監視の近況
Slide 26
Slide 26 text
26 ● ECS/k8s 向けのコンテナ監視エージェント ● タスク/Pod をホストのように扱います ○ Mackerel 側でホストと同様に管理・監視 ● タスク/Pod ごとにサイドカーを追加します mackerel-container-agent
Slide 27
Slide 27 text
27 ● 5月から価格体系を改めています ○ ご利用いただきやすくなりました ● 6月に正式版をリリースしました ○ ベータから機能追加・変更しています ○ これからも機能追加を進めてゆきます mackerel-container-agent
Slide 28
Slide 28 text
28 ● ぜひご利用ください! ○ フィードバックもお待ちしています! mackerel-container-agent
Slide 29
Slide 29 text
29 ECS クラスターの監視 おまけ
Slide 30
Slide 30 text
30 ● container-agent はタスクのモニタリング ● ECS クラスターのモニタリング: ○ mackerel-plugin-aws-ecs ○ AWS インテグレーション <= NEW! ECS クラスターの監視
Slide 31
Slide 31 text
31 ● 1クラスター = 1マイクロホスト ● CloudWatch を元にメトリックを取得 ○ クラスター全体でのリソース状況 ■ (CPU, メモリ) の (割り当て, 利用) ○ サービスごとのリソース状況 ■ タスク実行数 ■ (CPU, メモリ) の (割り当て, 利用) AWS インテグレーション - ECS
Slide 32
Slide 32 text
32 ● クラスター全体の情報が1「ホスト」に集約 ● container-agent で取れない情報はあまりない ○ 例: ロールの CPU 積み上げグラフ ● 要件に応じて使い分けてご利用ください! ECS クラスターの監視