Naver Cloud Platform Exporter 設定
Cloud Insight API 呼び出し量に関する案内
Cloud Insight API の呼び出し量は 収集メトリクス数 × インスタンス数 に比例して増加します。必要なメトリクスのみを選択して収集してください。設定方法は config.yml ファイル設定 をご参照ください。
事前準備
NCP アカウントおよび権限要件
Exporter は以下の 2 種類の API を呼び出します。使用する API キーには両方の権限が必要です。
| 対象 API | エンドポイント | 用途 |
|---|---|---|
| Cloud Insight | cw.apigw.ntruss.com | 製品キー(cw_key)の照会、メトリクス定義の照会、メトリクスデータの照会 |
| NCloud API Gateway | ncloud.apigw.ntruss.com | リージョン一覧の照会、サービス別インスタンス一覧の照会 |
Exporter が使用する NCP API はすべて照会(読み取り)操作のみを実行します。
サブアカウントの API キーを使用する場合は、該当サブアカウントまたは所属グループに NCP_CLOUD_INSIGHT_VIEWER と NCP_VPC_SERVER_VIEWER ポリシーの両方を付与し、API Gateway へのアクセスを許可してください。2 つのポリシーのいずれかが欠けていると、Cloud Insight のメトリクスまたは VPC Server のインスタンス一覧を照会できず、収集に失敗する可能性があります。
必要な情報の収集
Exporter の設定に必要な情報を事前に収集します。
| 項目 | 説明 | 発行場所 |
|---|---|---|
| Access Key | NCP API 認証キー | マイページ → アカウント管理 → 認証キー管理 |
| Secret Key | NCP API 認証シークレット | 上記と同じ(発行時点のみ確認可能) |
| リージョンコード | 収集対象リージョン(例: KR) | 未指定の場合は全リージョンを自動照会 |
サブアカウント(IAM)を使用する場合は、ncp_iam_ で始まるキーが発行されます。
NCloud Exporter インストール
Exporter ダウンロード
システムアーキテクチャに合ったバイナリをダウンロードします。
# linux/amd64
wget https://repo.whatap.io/exporter/ncloud_exporter/latest/amd64/ncloud_exporter
# linux/arm64
wget https://repo.whatap.io/exporter/ncloud_exporter/latest/arm64/ncloud_exporter
特定のバージョンを指定する場合は、latest の代わりにバージョンを入力します。
wget https://repo.whatap.io/exporter/ncloud_exporter/1.0.0/amd64/ncloud_exporter
実行権限の付与およびインストール
chmod +x ncloud_exporter
sudo mv ncloud_exporter /usr/local/bin/
sudo mkdir -p /etc/ncloud_exporter
config.yml ファイル設定
サポートサービス一覧
| Namespace | NCP サービス |
|---|---|
ncloud.vserver | VPC Server |
ncloud.vloadbalancer | VPC Load Balancer |
ncloud.vautoscaling | VPC Auto Scaling |
ncloud.vmysql | Cloud DB for MySQL |
ncloud.vpostgresql | Cloud DB for PostgreSQL |
ncloud.vredis | Cloud DB for Redis |
ncloud.vmongodb | Cloud DB for MongoDB |
ncloud.vmssql | Cloud DB for MSSQL |
ncloud.vnks | Ncloud Kubernetes Service |
ncloud.vsearchengine | Search Engine Service |
ncloud.vhadoop | Cloud Hadoop |
config.yml サンプルファイル
/etc/ncloud_exporter/config.yml のパスに設定ファイルを作成します。以下は VPC Server を収集する基本構成です。
ncloud:
access_key: "YOUR_ACCESS_KEY"
secret_key: "YOUR_SECRET_KEY"
namespaces:
- name: "ncloud.vserver"
enabled: true
regions: ["KR"] # 空の配列の場合は全リージョン
interval: "Min5" # Min1 | Min5 | Min30 | Hour2 | Day1
aggregations: ["AVG"] # 以下 metrics の既定 aggregation
metrics:
# CPU
- name: "avg_cpu_used_rto" # CPU 使用率(%)
- name: "max_cpu_used_rto" # CPU 使用率ピーク(%)
aggregations: ["MAX"]
- name: "load_average_1m"
- name: "load_average_5m"
- name: "load_average_15m"
# メモリー
- name: "mem_usert" # メモリー使用率(%)
aggregations: ["AVG", "MAX"]
- name: "swap_usert" # swap 使用率(%)
# ファイルシステム
- name: "avg_fs_usert"
- name: "max_fs_usert"
aggregations: ["MAX"]
# ネットワーク
- name: "avg_rcv_bps" # 受信(bits/sec)
- name: "avg_snd_bps" # 送信(bits/sec)
# ディスク I/O
- name: "avg_read_byt_cnt"
- name: "avg_write_byt_cnt"
- name: "avg_read_cnt"
- name: "avg_write_cnt"
- name: "ncloud.vloadbalancer"
enabled: false
regions: []
設定項目
| 項目 | 説明 | 既定値 |
|---|---|---|
ncloud.access_key | NCP API Access Key | (必須) |
ncloud.secret_key | NCP API Secret Key | (必須) |
namespaces[].name | 収集するサービスのネームスペース | - |
namespaces[].enabled | 収集の有効化有無 | false |
namespaces[].regions | 対象リージョン(空の配列の場合は全体) | [] |
namespaces[].interval | 照会間隔(Min1~Day1) | Min5 |
namespaces[].aggregations | ネームスペースの既定 aggregation | (API 提供分すべて) |
namespaces[].metrics | 収集するメトリクス一覧 | (省略時はすべて) |
metrics を指定しない場合、該当サービスの すべてのメトリクス × すべての aggregation を収集します。VPC Server の場合はインスタンス 1 台あたり 125 個のシリーズが生成されるため、必要なメトリクスのみを指定してください。上記のサンプル設定では、インスタンスあたり 16 個のシリーズを収集します。
- サービス別のメトリクス一覧は VPC Server 基本メトリクス をご参照ください。
認証情報を環境変数で指定
設定ファイルにキーを平文で保存したくない場合は、環境変数を使用します。環境変数は設定ファイルの値より優先して適用されます。
| 環境変数 | 説明 |
|---|---|
NCLOUD_ACCESS_KEY | ncloud.access_key を上書き |
NCLOUD_SECRET_KEY | ncloud.secret_key を上書き |
NCLOUD_CW_API_GW | Cloud Insight エンドポイント(既定 https://cw.apigw.ntruss.com) |
NCLOUD_API_GW | NCloud API GW エンドポイント(既定 https://ncloud.apigw.ntruss.com) |
サービス登録および実行
実行オプション
| フラグ | 説明 | 既定値 |
|---|---|---|
--config | 設定ファイルのパス | config.yml |
--web.listen-address | HTTP リスナーアドレス | :9850 |
--web.telemetry-path | メトリクスエンドポイントのパス | /metrics |
--log.level | ログレベル(debug、info、warn、error) | info |
--log.format | ログフォーマット(text、json) | text |
方法 A: systemd サービス登録
sudo tee /etc/systemd/system/ncloud-exporter.service > /dev/null <<'EOF'
[Unit]
Description=NCloud Exporter
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
Environment="NCLOUD_ACCESS_KEY=YOUR_ACCESS_KEY"
Environment="NCLOUD_SECRET_KEY=YOUR_SECRET_KEY"
ExecStart=/usr/local/bin/ncloud_exporter \
--config=/etc/ncloud_exporter/config.yml \
--web.listen-address=:9850
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOF
登録後、サービスを開始します。
sudo systemctl daemon-reload
sudo systemctl enable ncloud-exporter
sudo systemctl start ncloud-exporter
sudo systemctl status ncloud-exporter
設定ファイルを修正した後は、再起動せず に sudo systemctl reload ncloud-exporter で反映できます。認証情報、ネームスペース、メトリクスの選択が再読み込みされます。ただし、リスナーアドレスとパスは実行引数であるため、変更する場合は再起動が必要です。
方法 B: nohup 実行
nohup /usr/local/bin/ncloud_exporter \
--config=/etc/ncloud_exporter/config.yml \
--web.listen-address=:9850 > /var/log/ncloud_exporter.log 2>&1 &
メトリクス収集の確認およびトラブルシューティング
メトリクスの確認
curl http://localhost:9850/metrics
# 特定のサービスのみ確認
curl -s http://localhost:9850/metrics | grep '^ncloud_vserver'
正常な出力例
# HELP ncloud_vserver_avg_cpu_used_rto_avg NCloud ncloud.vserver avg_cpu_used_rto (%)
# TYPE ncloud_vserver_avg_cpu_used_rto_avg gauge
ncloud_vserver_avg_cpu_used_rto_avg{instancename="my-server",instanceno="12345678",regioncode="KR",serverinstancetype="Micro"} 0.360744
ncloud_vserver_mem_usert_avg{instancename="my-server",instanceno="12345678",regioncode="KR",serverinstancetype="Micro"} 72.1
Exporter 自体の状態は、以下のメトリクスで確認します。
ncloud_scrape_errors_total{namespace="ncloud.vserver"} 0
ncloud_scrape_duration_seconds 0.264890458
メトリクス名の変換ルール
ncloud_{service}_{metric}_{aggregation}
-
service: ネームスペースからncloud.プレフィックスを除いた値(ncloud.vserver→vserver) -
metric: Cloud Insight のメトリクス名(avg_cpu_used_rto) -
aggregation: 小文字に変換した集計方式(avg、max、min、sum、count)
例: ncloud.vserver + avg_cpu_used_rto + AVG → ncloud_vserver_avg_cpu_used_rto_avg
トラブルシューティング
| 症状 | 原因 | 解決方法 |
|---|---|---|
failed to initialize cw_keys ログとともに起動失敗、status 401 Authentication Failed | Access Key / Secret Key の誤り、または権限不足 | キーの値を確認し、該当キーに Cloud Insight の照会権限があるか点検します。 |
read config file: open config.yml: no such file or directory | 設定ファイルのパス誤り | --config に絶対パスを指定します。 |
unknown aggregation "..." または unknown interval "..." で起動失敗 | 設定ファイルの誤字 | aggregations は AVG/MAX/MIN/SUM/COUNT、interval は Min1/Min5/Min30/Hour2/Day1 のみ許容されます。 |
WARN configured metric matched no available metric | 存在しないメトリクス名を指定 | メトリクス一覧で実際のメトリクス名を確認します。 |
WARN some configured aggregations are not supported | 該当メトリクス・interval がサポートしない aggregation | ログの available 一覧にある値に修正します。 |
/metrics に ncloud_ メトリクスがない | 該当リージョンにインスタンスがない、または enabled: false | regions 設定と enabled の値を確認します。リージョンを特定しない場合は regions: [] のままにします。 |
| 特定のメトリクスのみ値が空 | Cloud Insight の収集遅延、または該当インスタンスが未提供 | サーバーにモニタリングエージェントがインストールされているか確認します。直近 10 分以内のデータがない場合、時系列は生成されません。 |
ncloud_scrape_errors_total の値が増加し続ける | API 呼び出しの失敗 | --log.level=debug で実行し、失敗したネームスペースと原因を確認します。 |
設定を検証する際は、--log.level=debug で実行してください。選択されたメトリク ス、マッチングに失敗した設定、API エラーがすべてログに出力されます。
OpenAgent ダウンロードおよび設定
すべてのファイルは同じディレクトリに配置する必要があります。
/opt/whatap/openagent/
├── openagent # Executable file
├── whatap.conf # Configuration file
└── scrape_config.yaml # Scraping configuration file