datadogを利用した監視設定
datadogを利用した監視の基礎設定をまとめます
- 監視対象
- Amazon Linux2
- 対象サービス
- Apache
- MySQL
サイトで難なく登録出来ると思いますのでアカウント登録は割愛します
Install an Agent
画面に従っていくとコマンドまでコンソールが教えてくれるので
それをCLIに貼り付けるだけです
DD_API_KEY=XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"この時点で最低限の情報は DataDogが集めてくれます
Create a dashboard
特に説明するまでも無いのですが、Dashboardを作ります
Dashboardには二種類あります
- Timeboard
- トラブルシューティングに適する
- Screenboard
- データ共有に適する
正直後でイジれるしどっちでも良いと思ってます
Install integrations
integrationsのページから追加すれば良いのですが、
わりとスラッとやってねみたいになってるので補足しながら進めます

Apache
mod_status有効化
1. Install the Agent on your Apache servers.2. Install mod_status on your Apache servers and enable ExtendedStatus.Agentはインストール済みなのでmod_statusの読み込みとExtendedStatusの有効化を行います
玄人は知ってる方が多いと思うのですが
mod_statusはApacheの状況を知れるendpointを提供するmoduleです
/etc/httpd/conf.modules.d/00-base.confで以下のように読み込まれているはずです
LoadModule status_module modules/mod_status.soExtendedStatusの有効化とhandlerを追加します
virtualhosts.confに書くのが一般的ですかね
Agentからアクセスされるのでlocalhostのみ許可すれば良いです
mod_rewrite環境では.htaccess等でrewriteされないようにご注意ください
またExtendedStatusはVirtualhostsディレクティブには記述出来ず
設定ファイルレベルでの記述なことにもご注意ください
httpd -tやapachectl configtestにてconfigtestは怠らないようにしましょう
ExtendedStatus On # !!!Virtualhostsディレクティブ外に書くこと###
<Location /server-status> # !!!Virtualhostsディレクティブ利用時はディレクティブ内に書くこと!!! SetHandler server-status Order deny,allow Deny from all Allow from localhost </Location>設定の修正を終えたらhttpd再起動します
すると curl等でステータスが取れるはずです
$ curl http://localhost/server-status?autolocalhostServerVersion: ~ここから先は秘密~datadog-agentの設定
/etc/datadog-agent/conf.d/apache.d/のファイルを変更します
conf.yaml.exampleをauto_conf.yamlにコピーして使うと
コメントアウトしていくだけで良いので楽です
templateは最初からlocalhostを見にいくようにしてくれてます
後はログの収集も有効化しておいたほうが良いと思います
必要な設定だけ抜き出すと以下の通りです
pathやservice等は適宜調節してください
init_config:instances: - apache_status_url: http://localhost/server-status?autologs: - type: file - path: /var/log/httpd/access_log - source: apache - sourcecategory: http_web_access - service: apache - type: file - path: /var/log/httpd/error_log - source: apache - sourcecategory: http_web_access - service: apachelogの収集の為にはdatadog-agentの定義ファイルのlogs_enabled設定の変更が必要です
# Logs agent## Logs agent is disabled by defaultlogs_enabled: true # trueに変更するここでdatadog-agentの再起動をするとApacheの情報がDatadog上に収集され始めます
$ sudo systemctl restart datadog-agent.serviceMySQL
MySQLは必要なユーザー作成と権限をDatadogに渡す事で監視が可能です
MySQLに接続して以下のSQLの実行します
パスワード部分のXxxxxxxxxxxxxxxxxxxxxxxXはDatadogのコンソールに生成を任せることも出来ます
CREATE USER 'datadog'@'localhost' IDENTIFIED BY 'XxxxxxxxxxxxxxxxxxxxxxxX';GRANT REPLICATION CLIENT ON *.* TO 'datadog'@'localhost' WITH MAX_USER_CONNECTIONS 5;GRANT PROCESS ON *.* TO 'datadog'@'localhost';GRANT SELECT ON performance_schema.* TO 'datadog'@'localhost';その後MySQL用のDatadog設定を行います
init_config:instances: - server: localhost user: datadog pass: XxxxxxxxxxxxxxxxxxxxxxxX options: replication: 0 galera_cluster: 1## Log section (Available for Agent >=6.0)logs: - type: file path: /var/log/mysql/mysql_error.log source: mysql sourcecategory: database service: MySQL - type: file path: /var/log/mysql/mysql-slow.log source: mysql sourcecategory: database service: MySQL - type: file path: /var/log/mysql/mysql.log source: mysql sourcecategory: database service: MySQLここでdatadog-agentの再起動をするとMySQLの情報がDatadog上に収集され始めます
$ sudo systemctl restart datadog-agent.service後は収集したMetricsを元にMonitorsを設定します
こちらは後日まとめようと思います