説明
インターネットに直接接続できない、プロキシ越しでしか外部にアクセスできない環境下での Datadog エージェントのインストールと dd-agent
設定方法を説明。
結論
以下の4つのポイントがある
①Datadog エージェントをインストールするために
- POINT : 環境変数
HTTP_PROXY
HTTPS_PROXY
NO_PROXY
にプロキシ設定 - POINT : 環境変数
DD_HTTP_PROXY
DD_HTTPS_PROXY
DD_PROXY_NO_PROXY
にプロキシ設定 - POINT :
/etc/yum.conf
にプロキシ設定する
②Datadog 画面上にがメトリクスが表示されるようになるまで
- POINT :
/etc/datadog-agent/datadog.yaml
にもプロキシを明示し、datadog agent
再起動
proxy:
https: http://[プロキシサーバのプライベートIP]:[プロキシサーバのポート]
http: http://[プロキシサーバのプライベートIP]:[プロキシサーバのポート]
Datadog の初期状態
AWS インスタンスの初期状態
以下のような構成。
private サーバから直でインターネットには行けない。
プロキシサーバの構築
# yum update
$ sudo yum update -y
# リポジトリにあるバージョン確認
# (AmazonLinux2にはExtrasリポジトリというものがあり、パッケージの導入ができる)
$ amazon-linux-extras | grep nginx
4 nginx1.12 available [ =1.12.2 ]
# install nginx
sudo amazon-linux-extras install nginx1.12 -y
# conf の編集
$ sudo vi /etc/nginx/nginx.conf
以下の部分を変更し、フォワードプロキシとして機能するようにする
resolver 8.8.8.8; <-追記
location / {
proxy_pass $scheme://$http_host$request_uri;
}
Nginxを起動&自動起動設定させておく
$ sudo systemctl start nginx
$ sudo systemctl enable nginx
正常に起動していることを確認
$ sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2019-03-23 16:39:09 UTC; 17s ago
Main PID: 6298 (nginx)
CGroup: /system.slice/nginx.service
tq6298 nginx: master process /usr/sbin/nginx
mq6299 nginx: worker process
自動起動設定が有効になっていることの確認
$ sudo systemctl is-enabled nginx.service
enabled
プロキシ設定をせず、Datadog Agent をインストールしようとする
Google に curl
はできる状態
[ec2-user@ip-10-X-Y-Z ~]$ curl --dump-header - http://www.google.com -x http://[プロキシサーバのプライベートIP]:8080
HTTP/1.1 200 OK
Date: Wed, 20 Mar 2019 19:04:30 GMT
(以下略)
しかしDatadogエージェントインストールは失敗
DD_API_KEY=abcdefghijklmnopq bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- 0:02:08 --:--:-- 0curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection timed out
プロキシ設定をして、Datadog Agent をインストールする
プロキシ設定
$ export HTTP_PROXY=http://[プロキシサーバのプライベートIP]:80
$ export HTTPS_PROXY=http://[プロキシサーバのプライベートIP]:80
$ export NO_PROXY=169.254.169.254
Datadogエージェントインストール、、はまだ成功しない
DD_API_KEY=abcdefghijklmnopq bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11280 100 11280 0 0 71531 0 --:--:-- --:--:-- --:--:-- 71847
* Installing YUM sources for Datadog
* Installing the Datadog Agent package
Loaded plugins: priorities, update-motd, upgrade-helper
Cleaning repos: amzn-main amzn-updates datadog
0 metadata files removed
0 sqlite files removed
0 metadata files removed
Loaded plugins: priorities, update-motd, upgrade-helper
https://yum.datadoghq.com/stable/6/x86_64/repodata/repomd.xml: [Errno 12] Timeout on https://yum.datadoghq.com/stable/6/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 5001 milliseconds')
Trying other mirror.
ドキュメントを見ると「DD_PROXY~」も設定しなくてはいけないようだ。
ということでプロキシ設定再トライ
$ export DD_PROXY_HTTP=http://[プロキシサーバのプライベートIP]:80
$ export DD_PROXY_HTTPS=http://[プロキシサーバのプライベートIP]:80
$ export DD_PROXY_NO_PROXY=169.254.169.254
インストール再トライ
(同様のエラー)
yum ができていないようなので、/etc/yum.conf
にプロキシ設定する
(略)
proxy=http://[プロキシサーバのプライベートIP]:80
(略)
3度目の正直
DD_API_KEY=abcdefghijklmnopq bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"
(略)
Installed:
datadog-agent.x86_64 1:6.10.2-1
Complete!
* Adding your API key to the Agent configuration: /etc/datadog-agent/datadog.yaml
* Starting the Agent...
datadog-agent start/running, process 29223
Your Agent is running and functioning properly. It will continue to run in the
background and submit metrics to Datadog.
If you ever want to stop the Agent, run:
sudo stop datadog-agent
And to run it again run:
sudo start datadog-agent
インストール成功!
Datadog 画面上にがメトリクスが表示されるようにする
しかし、いつまで経ってもDatadog画面上で見えない。
/etc/datadog-agent/datadog.yaml
にもプロキシを明示することにした。
proxy:
https: http://[プロキシサーバのプライベートIP]:80
http: http://[プロキシサーバのプライベートIP]:80
datadog agent 再起動
sudo restart datadog-agent
トラブルシューティング
/var/log/datadog/
に吐かれているログを見ましょう。
参考ドキュメント
Amazon Linux2にnginxをinstallするメモ - Qiita