LoginSignup
1
0

More than 1 year has passed since last update.

DatadogでLocal DB を監視する

Last updated at Posted at 2021-08-25

これは何

DatadogでEC2(CentOS7)内のLocal DB(MySQL5.7) を監視してみた、のメモです。

はじめに

Datadog Agent は MySQL データベースから、次のような多数のメトリクスを収集できます (一例)。

クエリスループット
クエリパフォーマンス (平均クエリ実行時間、低速なクエリなど)
接続数 (現在開かれている接続、中断された接続、エラーなど)
InnoDB (バッファプールメトリクスなど)

カスタム SQL クエリを使用して、独自のメトリクスを作成することもできます。

MySQLでセットアップ

MySQL サーバーで、Datadog Agent 用のデータベースユーザーを作成します。

$ mysql> CREATE USER 'datadog'@'localhost' IDENTIFIED BY '<一意のパスワード>';

Agent がメトリクスを収集するには、いくつかの権限が必要です。次のように、限られた権限のみをユーザーに付与してください。

mysql> GRANT REPLICATION CLIENT ON *.* TO 'datadog'@'localhost' WITH MAX_USER_CONNECTIONS 5;
mysql> GRANT PROCESS ON *.* TO 'datadog'@'localhost';

有効になると、追加の権限を付与することで、performance_schema データベースからメトリクスを収集できます。

mysql> show databases like 'performance_schema';
+-------------------------------+
| Database (performance_schema) |
+-------------------------------+
| performance_schema            |
+-------------------------------+
1 row in set (0.00 sec)

mysql> GRANT SELECT ON performance_schema.* TO 'datadog'@'localhost';

Datadog設定ファイル編集

MySQL のメトリクスとログの収集を開始するには、/etc/datadog-agent/conf.d/mysql.d/conf.yaml ファイルを編集します。

datadog-agentをインストールすると、サンプルとして、mysql.d/conf.yaml.sampleがあると思います。
使用可能なすべてのコンフィギュレーションオプションについては、サンプルを参照してください。

MySQL メトリクスを収集するには、mysql.d/conf.yaml に次の構成ブロックを追加します。

init_config:

instances:
  - server: 127.0.0.1
    user: datadog
    pass: "<YOUR_CHOSEN_PASSWORD>" # from the CREATE USER step earlier
    port: "<YOUR_MYSQL_PORT>" # e.g. 3306
    options:
      replication: false
      galera_cluster: true
      extra_status_metrics: true
      extra_innodb_metrics: true
      extra_performance_metrics: true
      schema_size_metrics: false
      disable_innodb_metrics: false

Agent を再起動すると、Datadog への MySQL メトリクスの送信が開始されます。

$ sudo systemctl restart datadog-agent

あとはGUIでdatadog-monitorを作成するか、Terraformなどでコードで立ち上げれば、監視できると思います。

TCPで疎通確認する

3306ポートで接続できるか、監視したいので、その設定を入れていきます。

$ vi /etc/datadog-agent/conf.d/tcp_check.d/conf.yaml
init_config:
instances:
  - name: TCP-3306_check()
    host: 127.0.0.1
    port: 3306
    collect_response_time: true
$ sudo systemctl restart datadog-agent

Syntaxエラーがないかチェックします。

$ sudo datadog-agent configcheck

「tcp_check」 として、設定した内容が出ます。

$ sudo datadog-agent status
tcp_check (3.1.1)
    -----------------
      Instance ID: tcp_check:TCP-3306_check:XXXXXXXXXX [OK]
      Configuration Source: file:/etc/datadog-agent/conf.d/tcp_check.d/conf.yaml
      Total Runs: 12
      Metric Samples: Last Run: 2, Total: 24
      Events: Last Run: 0, Total: 0
      Service Checks: Last Run: 1, Total: 12
      Average Execution Time : 0s
      Last Execution Date : XXXXXXXXXX
      Last Successful Execution Date : XXXXXXXXXX

参考

https://docs.datadoghq.com/ja/integrations/mysql/?tab=host
1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0