このトピックでは、NGINXプロキシサーバーを使用して、Alibaba Cloudが提供していないホストのモニタリングデータをCloudMonitorに報告する方法について説明します。
手順1: NGINXプロキシサーバーのデプロイ
CloudMonitorはLinuxサーバーにデプロイされているため、プロキシサーバーとしてLinuxサーバーを使用することを推奨します。 この例では、CentOSを実行するLinuxサーバーを使用しています。
NGINXプロキシサーバーは、rootユーザーアカウント (管理者アカウント) を使用してのみデプロイできます。 管理者アカウントを使用すると、特定のリスクが発生する可能性があります。 例えば、システムの安定性やデータセキュリティの問題が発生する場合があります。 作業は慎重に行ってください。
NGINXインストールパッケージをダウンロードして解凍します。 この例では、nginx-1.19.6が使用されます。
指定されたインストールディレクトリに移動し、インストールパッケージをダウンロードします。 別のバージョンのインストールパッケージをダウンロードするには、NGINX公式Webサイトにアクセスしてください。
cd /usr/local wget http://nginx.org/download/nginx-1.19.6.tar.gz
パッケージを解凍します。
tar -zxvf nginx-1.19.6.tar.gz
依存関係をインストールします。
yum install -y git patch pcre pcre-devel gcc zlib zlib-devel openssl openssl-devel
NGINXパッチパッケージをダウンロードしてインストールします。 この例では、proxy_connect_rewrite_1018.patchパッチパッケージがインストールされています。
解凍されたnginx-1.19.6パッケージのディレクトリに移動します。
次のコマンドを実行してNGINXパッチパッケージをダウンロードします。
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
重要インストールされているNGINXに対応するパッチパッケージをダウンロードする必要があります。 この例では、NGINXバージョンはnginx-1.19.6です。 したがって、パッチパッケージproxy_connect_rewrite_1018.patchが選択されます。 詳細については、GitHubにアクセスしてください。
NGINXパッチパッケージをインストールします。 パッチパッケージをインストールする前に、パッケージが /usr/local/nginx-1.19.6ディレクトリにあることを確認してください。
patch -p1 < ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch
説明patch: パッチファイルを使用して元のファイルをパッチします。
-p1: パッチファイルパスのどの部分が無視されるかを示します。 値1は、最初の部分が無視されることを示す。
NGINXをコンパイルしてインストールし、NGINXを起動します。
NGINXインストールパッケージの /usr/local/nginx-1.19.6ディレクトリで次のコマンドを実行してコンパイルします。
. /configure -- prefix=/usr/local/nginx-1-19 -- with-http_stub_status_module -- with-http_ssl_module -- add-module=ngx_http_proxy_connect_module
説明-- prefix=/usr/local/nginx-1-19は、NGINXがコンパイルおよびインストールされた後のディレクトリを示します。
次のインストールコマンドを実行します。
make && make install
次のコマンドを実行してNGINXを起動します。
/usr/local/nginx-1-19/sbin/nginx
ブラウザのアドレスバーに、プロキシサーバーのIPアドレス :80と入力します。 次の出力が表示された場合、インストールは成功です。
NGINXプロキシを設定します。
NGINXがコンパイルおよびインストールされているconfディレクトリにforward.conf構成ファイルを作成します。
cd /usr/local/nginx-1-19/conf vi forward.conf
forward.confファイルでフォワードプロキシまたはリバースプロキシを設定します。
Forward proxy:
server { listen 8080; # The custom port for the NGINX proxy server. server_name xxx.xx.xx.xxx; # The IP address of the proxy server. # dns resolver used by forward proxying resolver 114.114.114.114; # The DNS address. # forward proxy for CONNECT request proxy_connect; proxy_connect_allow 443; proxy_connect_connect_timeout 10s; proxy_connect_read_timeout 10s; proxy_connect_send_timeout 10s; # forward proxy for non-CONNECT request location / { proxy_pass http://$http_host$request_uri; # The protocol and request URI of the proxy server. Do not change the default values. proxy_set_header Host $host; } }
説明フォワードプロキシ: ローカルエリアネットワーク (LAN) 外のインターネットを巨大なリソースプールと考えると、LAN内のクライアントはフォワードプロキシを使用してインターネットにアクセスする必要があります。
NGINXのフォワードプロキシはHTTPSをサポートしていません。 HTTPSをサポートするには、プロキシにパッチを当てる必要があります。
逆プロキシ:
server { listen 443 ssl; server_name 192.168.XX.XX; # The IP address of the proxy server. ssl_certificate XXXX.pem; # The SSL certificate. ssl_certificate_key XXXX.key; # The key of the SSL certificate. location / { proxy_pass https://www.aliyun.com; # The URL that the proxy server accesses. proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forward`ed-For $proxy_add_x_forwarded_for; } }
説明リバースプロキシ: LANがインターネットにリソースとサービスを提供する場合、インターネット上のクライアントはリバースプロキシを使用してLAN内のリソースにアクセスする必要があります。
重要SSL証明書を申請する方法の詳細については、 証明書の申請
Escキーを押して: wqと入力し、enterキーを押してforward.conf構成ファイルを保存して終了します。
nginxのNGINX. confメイン設定ファイルを開きます。
cd /usr/local/nginx-1-19/conf vi nginx.conf
includeコマンドを実行して、forward.conf構成ファイルをnginx.confメイン構成ファイルに追加します。
http { ...... include /usr/local/nginx-1-19/conf/forward.conf; ...... }
Escキーを押して: wqと入力し、enterキーを押してnginx.confファイルを保存して終了します。
NGINXプロキシサーバーを再起動します。
/usr/local/nginx-1-19/sbin/nginx -s reload
NGINXプロキシサーバーをテストします。
フォワードプロキシの場合、次のコマンドを実行してURLにアクセスします。 URLにアクセスできる場合は、NGINXプロキシサーバーがインストールされます。
curl -x 192.168.XX.XX (IP address of the proxy server):<Port of the proxy server> http://example.aliyundoc.com (any URL)
フォワードプロキシの場合、次のコマンドを実行してURLにアクセスします。 nginx.confファイルで指定したURLにアクセスできる場合は、NGINXプロキシサーバーが設定されます。
curl -x 192.168.XX.XX (IP address of the proxy server):<Port of the proxy server> https://example.aliyundoc.com (any URL)
手順2: CloudMonitorエージェントのインストールと設定
CloudMonitorエージェントは、ルートユーザーアカウント (管理者アカウント) を使用してのみ管理できます。 管理者アカウントを使用すると、特定のリスクが発生する可能性があります。 例えば、システムの安定性やデータセキュリティの問題が発生する場合があります。 作業は慎重に行ってください。
Alibaba Cloudが提供していないホストにCloudMonitorエージェントをインストールします。
詳細については、「Cloud Monitorエージェントのインストールとアンインストール」をご参照ください。
CloudMonitorエージェントでNGINXプロキシサーバーを設定します。
CloudMonitorエージェントが存在するホストにrootユーザーとしてログインします。
次のコマンドを実行して、agent.propertiesファイルを開きます。
cd /usr/local/cloudmonitor/conf vi agent.properties
CloudMonitorエージェントの設定ファイルでNGINXプロキシサーバーを設定します。
http.proxy.auto=false # Manually configure the proxy server. http.proxy.host=192.168.XX.XX # The IP address of the NGINX proxy server. http.proxy.port=8080 # The port number of the NGINX proxy server. #http.proxy.user=user # The NGINX proxy server does not require a username for HTTP authentication. #http.proxy.password=password # The NGINX proxy server does not require a password for HTTP authentication.
Escキーを押して、: wqを保存し、Enterキーを押してagent.propertiesファイルを終了します。
次のコマンドを実行して、CloudMonitorエージェントを再起動します。
./cloudmonitorCtl.sh restart
手順3: Alibaba Cloudが提供していないホストのモニタリングデータの表示
にログインします。CloudMonitorコンソール.
左側のナビゲーションウィンドウで、ホストモニタリング.
On theホストモニタリングページで、ホスト名をクリックするか、チャートの監視で、アクションホストの列です。
Alibaba Cloudが提供していないホストのモニタリングデータを表示します。