- ライター:猪子 亮
- 2019年ネットワンシステムズに新卒入社。
社内/外 向けサービス開発に従事。
主にWeb アプリケーションのフロントエンド、バックエンド開発。
他には社内の自動化推進、業務改善活動、開発エンジニア育成などに取り組んでいます。
目次
はじめに
本記事は、まだDatadogを使用したことがない方を対象に、概要と導入方法を理解することを目的としています。
Datadog には多くの便利な機能が実装されており、一度に全てを理解するのは容易ではありません。
そこで、一般的なオンプレミス環境におけるサーバー監視を例に、実際の操作画面のキャプチャを使い解説します。
なお、本記事は執筆時(2021年6月)の情報をもとにしており、記事内で使用しているDatadog Agentのバージョンは以下の通りです。
Agent 7.28.1 - Commit: 85dc5dd - Serialization version: v4.67.0 - Go version: go1.15.11
Datadogとは
Datadog は、 2010年ニューヨークで創業された Datadog .Inc が提供する、SaaS型運用監視サービスです。
当初は、“統合データプラットフォーム” を謳っており、データの統合・可視化に注力していましたが、徐々にサービスを拡張し続けています。インフラストラクチャー監視、APM(Application Performance Monitoring)、Log 管理と監視対象の領域を拡げるとともに、近年では Day2 オペレーションを見据えたセキュリティ監視、インシデント管理など、さらなる成長を続けています。
特徴としては、インフラストラクチャーからアプリケーション、オンプレやクラウドなど場所や規模に関係なく、Datadog 一つで監視できることです。
また、導入を簡単にする機能として、多くのインテグレーションがビルドインで提供されており、その数は、本記事執筆時点で450を超えます。
詳しくはこちらをご覧ください。
導入から利用までの流れ
インテグレーションの種類
Datadog で監視を行うには、インテグレーションを使って導入します。
インテグレーションは大きく以下の3つに分類できます。
- Agent による連携(check によるミドルウェア監視や SNMP 連携など)- 後述
- クローラー による連携 (AWS などのクラウド API など)
- ライブラリ による連携 (Python SDK などを使った独自連携など)
クローラーによる連携はAgent による連携とは異なり、Datadog の管理画面から認証情報を入力することで設定できます。
クローラーはAWSやAzureなどのクラウドとAPI連携することにより、メトリックを取得します。
ライブラリによる連携は、主にアプリケーションの監視に用います。
ライブラリインテグレーション(Datadog にログを送信するためのスクリプト)をアプリケーション内に追加します。
ライブラリインテグレーションでは、Datadog API を用いてDatadog にログを送信します。
Python やNode.js などのライブラリインテグレーションが提供されています。
Datadog はSaaS 製品のため、どの連携方法においても、取得するデータはインターネットを介してDatadog US リージョンへ送信されます。
ただし、Datadog はus-east-1 リージョンでエンドポイントを公開しているため、AWS PrivateLink を用いて閉域接続することも可能です。
Datadog Agent による連携
Agent による連携は、監視対象となるサーバーにDatadog Agent と呼ばれるソフトウェアをインストールして行います。
サーバーのCPUやメモリのメトリクス、ログファイルなどは、Agent を経由してDatadog に送信されます。
(Trace AgentやProcess Agent などはプロセスを示しており、本記事では紹介しないAPMやProcess 機能を使う場合に用いられます。)
Datadog Agent にはインテグレーションコアと呼ばれる、Datadog が公式にサポートしているインテグレーションが含まれています。
例えば、Apachやnginx などの代表的なWebサーバーや、Active Directory などが含まれます。
その他にはインテグレーションエキストラと呼ばれる、コミュニティで開発されたインテグレーションを利用することもできます。
オンプレミスのサーバー監視を行う
Agent による連携例として、オンプレミスのサーバー監視を行う手順を紹介します。
取得したデータが、Datadog のダッシュボードで確認できるまでの流れは以下になります。
1. Datadog Agent のインストール
2. Datadog Agent の設定
3. 情報が取得されていることをDatadog 上で確認
4. ダッシュボードを作成 (以下手順では省略)
1. Datadog Agentのインストール
Datadog サイト(要Datadog アカウント)上にAgent インストール方法が記載されています。
インストール先の環境(本例ではCentOS7)を選択するとワンライナーのスクリプトがあるので、これをインストール先のサーバーで実行します。
以下は実際にサーバーで実行したインストールコマンドです。
CentOS の場合、インストールスクリプトでは yum を使ってAgent(datadog-agent)のインストールが行われます。
Datadog のリポジトリからGPGキー、パッケージのインストールが行われ、systemd サービスとして登録されます。
インストール後、systemctl コマンドでサービスの状況を確認すると、既に稼働していることが確認できます。
2.Datadog Agent の設定
設定ファイルは、/etc/datadog-agent/ 配下に格納されています。
datadog.yaml にはdatadog-agent 全体の設定を記述します。
また、conf.d/ 配下には各インテグレーションの設定ファイルが配置されています。
ここでは一旦何も設定は編集せず、インストール時のまま進みます(インテグレーションの設定は後述)。
3. 取得した情報をDatadog 上で確認
先の手順で設定はインストール時のままでしたが、Datadog サイト上からAgent をインストールしたサーバーのOSやCPU、メモリなどの基本情報は確認できます。
また、ホストダッシュボードという名前で用意されているデフォルトのダッシュボードも確認できます。
Agent インストール後、ホストサーバーに関するメトリクスが収集されていることを確認できます。
本記事では省略しますが、収集したメトリクスを使って自由にダッシュボードを作成することもできます。
インテグレーションの設定
次に、Webサーバーの nginx を例に、nginx のメトリクスとログを送信する設定をしていきます。
Datadog ではインテグレーションコアでnginx インテグレーションが提供されていますので、こちらを使用します。
(詳細な手順は公式のドキュメントをご参照ください。)
以下の手順で行います。
1. nginx 設定ファイルの追加
2. Datadog nginx インテグレーション設定ファイルの編集
3. datadog-agent の設定ファイルを編集
4. サイト上で収集したデータの確認
1. nginx 設定ファイルの追加
nginx のメトリクスを取得する為にnginx の stub_status モジュールを使用します。
/etc/nginx/conf.d/status.conf として設定ファイルを作成します。
以下の設定により、localhost:81 へアクセスすると、nginx のメトリクスが取得可能になります。
2. Datadog nginx インテグレーション設定ファイルの編集
次にDatadog nginx インテグレーションの設定ファイルに、収集するログファイルに関する記述を追記します。
/etc/datadog-agent/conf.d/nginx.d/conf.yaml.example を同階層にコピーし、サフィックスのexample を削除して保存します。
3. datadog-agent の設定ファイルを編集
1と2の手順でnginx のメトリクスとログ収集に関する設定は完了していますが、datadog-agent の設定でログ収集を有効化する必要があります。
datadog.yaml のlogs_enable をtrue にします。
以上で全ての設定が完了したので、nginxとAgentを再起動し、設定を反映させます。
すると、先ほど設定したnginx のメトリクス情報とログがDatadog へ送信され、サイト上で確認できます。
4. サイト上で収集したデータの確認
以下はnginx インテグレーションにより収集されたメトリクスの一例です。
上記いずれかのグラフにカーソルを合わせると、その時刻のログをトレースして確認できます。
このメトリクスやイベントの情報からログを簡単にトレースできるのも、Datadog の特徴です。
以下は18:23:20 の時刻にカーソルを合わせ、クリックしてオプションを表示させている例です。
上記画像の"View related logs" を選択すると、ログ画面へ遷移し、その時刻のログを確認できます。
また、ログを選択することにより、ログの詳細を見やすい形で確認することもできます。
オンプレミス 仮想基盤監視の場合
VMware vSphere を例に、メトリクスの収集からダッシュボードの確認までを行います。
vSphere もnginx 同様にDatadog のインテグレーションコアにインテグレーションが含まれています。
そのため、先ほどのnginx と手順が異なるのは設定するファイルのみです。
(詳細は公式ドキュメントをご参照ください)
以下はconf.d 配下 vsphere.d/conf.yaml の設定例になります。
ログの検索やダッシュボード作成ではタグによりソースを絞り込むため、適切なタグ付けが重要です。
Agentを再起動させるとDatadog にメトリクスが送信され、サイト上で確認できるようになります。
vSphereのログを収集したい場合、Agent がインストールされたサーバーにsyslog を構築することにより送信できます。
同様にNW機器などのログもDatadog で収集可能です。
まとめ
本記事ではDatadog の概要と導入に対する敷居の低さを視覚的に分かりやすい形で紹介しました。
用意されているインテグレーションが非常に便利なため、短時間で簡単に導入できました。
また、Datadog では非常に多くの機能が提供されており、今も増え続けています。
ここで紹介したメトリクスとログ収集、トレース機能はDatadog が提供する機能のごく一部分です。
やや高度な内容にはなりますが、下記関連記事ではUXモニタリングについて紹介しています。
今後はNW機器やクラウドの監視、アプリケーションの監視などを紹介予定です。
商標について
記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。
※本記事の内容は執筆者個人の見解であり、所属する組織の見解を代表するものではありません。