Help us understand the problem. What is going on with this article?

プロキシ環境下での Datadog インストール(Squid版)

More than 1 year has passed since last update.

:bookmark: 説明

インターネットに直接接続できない、プロキシ越しでしか外部にアクセスできない環境下での Datadog エージェントのインストールと dd-agent 設定方法を説明。

:bookmark: 結論

以下の4つのポイントがある

:notebook: ①Datadog エージェントをインストールするために

  • POINT :one:: 環境変数 HTTP_PROXY HTTPS_PROXY NO_PROXY にプロキシ設定
  • POINT :two:: 環境変数 DD_HTTP_PROXY DD_HTTPS_PROXY DD_PROXY_NO_PROXY にプロキシ設定
  • POINT :three:/etc/yum.conf にプロキシ設定する

:notebook: ②Datadog 画面上にがメトリクスが表示されるようになるまで

  • POINT :four:/etc/datadog-agent/datadog.yaml にもプロキシを明示し、datadog agent 再起動
proxy:
    https: http://[プロキシサーバのプライベートIP]:[プロキシサーバのポート]
    http: http://[プロキシサーバのプライベートIP]:[プロキシサーバのポート]

:dog: Datadog の初期状態

どのページに行ってもなにもありません。
image.png

:seedling: AWS インスタンスの初期状態

以下のような構成。

image.png

private サーバから直でインターネットには行けない。

:sparkles: プロキシサーバの構築

# yum update
$ sudo yum update -y

# install squid
$ sudo yum install squid -y

# conf の編集
$ sudo vi /etc/squid/squid.conf

以下の部分を変更する

And finally deny all other access to this proxy
http_access allow all ←追加
http_access deny all

※注①:これは「何者からのプロキシリクエストも許可する」という緩すぎる設定であり、本来はプロキシさせたいサーバのIPに絞るべきである

※注②:プロキシ用のポートも以下のように変更するべきである。(今回は面倒なのでしない)

# Squid normally listens to port 3128
#http_port 3128 ←先頭に#を追加
http_port 60088 ←追加

※注③:自身の VPC の CIDR レンジ範囲が許可されているか確認(私はこれにハマりました)

acl localnet src 10.0.0.0/16

設定チェック(ワーニングがでなければOKっぽい)

$ sudo squid -k parse

squidの起動

# CentOS 6系
$ sudo service squid start

# CentOS 7系
$ systemctl start squid

:a: プロキシ設定をせず、Datadog Agent をインストールしようとする

Google に curl はできる状態

[ec2-user@ip-10-X-Y-Z ~]$ curl --dump-header - http://www.google.com -x http://[プロキシサーバのプライベートIP]:3128
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

:b: プロキシ設定をして、Datadog Agent をインストールする

プロキシ設定

$ export HTTP_PROXY=http://[プロキシサーバのプライベートIP]:3128
$ export HTTPS_PROXY=http://[プロキシサーバのプライベートIP]:3128
$ 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~」も設定しなくてはいけないようだ。

Agent proxy configuration

ということでプロキシ設定再トライ

$ export DD_PROXY_HTTP=http://[プロキシサーバのプライベートIP]:3128
$ export DD_PROXY_HTTPS=http://[プロキシサーバのプライベートIP]:3128
$ export DD_PROXY_NO_PROXY=169.254.169.254

インストール再トライ

(同様のエラー)

yum ができていないようなので、/etc/yum.conf にプロキシ設定する

(略)
proxy=http://[プロキシサーバのプライベートIP]:3128
(略)

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

インストール成功!

:cactus: Datadog 画面上にがメトリクスが表示されるようにする

しかし、いつまで経ってもDatadog画面上で見えない。

/etc/datadog-agent/datadog.yaml にもプロキシを明示することにした。

proxy:
    https: http://[プロキシサーバのプライベートIP]:3128
    http: http://[プロキシサーバのプライベートIP]:3128
    no_proxy:
      - 169.254.169.254
process_config:
    enabled: "true"

datadog agent 再起動
sudo restart datadog-agent

やっとDatadog 画面上にも表れた💡
image.png

image.png

:notebook_with_decorative_cover: 参考ドキュメント

Agent proxy configuration

検証用にAWSでプロキシ用のサーバを作ってみた話 - Qiita

AWS EC2にプロキシサーバーを設定しよう - Traffic Jam

proxyサーバーを立ててみました。 | AWSコスト削減・IaaSインフラ構築のシンプライン株式会社

curlコマンドにてproxy設定 - Qiita

GCP – DataDogのログ転送用Proxyにハマったんです。 – Mark System Techno

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした