Datadog で RDS Postgresql をモニタリングする
はじめに
Datadog で RDS をモニタリングしようと思った場合は、
- CloudWatch (AWS) 連携
- Postgresql 連携
が利用できる。
また、Sensu で監視したメトリクスを Datadog に送ることも可能。
sensu と datadog を連携してちょっとリッチなメトリクスの可視化 - inokappa に丁寧に書かれてる。
CloudWatch 連携
Datadog 用 IAM ユーザを用意する
AWS 連携を有効にするには予め read-only の datadog 用 IAM ユーザを作成しておく。
連携を ON にする
Integration タブから
"Available" 一覧から "Amazon Web Services" を選択し、"Install Integration"
その際に、 datadog 用の Access Key ID と Secret Access Key を入力する。
オプションで連携する AWS のサービスやタグで対象リソースをフィルタリングできる。 課金対象は agent がインストールされている EC2 ホスト or AWS 連携してメトリクスを取得している EC2 ホスト (重複する場合は 1 台にカウント) なので、RDS や ELB 自体には課金されない。
Postgresql 連携
モニタリング用に Postgresql に datadog ROLE を作成する
create user datadog with password 'XXXXXXXXXXXXXXXXXXXXX';
GRANT SELECT ON pg_stat_database to datadog;
Postgresql 用設定ファイルを作成する
# /etc/dd-agent/conf.d/postgres.yaml
init_config:
instances:
- host: <your-rds-host>
port: <your-rds-port>
username: datadog
password: XXXXXXXXXXXXXXXXXXX
tags:
- <your-tag>
設定ファイルの tags
に、CloudWatch
連携時に自動で付けられるタグ
dbinstanceidentifier
enginename
databaseclass
を付けておく。これを付けておかないと Datadog のダッシュボードで、タグによるフィルタリング時に CloudWatch 連携のデータは表示されるが Postgresql 連携のデータが表示されなくなってしまう。
# /etc/dd-agent/conf.d/postgres.yaml の例
init_config:
instances:
- host: production-my-db.xxxxxxxx.ap-northeast-1.rds.amazonaws.com
port: 5432
username: datadog
password: XXXXXXXXXXXXXXXXXXX
tags:
- 'dbinstanceidentifier:production-my-db'
- 'enginename:postgres'
- 'databaseclass:db.r3.2xlarge'
dd-agent を再起動してモニタリング開始
基本的な Postgresql 連携の方法は Postgresql サーバに dd-agent をインストールし、そのサーバでこの設定ファイルを配置する。RDS はサーバにログインすることはできないので、別途 Postgresql モニタリング用 dd-agent をインストールするサーバを用意する。
$ sudo chmod 644 /etc/dd-agent/conf.d/postgres.yaml
$ sudo chown dd-agent:root /etc/dd-agent/conf.d/postgres.yaml
$ sudo /etc/init.d/datadog-agent restart
$ sudo /etc/init.d/datadog-agent info
Checks
======
postgres
--------
- instance #0 [OK]
- Collected 6 metrics, 0 events & 2 service checks
スクリーンショット
メモと感想
スロークエリとかは NewRelic の領域なんだと思う
スロークエリとかは上記の連携では表示されない。
- アプリケーション寄りのメトリクスは New Relic
- インフラ寄りのメトリクスは Datadog
という住み分けだと思っている。
TODO テーブルごとのメトリクス取得を試す
postgres.yaml
にはテーブルごとのメトリクスを取得する設定も書いてあるので試そう
# Custom-metrics section
# You can now track per-relation (table) metrics
# You need to specify the list. Each relation
# generates a lot of metrics (10 + 10 per index)
# so you want to only use the ones you really care about
# relations:
# - my_table
# - my_other_table
TODO Postgresql の各種 Stats について書く
REF
Author And Source
この問題について(Datadog で RDS Postgresql をモニタリングする), 我々は、より多くの情報をここで見つけました https://qiita.com/spesnova/items/8cc0b4b4497e60aabf50著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .