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 monitoring with HashiCorp

180 views

Published on

TerraformでDatadogのダッシュボードの構築をIaC化。
DatadogでVaultやConsulをモニタリング。

Published in: Technology
  • Be the first to comment

Datadog monitoring with HashiCorp

  1. 1. s Copyright © 2018 HashiCorp HashiCorp Solution engineer 伊藤仁智 !1 DataDogにTerraformを あげましょう
  2. 2. Copyright © 2018 HashiCorp About me !2 名前:伊藤仁智(まさとも) 2018年年9⽉月1⽇日に発⾜足したHashiCorp Japanの⼀一⼈人⽬目の社員です。 以前は、 • ゲームプラットフォーム開発 • Continuous Delivery Pipelineツール販売 • ソフトウェアテストツール販売 • 組込系リアルタイムOS販売 • ガチの組込系エンジニア などをしてました
  3. 3. Copyright © 2018 HashiCorp About me !3 ロードバイク
  4. 4. Copyright © 2018 HashiCorp About me !4 ハーレー
  5. 5. Copyright © 2018 HashiCorp About me !5 キャンプ
  6. 6. Copyright © 2018 HashiCorp About me !6 愛猫 とらじろう
  7. 7. Copyright © 2018 HashiCorp About me !7 祭
  8. 8. Copyright © 2018 HashiCorp !8 ミッション キー製品 設⽴立 2012 by Mitchell Hashimoto and Armon Dadgar We enable organizations to Provision, Secure, Connect, and Run any infrastructure for any application 1.アプリケーションを実⾏行行するインフラのProvision 2.アプリケーションをSecureに 3.アプリケーションデプロイをRun 4.アプリケーションをConnectする CEO Dave MacJannet
  9. 9. Copyright © 2018 HashiCorp TEAMS & ORG Enterprise Feature • Collaboration • Operations • Governance & policy !9 DEVELOPMENT SECURITY OPERATIONS Run applications Secure infrastructure & applications Provision infrastructure HashiCorpの4製品 THE PRACTITIONER
  10. 10. s Copyright © 2017 HashiCorp !10 Provision
  11. 11. Copyright © 2018 HashiCorp !11 Private cloud EARLY CLOUD MULTI-CLOUD + SaaS Azure GCP … + AWS TRADITIONAL
 DATACENTER ハイブリッドなインフラへのシフト 専⽤用マシン       → オンデマンド
  12. 12. Copyright © 2018 HashiCorp INFRASTRUCTURE AS CODE !12 EXTENSIBLE PROVIDER MODEL Core Alibaba GCP AWS Azure TERRAFORM CONFIGURATION DEVELOPERS OPERATOR 様々なインフラへのプロビジョニング - Provision … Nomad Consul Vault F5 Akamai Heroku GitHub Kubernetes Fastly Datadog DNSimple
  13. 13. s Copyright © 2017 HashiCorp !13 Secure
  14. 14. Copyright © 2018 HashiCorp 境界のないネットワーク上のアプリケーションセキュリティ !14 Security
  15. 15. Copyright © 2018 HashiCorp 境界のないネットワーク上のアプリケーションセキュリティ !15 AWS Private cloud Azure GCP Alibaba Security 「強固な城壁」を作るアプローチはもはや通⽤用しない・・・ Service App Service Service Service App App App Auth Auth Auth Auth IPベース       → IDENTITYベース
  16. 16. Copyright © 2018 HashiCorp !16 信頼できるアイデンティティに対して、安全にシークレットを提供する 認証 アイデンティティによるアクセス シークレットエンジン ポリシーに基づいたシークレット管理理 クライアント
  17. 17. Copyright © 2018 HashiCorp !17 信頼できるIDPとの連携 信頼できるIDPで認証 Authentication 認証 アイデンティティによるアクセス シークレットエンジン ポリシーに基づいたシークレット管理理 クライアント
  18. 18. Copyright © 2018 HashiCorp !18 Tokenの取得 信頼できるIDPで認証 Authentication 認証 アイデンティティによるアクセス シークレットエンジン ポリシーに基づいたシークレット管理理 クライアント Token ポリシー • シークレットエンジンへのアクセス • APIエンドポイントへのアクセス アプリやシステムへのアクセスを認可 Authorization
  19. 19. Copyright © 2018 HashiCorp !19 シークレットのリクエスト 信頼できるIDPで認証 Authentication 認証 アイデンティティによるアクセス シークレットエンジン ポリシーに基づいたシークレット管理理 クライアント Token アプリやシステムへのアクセスを認可 Authorization ポリシー • シークレットエンジンへのアクセス • APIエンドポイントへのアクセス
  20. 20. Copyright © 2018 HashiCorp !20 シークレットの取得 信頼できる認証基盤 Authentication 認証 アイデンティティによるアクセス シークレットエンジン ポリシーに基づいたシークレット管理理 クライアント Token アプリやシステムへのアクセスを認可 Authorization サービスの提供 ▪ Credentialの付与 ▪ 静的シークレット ▪ 動的シークレット ▪ 証明書 ▪ 暗号化サービス シークレット ポリシー • シークレットエンジンへのアクセス • APIエンドポイントへのアクセス
  21. 21. s Copyright © 2017 HashiCorp !21 Connect
  22. 22. Copyright © 2018 HashiCorp AWS Private cloud Azure GCP Alibaba DB JAR Lambda C# node.js container モノリシック → マイクロサービス Web DB DB DB Big query Payment Web Service 1 Service 2 ホストベース       → サービスベース Payment Web DB Service 1 Service 2 Big query
  23. 23. Copyright © 2018 HashiCorp AWS Private cloud Azure GCP Alibaba DB JAR Lambda C# node.js container 全てのアプケーションをコネクトする - Connect Service 
 Discovery Web DB DB DB Big queryPayment Web ▪ サービスの登録・カタログ化 ▪ DNSとHTTPインターフェース ▪ ヘルスチェック Service 1 Service 2 redis.service.consulpayment.service.consul web.service.consul bq.service.consul
  24. 24. Copyright © 2018 HashiCorp AWS Private cloud Azure GCP Alibaba DB JAR Lambda C# node.js container 全てのアプケーションをコネクトする - Connect Service Segmentation Web DB DB DB Big queryPayment Web Service 1 Service 2 X ▪ サービス間のAuthorization ▪ サイドカープロキシ ▪ mTLSコネクション $ consul intention create -deny web '*' Created: web => * (deny) $ consul intention create -allow web app Created: web => app (allow) $ consul intention create -allow web db Created: web => db (allow)
  25. 25. Copyright © 2018 HashiCorp AWS Private cloud Azure GCP Alibaba DB JAR Lambda C# node.js container 全てのアプケーションをコネクトする - Connect Web DB DB DB Big queryPayment Web • K/Vストアで設定を保管 • リアルタイムでの設定変更更 – 設定ファイル – 環境変数 • サービスのリロードやリスタートを実⾏行行 Service 1 Service 2 Service Configuration K/V Config Config Config Config
  26. 26. s Copyright © 2017 HashiCorp !26 Run
  27. 27. Copyright © 2018 HashiCorp !27 Application Platform AWS Private cloud Azure GCP Alibaba DB JAR Lambda C# node.js container 様々なアプリケーション - Run 密結合       → 疎結合
  28. 28. Copyright © 2017 HashiCorp !28 ユーザー Nomad Servers JobをSubmit Nomad Clients AppのDeploy Bin Packing 様々なアプリケーション - Run タスクの実⾏行行
  29. 29. s Copyright © 2017 HashiCorp !29 Provision Secure Connect Run
  30. 30. Copyright © 2018 HashiCorp TEAMS & ORG Enterprise Feature • Collaboration • Operations • Governance & policy !30 DEVELOPMENT SECURITY OPERATIONS Run applications Secure infrastructure & applications Provision infrastructure HashiCorpの4製品 THE PRACTITIONER
  31. 31. 監視はどうするの?
  32. 32. Copyright © 2018 HashiCorp VaultやConsulを監視 !32 DogStatsD DogStatsD app.datadoghq.com HTTPS PUSH Reference to Vault/Consul metrics https://www.vaultproject.io/docs/internals/telemetry.html https://www.consul.io/docs/agent/telemetry.html プロビジョン
  33. 33. Copyright © 2018 HashiCorp まずはDatadogのAgentをインストール !33 DD_API_KEY=${dd_api_key} bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/ install_script.sh)"
  34. 34. Copyright © 2018 HashiCorp VaultとConsulのConfigを変更更 !34 backend "consul" { address = "127.0.0.1:8500" path = "vault/" } listener "tcp" { address = "127.0.0.1:8200" tls_disable = 1 } telemetry { dogstatsd_addr = "127.0.0.1:8125" disable_hostname = true } { "datacenter": "dc1", "bootstrap_expect": 1, "server": true, "advertise_addr": "$${local_ipv4}", "data_dir": "/opt/consul/data", "client_addr": "0.0.0.0", "log_level": "INFO", "ui": true, "telemetry": { "dogstatsd_addr": "localhost:8125", "disable_hostname": true } } vault.hcl consul.json
  35. 35. ダッシュボードの構築 はどうするの?
  36. 36. Copyright © 2018 HashiCorp Datadog providerでMonitorを作成 !36 provider "datadog" { api_key = “${var.datadog_api_key}" app_key = "${var.datadog_app_key}" } # Cpu monitor resource "datadog_monitor" "cpumonitor" { name = "cpu monitor ${aws_instance.vault.id}” type = "metric alert" message = "CPU usage alert" query = "avg(last_1m):avg:system.cpu.system{host:${aws_instance.vault.id}} by {host} > 60" thresholds { ok = 20 warning = 50 critical = 60 } }
  37. 37. Copyright © 2018 HashiCorp Datadog providerでtimeboardを作成 !37 resource "datadog_timeboard" "vault" { title = "Dashboard on ${aws_instance.vault.tags.Name}" description = "Created using datadog provider in Terraform" read_only = true # Memory usage graph { title = "System mem usage" viz = "timeseries" request = { q = "avg:system.mem.free{host:${aws_instance.vault.id}}" } } # Vault request handled graph { title = "Number of request handled" viz = “timeseries" request = { q = "avg:vault.core.handle_request.count{host:${aws_instance.vault.id}}.as_count()" type = "bars" } }
  38. 38. Copyright © 2018 HashiCorp Terraform applyを実⾏行行すると !38
  39. 39. Copyright © 2018 HashiCorp Dashboardが作成されます !39
  40. 40. s Copyright © 2018 HashiCorp !40 Demo
  41. 41. Copyright © 2018 HashiCorp Demo overview !41 AWS EC2 DogStatsD app.datadoghq.com Provision with AWS provider • VM Instanceの起動 • Vaultのインストール • Consulのインストール • DogStagsDのインストール Provision with Datadog provider • Dashboardの作成 • Monitorの設定 • 監視対象の設定 Metricsの送信 ベンチマークテスト
  42. 42. Copyright © 2018 HashiCorp !42
  43. 43. エンタープライズ製品に興味がありましたら sales_japan@hashicorp.com まで! HahiCorpで働きたい!という⽅方いれば https://www.hashicorp.com/jobs
  44. 44. 以上です。ありがとうございました!

×