Datadogつかいかた備忘録

一人運用を卒業するために社内に向けてデモりながら解説したときのメモを大した内容でもないですが投下しておきます。

####・とは
監視ツールです。
Integrationという設定をすることで色々手軽に監視できて便利です。
特徴としてはタグや変数を用いた柔軟な設定管理、グラフのドリルダウンなどが可能で
オートスケールに対応するための動的な監視の設定も割と手軽に可能なので今時の流行りが詰まっておりお金はかかるが楽なので人気です
ここ最近私の中ではコンテナ監視のデファクトスタンダードの一つのような扱いになっています

インテグレーション設定でクラウド毎にクレデンシャルやクロスアカウントスイッチロールなどの設定をすることで
丸っと軽く見れたりしますが、細かいのがみたければエージェント入れる必要があります
クラウドだけではなくミドルウェアのレベルのIntegration設定も色々あります

####メニューのかいせつ

#####・GetStarted
　　　ここから初期設定の残タスク確認や設定するための頁にいけます

#####・Events
　　　イベントが見られます。インテグレーション設定してるやつ全部出るので項目絞ってみることも可能
　　　期間も変更してみられます。

#####・Dashboads
　　　インテグレーション設定すると勝手にサンプルダッシュボードが入るので、それを歯車からクローンしてカスタマイズできます
　　　ざっくりいうと変数追加してそれをつかった絞り込み設定や見られる時間をドロップダウンリストから動的に変えられるようにGlobaltimeに変更するあたりが便利かなと思いました。
　　　ポチポチするのがしんどいケースでスクリプトで作るというのもしている人をみかけました（Terraformで管理できないこともなかった気がする）
　　　https://techblog.recochoku.jp/5462

#####・Infrastructure
　　　ホストのリストやコンテナのリストやプロセスのリストなどが見られます。
　　　プロセスとコンテナは簡単な設定するとライブモニタリングで勝手に取られる感じです
　　　Functionとかは最近追加されたのでよくわからない
　　　ホストのリストからユーザタグ追加できます（タグつかってダッシュボードで絞り込み変数追加できる）が、ホストの増減が激しいようなケースならコンフィグレーションツールとかで設定撒くときにタグつけたほうがよさそう。クラウドIntegrationしてるとクラウド側で管理してるタグを丸っと取ってきてくれて使えたりします。結構色々なメトリクスが取れるようになるのでべんりです。
https://docs.datadoghq.com/integrations/

#####・Monitors
　　　ここからアラート設定（モニタ）の追加や、メンテ登録（スケジュールドダウンタイム）設定、サマリのチェックをします。
　　　通知メッセージボディ日本語で書くとちゃんと日本語でメール来ていました。slack連携もできるようです。

#####・Metrics
　　　ここから取れるメトリクスを検索して閲覧、出てきたグラフからそのままダッシュボード作るなどが可能です

#####・Integrations
　　　ここからクラウドとかミドルウェアとかのインテグレーションとその設定方法確認などができます
　　　エージェントインストール方法の確認やAPIキーの確認なども可能です
　　　設定時にこいつは監視対象にしたい・しないというのをタグで絞ることが可能

#####・APM
　　　使ってないのですが、アプリケーションの超詳細なモニタリングが可能
https://hackerslab.aktsk.jp/2018/12/23/000000
https://www.datadoghq.com/blog/monitor-php-performance/
イベントレポによるとサービスマップや詳細な連携みるにはヘッダの設定が要るとのこと。
https://dev.classmethod.jp/event/cloud-monitoring-meetup-with-aws-datadogjp/

