概要
企業ネットワークでは、セキュリティ要件により監視対象サーバーがインターネットに直接接続できない場合があります。本手順書では、2台のプロキシサーバーを経由してInstanaエージェントをInstana SaaSに接続する多段プロキシ構成の構築方法を解説します。
本記事は、以下のような方を対象としています。:
- 企業ネットワークでセキュリティ制約下にある監視環境を運用している方
- Instanaエージェントをインターネット接続できないサーバーに導入しようとしている方
- 多段プロキシ構成の仕組みや設定方法を理解したい方
手順
準備
1. 仮想マシン3台の払い出し(監視対象×1、プロキシ×2)
2. プロキシサーバー構築(Squidインストール)
3. instanaエージェントのインストール
多段プロキシ構築
4. 監視対象サーバーの設定
5. プロキシサーバー①の設定
6. プロキシサーバー②の設定
確認フェーズ
7. 接続確認(ログ確認・UI確認)
構成
全体像
構成要素
| コンポーネント | 役割 | 備考 |
|---|---|---|
| 監視対象サーバー | Instanaエージェントが稼働 | RHEL 9を想定 |
| プロキシサーバー① | 第1段階プロキシ(内部ネットワーク側) | Squidを使用、待ち受けポートは 8080(※標準の3128ではなく、TechZone環境で3128が閉じていたため8080を採用) |
| プロキシサーバー② | 第2段階プロキシ(外部ネットワーク側) | Squidを使用、待ち受けポートは 8080(同上の理由により8080を採用) |
| Instana SaaS | 監視データの収集・分析基盤 |
< instana-endpoint >:Instanaエージェントがメトリクスやトレースデータを送信する接続先。SaaSの場合はリージョンごとのエンドポイント(例:ingress-orange-saas.instana.io:443)を指定。オンプレ版では自社構築サーバーのURLを指定。 |
1. 仮想マシン3台分を用意
補足:本例では IBM TechZone を使用していますが、一般的な環境では、クラウドの場合は AWS EC2 などでインスタンスを作成し、オンプレミスの場合は VMware vSphere や Hyper-V などで仮想マシンを用意できます。
- RHEL9IBMCloudVSIとは、IBMCloud上で用意したVMWareを指します。
- 実際にVMWareが稼働しているか確認するには、予約詳細に載っている特定のIBMCloudアカウントで、VMWareを確認します。
- 仮想マシンのアクセスは、macのターミナルからでも可能です。
My reservation画面で仮想マシンがReadyになっていれば、払出し完了。

IBMCloud画面上で、仮想マシンの稼働を確認します。
例として、監視対象サーバーでどう確認するかを取り上げます。
-
まず、IBMCloudのアカウントと、仮想サーバーの名前を予約詳細から確認する。
-
Environmentの上のリンクから指定のIBMCloud(ITZ-VPC-01)に入り、仮想サーバーインスタンス(itzvsi-693000ty7y-aqise6p1)が稼働中であることを確認。

