Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Datadogでコンテナモニタリングしてみよう

1,957 views

Published on

03/15/2019 Cloud Native Kansai #02
https://cnjp.connpass.com/event/117651/

Datadog ここ掘れワンワン 春の陣

Published in: Technology
  • Be the first to comment

Datadogでコンテナモニタリングしてみよう

  1. 1. 池山 邦彦 | Kunihiko Ikeyama Sales Engineer, Datadog kunihiko.ikeyama@datadog.com Datadog ここ掘れワンワン 春の陣 #datadogJP Datadogでコンテナモニタリングしてみよう
  2. 2. $whoami 池山 邦彦(いけやま くにひこ) Sales Engineer, Datadog 2018年11月 Datadog入社 職務: プリセールスとして、モニタリングの素晴らしさを世に伝える仕事に 従事 なぜDatadogに入社したのか? - Datadog使いやすくて面白い! - 思ったより色んなことできて奥が深い - 犬のロゴかわいい
  3. 3. Datadogってナニ?
  4. 4. リアルタイムの パフォーマンス 可視化 What is Datadog クラウド時代の開発者&運用担当者のためのモニタリング&分析SaaS 強力な アラート ダッシュボード公開や チーム間のコラボレーション 根本原因の 相関と分析 履歴の分析
  5. 5. サービスの稼働をモニタリングするための三本柱 MetricsTraces トレンドやパターンを把握 システムやミドルウェアの パフォーマンス 組み合わせや集計による分析 インシデントの調査 デバッグやトラブルシューティン グ イベントベース Items in Shopping Cart Logins Total Trips Ad Revenue Logs サービス間の原因特定 アプリケーションのスループッ トレイテンシ、エラー リクエストベース ビジネス 分析
  6. 6. インフラ アーキテクチャ 開発サイクル スタック 関係者 モニタリング 集約 モノリス ウォーターフォール 標準化されたオンプレの ベンダーソフトウェ インフラ(管理者) 開発(参加者) 次世代 分散 マイクロサービス アジャイル 多種多様で導入しやすい OSSや SaaSコンポーネント 複数のインフラ・開発チーム レガシー
  7. 7. 環境構築にかかる時間が短縮された! 環境依存のエラーが減って開発効率が上がった! 簡単に環境構築できて手軽に検証できるようになった! デプロイやロールバックがラクになった! コンテナを導入してみて... じゃあコンテナ監視は?
  8. 8. クラウド時代のモニタリング そのポイントは?
  9. 9. ではなく Cattle, not pets ペット 家畜
  10. 10. Tag(タグ) メトリクスに付帯 key:value 形式で1個のメトリックに複数の タグを付与することが可能 フィルタリング/グルーピング サーバーやVM、コンテナをロール、データ センター、ゾーンごとに分析可能に カスタマイズ可能 エージェント設定ファイル、 UI、インテグレーション 等々、自身でタグの付与が可能 タグごとのモニタリング・分析
  11. 11. Datadogでコンテナのモニタリング コンテナの負荷状況を一覧表示 (docker stats や ctop と同様) コンテナの全体稼働状況を俯瞰 (ホストマップのコンテナ版)
  12. 12. docker run でエージェントのコンテナを起動 環境変数 DD_API_KEY でDatadog API Keyを指定 https://docs.datadoghq.com/agent/docker/ コンテナモニタリングコトハジメ 何をどうやってモニタリングできるの? 基本的にはDatadogエージェントのコンテナを動かすと 同一ホスト内の全コンテナとホストのメトリクスを取得するよ DaemonSetを kubectl create で作成 Helm chartもあるよ https://docs.datadoghq.com/agent/kubernetes/ daemonset_setup/ タスク作成してDaemonサービスとして実行 https://docs.datadoghq.com/integrations/amaz on_ecs/ サイドカーコンテナでエージェント実行 https://docs.datadoghq.com/integrations/ecs_f argate/
  13. 13. コンテナのタグ Tips Datadogエージェントコンテナの環境変数に設定しよう DD_TAGS DD_DOCKER_LABELS_AS_TAGS エージェントの監視対象コンテナ全てにタグをつける 例) tag-key-1:tag-value-1 tag-key-2:tag-value-2 DD_KUBERNETES_POD_LABELS_AS_TAGS Dockerコンテナのラベルをタグに変換する 例) {"docker-label-1":"dd-tag-1", "docker-label-2":"dd-tag-2"} Podのラベルをタグに変換する 例) {"pod-label-1":"dd-tag-1", "pod-label-2":"dd-tag-2"}
  14. 14. こんなタグ付けてみよう source ログのパイプライン(パーシングやFacetマッピング)でのロ グ種類の判別用 service APM/メトリクス/ログの相関で利用 env 環境(prod / staging / dev 等) role 各リソースの役割(web / database / appserver 等) どんなタグつけよう? ー 迷ったときはまずは以下のタグを使いましょう container_id container_name image_name といったコンテナのメタ情報は Datadogエージェントで自動的にタグ付けされる
  15. 15. 基本的な設定はエージェントコンテナの環境変数で定義 コンテナのライブプロセスを取得 その他の環境変数 DD_APM_ENABLED DD_LOGS_ENABLED コンテナアプリケーションの APMを有効にする APMの設定方法は → https://docs.datadoghq.com/agent/docker/apm/ DD_PROCESS_AGENT_ENABLED コンテナのログを収集して Datadogに送信 その他の環境変数はこちら参照 → https://docs.datadoghq.com/agent/docker/
  16. 16. オーケストレーションのモニタリング 1. ホスト 2. コンテナ 3. アプリケーション 4. オーケストレーション
  17. 17. Kubernetesメトリクスあれこれ - Node Pod ReplicaSet Deployment DaemonSet等の状態 (Ready / Available / Schedled 等) - Nodeごと、Podごと、コンテナごとのリソース使用率 - リソース(コア数、メモリ等)の必要数や上限 - コンポーネントごとのイベント - Datadogエージェントが自動でタグを付与 pod_name container_id image_name pod_phase kube_deployment kube_replica_set 等々
  18. 18. コンテナモニタリングに関する傾向 8 Emerging Trends in Container Orchestration https://www.datadoghq.com/container-orchestration/ Datadogのお客様によるコンテナオーケストレーションのご利用状況 - AWS, GCP, Azureいずれのもコンテナオーケストレーションでは Kubernetesが多く、増加傾向にある - コンテナ利用のお客様の3分の1がKubernetes - コンテナ初期利用の40%以上はオーケストレーション利用
  19. 19. コンテナモニタリングに関する傾向(AWS編) Datadogのお客様によるAWSにおけるコンテナのご利用状況 - AWSでのコンテナ利用は増加傾向にあり、EKSのリリースにより 選択の幅が大いに広がった - DatadogでのFargateモニタリングは増加傾向 - ECSではDockerレジストリに公開されているイメージはあまり使 われない(カスタムアプリケーションの用途がメイン?) 8 Emerging Trends in Container Orchestration https://www.datadoghq.com/container-orchestration/
  20. 20. マイクロサービスのトレース 新バージョンのOpenTracingをDatadog のトレースに組み込んでいる 分散トレーシングによりマイクロサービス間の トレーシングが可能 サービスマップによって依存関係と パフォーマンスを可視化
  21. 21. 分散トレーシング APIコールのHTTPリクエストヘッダに X-Datadog-Trace-Id と X-Datadog-Parent-Id を追 加することでマイクロサービス間のトレーシングが可能 from ddtrace import tracer @app.route('/think/') def think_handler(): thoughts = requests.get('http://thinker:8000/', headers={ 'x-datadog-trace-id': str(tracer.current_span().trace_id), 'x-datadog-parent-id': str(tracer.current_span().span_id), }, params={ 'subject': flask_request.args.getlist('subject', str), }).content from ddtrace import tracer from ddtrace.contrib.aiohttp import trace_app trace_app(app, tracer, service='thinker-microservice') app['datadog_trace']['distributed_tracing_enabled'] = True
  22. 22. Synthetics - 外形監視 サービスを外側から監視 複数の拠点から任意のサイトや APIエンドポイントに HTTP(S)リクエストを送信して監視 クライテリアとしてステータスコード、レスポンス時間、 ヘッダ等の指定が可能 モニター対象として通知したり、稼働状況をダッシュ ボードで可視化することが可能 2019年3月 GAになりました
  23. 23. Uptime Widget
  24. 24. ということで・・・
  25. 25. お試しください 14日間のフリートライアルにサインアップ! https://www.datadoghq.com/
  26. 26. 3月20日(水) Datadog CTO来日講演 w/AWS(仮) https://www.datadoghq.com/ja/event/japan-meetup-19/ 4月9日(火)、10日(水) DevOps Days Tokyo 2019 ゴールドスポンサー!! 4月16日(火) Cloud Native Days Fukuoka Datadogで実現するこれからのコンテナ監視 https://cloudnativedays.jp/cndf2019/ 4月25日(火) Cloud Native Sapporo #02 https://cnjp.connpass.com/event/119068/ 告知
  27. 27. Now Hiring Sales & Engineers and other 現在、Datadogで働く仲間を募集中です 募集職種や募集要項など、話を聞いてみたいと 思われたらお気軽に下記までご連絡ください! Datadog 採用担当 email: erika.fujiwara@datadoghq.com HP: https://www.datadoghq.com/careers/ Wantedly https://www.wantedly.com/companies/datadog
  28. 28. Let’s explore monitoring in the cloud age
  29. 29. Thank you ご利用に関するお問い合わせはこちら sales-tokyo@datadoghq.com

×