これは何
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