2. プロキシサーバーを構築
IBMCloud上で払い出したプロキシサーバー用の仮想マシンに、Squidをインストールします。
1. ターミナルから払い出した仮想マシンにログイン
※TechZone 環境では SSH ポートが 22 ではなく 2223 となっていますが、通常の環境では 22 を使う場合もあります。使用するポートに応じてコマンドを変更してください。
ssh -i ~/<path-to-private-key>.pem -p <ssh-port> <username>@<proxy-server-ip>
# -i : 秘密鍵ファイルを指定
# -p : SSH接続ポート番号を指定(デフォルト22ではなく指定ポートを使う)
# <username>@<proxy-server-ip> : 接続先のユーザー名とIPアドレス
2. ログインした仮想マシン上で、Squidをインストール(プロキシサーバー①②両方で実施)
# パッケージの更新
sudo yum update -y
# Squidのインストール
sudo yum install -y squid
# Squidの自動起動設定
sudo systemctl enable squid
# Squidの起動
sudo systemctl start squid
# 起動状態の確認
sudo systemctl status squid
# ※ active (running) と表示されれば正常
3. 監視対象サーバーにinstanaエージェントをインストール
監視対象サーバーにInstanaエージェントをインストールします。
1. 監視対象サーバーにSSH接続
ssh -i ~/Desktop/pem_ibmcloudvsi_download_monitored.pem -p 2223 itzuser@<monitored-server-ip>
2. Instanaエージェントのインストール
ホーム画面左上から、データソースの設定→Instanaエージェントのインストール→Linux 自動インストール (One-liner)を選択し以下のページに移動。
ステップ2のコードをコピペして実行するだけで、インストール完了です!
4. 監視対象サーバーの設定
Instanaエージェントがプロキシサーバー①を経由するよう設定します。
この際、一度instanaバックエンドから監視対象サーバーが見られなくなります。通信がプロキシサーバー①で止まっているからです。
- < instana-agent-install-dir >/agent/etc/instana/com.instana.agent.main.sender.Backend.cfgを編集します。
- < instana-agent-install-dir >のデフォルトは/opt/instana/agentです。
host=< instana-endpoint > # 最終的な宛先(Instana SaaS のエンドポイント)
port=443 # HTTPS通信用のポート番号
protocol=HTTP/2 # 高速化されたHTTP/2プロトコルを使用
key=<key> # Instana認証用のAPIキー
proxy.host=<proxy1-ip-address> # 直接接続するプロキシサーバー①のIPアドレス
proxy.port=8080 # プロキシサーバー①の待受ポート
proxy.type=http # プロキシの種類(HTTPプロキシを指定)
5. プロキシサーバー①の設定
Squid.confの設定ファイルを編集して、監視対象サーバーからの接続を許可し、プロキシサーバー②への接続を設定します。
(監視対象サーバー→プロキシサーバー①→プロキシサーバー②への通信の流れを設定)
# Squid port
http_port 8080 # Squidの待受ポート(監視サーバーからの接続を受付)
# ACL 定義
acl SSL_ports port 443 # SSL/TLS通信で使用するポート(443番)を定義
acl Safe_ports port 443 # 安全とみなすポート(443番のみ許可)を定義
acl CONNECT method CONNECT # HTTP CONNECTメソッド(HTTPS通信用)を定義
acl allowed_https_sites dstdomain < instana-endpoint > # 接続許可する宛先ドメイン
acl client_net src <agent-ip-address> # 接続を許可するクライアント(監視サーバー)のIPアドレス
# アクセス制御
http_access allow client_net allowed_https_sites # 指定クライアントから指定サイトへのアクセスを許可
http_access allow CONNECT SSL_ports # SSL/TLSポートへのCONNECTメソッドを許可
http_access allow Safe_ports # 安全ポートへのアクセスを許可
http_access deny all # 上記以外はすべて拒否
# proxy2 へのフォワード
cache_peer <proxy2-ip-address> parent 8080 0 no-query default # すべてのリクエストをプロキシサーバー②に転送
never_direct allow all # 直接接続を禁止し、必ずプロキシサーバー②を経由
# ログ設定
access_log /var/log/squid/access.log squid # アクセスログの出力先(通信記録用)
6. プロキシサーバー②の設定
Squid.confの設定ファイルを編集し、プロキシ①からの接続を許可します。(プロキシサーバー①→プロキシサーバー②への接続を設定)
# Squid port
http_port 8080
# ACL 定義
acl SSL_ports port 443
acl Safe_ports port 443
acl CONNECT method CONNECT
acl allowed_https_sites dstdomain < instana-endpoint >
acl client_net src <proxy1-ip-address>
# アクセス制御
http_access allow client_net allowed_https_sites
http_access allow CONNECT SSL_ports
http_access allow Safe_ports
http_access deny all
# ログ設定
access_log /var/log/squid/access.log
7. 接続確認
1. Instanaエージェントのログ確認
# エージェントログの確認
sudo tail -f /opt/instana/agent/data/log/agent.log
正常接続時のログ例:
INFO | <instana-endpoint>:443-8-1 | Backend | com.instana.agent-backend - 1.0.7 | Connected using HTTP/2 to <instana-endpoint>:443 with id '02:00:43:ff:fe:5d:e6:54' and key '*** (redacted)'
2. プロキシサーバー①のログ確認
# Squidアクセスログの確認
sudo tail -f /var/log/squid/access.log
正常時のログ例:
<monitoring-server-ip> TCP_TUNNEL/200 9281 CONNECT ingress-orange-saas.instana.io:443 - FIRSTUP_PARENT/<proxy2-ip-address> -
3. プロキシサーバー②のログ確認
# Squidアクセスログの確認
sudo tail -f /var/log/squid/access.log
正常時のログ例:
<proxy1-ip-address> TCP_TUNNEL/200 9281 CONNECT ingress-orange-saas.instana.io:443 - HIER_DIRECT/<instana-saas-ip> -
4. Instana UIでの確認
- Instana UIにログイン
- 「Infrastructure」→「Hosts」で監視対象サーバーが表示されることを確認
- メトリクス収集が正常に行われていることを確認
まとめ
本手順により、多段プロキシ構成でのInstanaエージェントの監視が可能になります。セキュリティ要件の厳しい環境でも、段階的にプロキシを経由させることで安全にSaaS型監視サービスを利用できます。
読んでいただき、ありがとうございました。