そのご[php(laravel)onECS(EC2)で環境変数つかって別タスクのdd-agentにトレース送り付ける](https://qiita.com/smallpalace/items/d002715d9a79f852a9db)のをやってみました。

#####・Notebook
　　　使ってないのですが、中の人のアナウンス的には
　　　「障害と復旧プロセスの記録や手順書などにご活用下さい！！ 」とのこと。
　　　https://www.datadoghq.com/blog/data-driven-notebooks/


#####・Logs
　　　これから使う予定ですが、cloudwatchlogsやstackdriverlogsみたいなもののようです。
　　　ローカルの設定ファイルによるIntegration設定は簡単そうですが、
　　　cloudwatchlogsやS3から連携はLambda使うなど必要でした（[軽くテストしたのを書きました](https://qiita.com/smallpalace/items/18413c450e32a42b5bd0)）
https://docs.datadoghq.com/logs/

#####・Synthetics

[こちら](https://qiita.com/smallpalace/items/cc4c0118b817276cb6ac)にかきました。要はURL監視とか証明書監視とかブラウザテストあたりをまとめたもの。

#####・help
　　　ここからマニュアルやライブチャットとリンクしてるっぽいです。
　　　（チャットしたことないけど英語なんじゃないかな。メールは日本語で帰ってきますがプランによってできることが違うようです）
　　　日本人は奥ゆかしいがなんでも言ったもん勝ちで顧客要望で実装される傾向らしく営業から言うよりいいのでメールしたらいいんだそうな。
　　　AWSのサービスはわりと親切にアラート設定すべきメトリクス情報が開設されているページのリンクが各サービスのインテグレーションマニュアルページの下の方にあったり、ここを見てねみたいなリンクが冒頭にあったりしたのでお使いのサービスのマニュアルをよく見るとよいと思います。

#####・team（人影のアイコン）
　　　ご招待するアカウントを管理するところです、読み取り専用と一般、管理者くらいの3段階の権限設定ができるっぽいです。
　　　メールとんだらリンク先にいくとパスワード登録画面が出るかんじ。

#####・自分のアカウント
　　　ログインしてるアカウントの下にorganizationがでてるはず。
　　　MSPアカウントだとサブorganizationを作ることができます（10%offかどうかは営業に連絡して設定してもらってる方かどうかの模様）
　　　週次レポートを送るかどうかなどの設定もここから可能です。

####★エージェントのインストール方法

何にどう入れるかによります。
ホストにAnsibleで入れる入れ方は社内のgitリポジトリに投下したけど普通にIntegrations>Agentから選ぶとみられるというかGaraxyにロールが落ちてるのでそれ使う感じでした
細かい設定変更がしたくなったらvarsを更新する感じです。細かいことはgithubのプロジェクトに書いてありました

そのほか
Integrations>Agentから対象OSなどを選択すると大体入れ方がかいてあります
https://docs.datadoghq.com/agent/?tab=agentv6

クラウドIntegrationするとPaaSのメトリクスとか結構とれたりダッシュボードが付いてきたりします。
エージェント入ってるけど監視対処にしないというタグでフィルタする設定がクラウドインテグレーションの設定画面にあったりします。


####★モニタの登録方法

#####・手でやる
Monitors>ManagedMonitorsからCreateMonitorするといくつか方式を選べるので適宜選んで登録する感じです
アノーマリー（異常検知）とフォーキャスト（予測検知）はAIっぽい仕組みをつかってるらしく別料金らしいです
試用期限すぎるととたんに使えなくなるようなので注意がいります
コンポジットモニターは複数のモニタを組み合わせて設定できるようなのでそのうち使ってみたいです

リソース監視とかはメトリクスで大体なんとかなります。
複数のメトリクスを追加して計算した結果をモニタ登録することもできます。

以下は[LICEcap](http://nagoya-neko.com/licecap/)でちょっとキャプチャしてみたCPUのロードアベレージのモニタを手動設定してる様子です。

![datadog-create-new-monitor-cpuload.gif](https://qiita-image-store.s3.amazonaws.com/0/25031/93a178f6-b8df-3d30-670f-cbc4b411dca5.gif)

CPUコア数取るためにエージェントの設定しないといけなかったりはしますが詳しくはリンク先に書いてあるしIntegrationのconfigureタブに書いてあります。
https://docs.datadoghq.com/integrations/system/#agent-check-system-cores

URL監視がつい最近できるようになってたので、その設定方法も以下リンク先にかきました。
https://qiita.com/smallpalace/items/cc4c0118b817276cb6ac

Integrationの頁とかにとれるメトリクスが書いてありそのしたにとれるイベントが書いてあったりするので
コンテナ系の監視登録ではイベント監視をするのがいいかんじです
あとはサマリで取れる値を見てみるのもいいかんじです

#####・terraformでやる
とりあえず軽く。
terraformコマンドにinitでリポジトリつくる,変数を外だしできるよう定義したtfテンプレートを作りplanでテスト,applyで適用。
既存リソースがあるならそれが消されないようにimportしてあげる必要があります。
手で登録したモニタをimportして整えると使いまわせていい感じになるはず
https://qiita.com/smallpalace/items/8a8f927321c19daef0ad

#####・そのたの方法

dogコマンドだとか公開されてるAPIつかってスクリプト作って登録とかも可能ですが、
たぶん使いまわしやすさとテスト書かなくていい観点からはterraformに軍配があがるかも。
最初pythonスクリプトつかってましたがImmutable的な管理が要る動的な環境でterraformみたいなアレに。

####★スケジュールダウンタイムの設定方法

#####・スケジュールは特に指定なくて今すぐ止めたい
　ということであれば
　ManagedMonitorsからモニタ全チェックして期限なしMuteできます
　（一時的に静観でという話のときに期限を持たせてMuteにするといいと思います）

#####・時間の指定が必要な場合
には、ManagedDowntimeから右上の黄色いschedule downtimeをおして時間を指定して設定します（繰り返しスケジュールで平日だけ見る等もできる）

####★アラートをなかったことにする
永遠に静観でいいよ、もうそのモニタで上がってるアラートの対象ホストが存在しないなどのケースで
TrrigerdMonitorsからResolvedにするかんじです


####★ダッシュボードのカスタマイズ

以下の内容が可能みたいですね。

・変数追加する方法
https://docs.datadoghq.com/ja/guides/templating/
・時間を変えられるようにしてみる
・一からつくる
・グラフにイベントを重ねる

★お値段の件

https://www.datadoghq.com/pricing/
https://docs.datadoghq.com/ja/guides/billing/

MSPアカウントのリセール用のほうですと、10%OFFみたいですね。（Proプラン以上で要申請）
Organizationを分けたりできて親アカウントに紐づいたプランにするとかカスタムドメイン設定するなど可能でした。

以上