今年の9月末に行われたServerlessconf Tokyoに行ってきたのですが、
そこで猫も杓子もDatadogというくらい、Serverlessの監視系の話では出てきたので、
実際どんなものなのか触ってみました。
Datadogとは
Datadog
Modern monitoring & analytics
See inside any stack, any app, at any scale, anywhere.
モニタリングとログ解析などの機能を持ったツールです。
Datadog使ってみて嬉しかったこと
Integrationが無料
Instantly see into all your systems, apps, and services | Datadog
これ無料でできちゃっていいんだというくらい、Integrationいくらでもできます。
実際試したのはAWS Integrationだけですが、Free Planで問題なく稼働しています。
ただしAWSからデータを抜き出すのにはもちろんお金がかかるので、完全無料とはいきません。
Datadog関係以外の費用も混ざってますので、金額はなんとなくで見てください。
いろいろ試行錯誤しているときに、CloudTrailの2つ目を作ったのでTrailの費用が発生していますが、AWS Integrationだけであれば、ほとんどCloudWatchとLambdaとS3が対象になると思います。
これ見てわかるようにCloudWatch高めです。
CloudFront/ELB/VPC Flow logsなどS3に出力できるものは、S3に出力してからLambdaでLog Managementに上げるのがいいと思います。
Dashboardがデフォルトでたくさんある
Real time interactive dashboards | Datadog
こういうのすごく嬉しい、いちからダッシュボードだったりテンプレート作るの意外と大変なので。
初期設定CloudFormationがある
これがあるおかげでデータ投入で詰まることはあんまりなかったです。
WEBにもたくさん情報ありますし。
- dd-aws-lambda-functions/Log at master · DataDog/dd-aws-lambda-functions
- dd-aws-lambda-functions/vpc_flow_log_monitoring at master · DataDog/dd-aws-lambda-functions
- dd-aws-lambda-functions/rds_enhanced_monitoring at master · DataDog/dd-aws-lambda-functions
AWS Integration用のRoleを作るのもめんどうという人のためにCFnも置いておきます。
CloudTrail対応版になってます。
Log ManagementのデフォルトFilterがたくさんある
Datadog log management & analytics | Datadog
上記のLambdaを使ってCloudFront/ELB/CloudTrailあたりを送ったあとの状態です。
長すぎてキャプチャできませんでしたが、私の設定上では29個ありました。
AWS Marketplaceで買える
会社で使う場合は、Marketplaceから買えるといろいろと都合がいい。
Datadog本家とちょっとプランが違うところがあるので注意が必要。
実際に購入して使ったわけではないので、以下は推測が混じります。
-
Datadog Pro|Enterprise
- Infrastracture/APMが月・年単位で1ホストから定額購入できる
- 定額購入したホスト以上を使った場合は時間単位の従量課金
- Log ManagementのほうをSubscribeしなくてもログ送れば使える(当然費用はかかる)
-
Datadog Pro|Enterprise (Container Agent)
- 上記プランの1ホストごとに10|20Container立ち上げられる
- Agent入りのコンテナかAMIが提供される?
- 上記プランの1ホストごとに10|20Container立ち上げられる
-
Datadog Pro (Pay-As-You-Go)
- Infrastracture/APMが時間単位の従量課金で利用できる
- 1つ目のものと違って定額購入はできない(しなくていいとも言える)
-
Datadog Pro - Pay-As-You-Go (Container Agent)
- 上記プランの1ホストごとに10|20Container立ち上げられる
-
Datadog Log Management
- 15-day retentionで利用できる
- 月単位で100万ログごとの従量課金
- Unitsは期間を表しているそうです
- 1monthを3Units購入すれば3ヶ月、12monthsを2Units購入すれば24ヶ月
- 複数Unitsで買えば請求が一気にくる仕様かな?
- SubscribeしなくてもInfrastracture・APMのAgent入れれば使える(当然費用はかかる)
Datadogを使ってみてうまくいかなかったこと
請求は一括にしつつ内部的には分けたい
Configuring Teams & Organizations with Multiple Accounts
複数DatadogアカウントをまとめるMulti-Account Organizationsという機能を使います。
これで子アカウントをたくさん作れるし、請求を一括にすることができます。
まとめるのはできるのですが、AWSみたいに各アカウントの請求額は出してくれないみたいです。一括された費用しか出てこない(要望あげよう)。
各アカウントの請求額が見たかった場合は、各アカウントの利用量を見て自分で計算する必要があるとのこと。
親アカウントから子アカウントのデータを見たい
Multi-Account Organizationsを使えばいけるかと思ったんですが、できないみたいです。残念。
全AWSアカウントのCloudTrailログを集計したかったが上限に引っかかった
全AWSアカウントのCloudTrailやVPC Flow Logsが入ったアカウントとDatadogを繋げようとしたが、上限に引っかかりました。
Too many accounts to process in this bucket
Could you check if there is indeed over 500 streams coming from your accounts? As a reminder a stream is being defined as a unique combination of an account + region, so if you have X accounts, and each of them are bound to Y regions, then the number of streams would X*Y.
サポートに問い合わせたら、500 streamsを超えるBucketを指定した場合にエラーになるとのこと。
CloudTrailは全アカウントの全リージョンから取っているので500は軽く超えていました。
現在AWSは19リージョンあるため、全リージョンのCloudTrailを取っていた場合は 26アカウント
がDatadogから読み取れる上限となります。
Integrationではどうにもならなそうでしたので、いまはLog ManagementにCloudTrailログを上げています。
Elastic Cloudも使ってみた
Elasticsearch+Kibanaでいいんじゃない?と心がささやくので、こちらも使ってみました。
監視機能を持ったX-Packがほしかったので、実際に使ったのはElastic Cloud。
機能的にはDatadogと同じことはもちろんできました。
ただ自分で用意しないといけない部分が思った以上に多いです。
Elasticsearch+Kibanaに慣れていないとダッシュボード作る前に挫折しそう。
- DatadogのLog Managementにもっと大量にデータを入れたい
- DatadogのLog Managementでもっと長い期間のデータを集計したい
- Kibana大好き
という人以外は、Datadogのほうがいいと私は思います。
総評
困ったところはありましたが、どれも全AWSアカウントのログを扱おうとしたところなので、単一AWSアカウントの集計・監視・可視化ツールとしては、もうDatadogでいいじゃないかとなるくらいには良かったです。
この機能群でこの金額はコスパいいし、それなりに使えるようになるまでが早い。
CloudWatchで監視設定作ったり、KibanaでDashboard作るよりも、Datadogは学習難度がかなり低く感じられました。
無料版でも結構ガッツリ使えるので、みんなDatadog使ってみましょう!