Skip to content

Hardware

ハードウェア・ゾーン設定


📚 情報ソース

このドキュメントは以下の情報源を基に作成されています:

主要ソース

補足ソース

  • データセンター管理のベストプラクティス: ゾーン設計とタグ戦略
  • 実運用環境の設定例: マルチデータセンター/マルチクラウド環境での統一的な管理

📚 公式ドキュメント: ハードウェア・ゾーン設定 (com.instana.plugin.generic.hardware)

物理ハードウェア情報とアベイラビリティゾーン(可用性ゾーン)の設定を行います。データセンター、ラック、フロアなどの物理的な配置情報を記録し、障害発生時の影響範囲を把握しやすくします。

基本設定

1
2
3
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo DC / Rack 42'

設定項目の詳細

項目 説明 デフォルト値 推奨値 取得方法
enabled ハードウェア監視の有効化 false true -
availability-zone アベイラビリティゾーン名 - データセンター/ラック情報 データセンター管理者から取得

実践的な使用例

1. データセンター別設定

# 東京データセンター - ラック単位
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15'

# 大阪データセンター - ラック単位
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Osaka-DC2/Floor-2/Rack-B08'

# 福岡データセンター - ラック単位
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Fukuoka-DC3/Floor-1/Rack-C05'

2. クラウド環境のアベイラビリティゾーン

# AWS東京リージョン
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'ap-northeast-1a'

# AWS大阪リージョン
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'ap-northeast-3a'

# Azure東日本リージョン
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'japaneast-1'

# GCP東京リージョン
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'asia-northeast1-a'

3. ハイブリッドクラウド環境

# オンプレミス
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'OnPrem/Tokyo-DC1/Rack-A15'

# AWS
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'AWS/ap-northeast-1a'

# Azure
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Azure/japaneast-1'

4. 詳細な物理配置情報

# データセンター、フロア、ラック、ユニット位置まで記録
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/Unit-10-15'

# 電源系統情報も含める
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/PowerA'

# ネットワークセグメント情報も含める
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/VLAN-100'

5. マルチリージョン構成

# プライマリリージョン
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Primary/Tokyo-DC1/Rack-A15'

# セカンダリリージョン(DR)
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Secondary/Osaka-DC2/Rack-B08'

# バックアップリージョン
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Backup/Fukuoka-DC3/Rack-C05'

ベストプラクティス

命名規則

  1. 階層的な命名

    1
    2
    3
    4
    5
    6
    7
    # 推奨: 階層構造を明確に
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Region/DataCenter/Floor/Rack/Unit'
    
    # 例
    availability-zone: 'APAC/Tokyo-DC1/Floor-3/Rack-A15/Unit-10'
    

  2. 一貫性のある命名

    # 全環境で統一されたフォーマットを使用
    # フォーマット: [環境]/[リージョン]/[データセンター]/[詳細]
    
    # 本番環境
    availability-zone: 'Production/Tokyo/DC1/Rack-A15'
    
    # ステージング環境
    availability-zone: 'Staging/Tokyo/DC1/Rack-B20'
    
    # 開発環境
    availability-zone: 'Development/Tokyo/DC1/Rack-C30'
    

  3. クラウドプロバイダー別の命名

    # AWS
    availability-zone: 'AWS/ap-northeast-1a'
    
    # Azure
    availability-zone: 'Azure/japaneast-1'
    
    # GCP
    availability-zone: 'GCP/asia-northeast1-a'
    
    # オンプレミス
    availability-zone: 'OnPrem/Tokyo-DC1/Rack-A15'
    

障害影響範囲の把握

  1. ラック単位での管理

    # 同じラック内のサーバーは同じゾーンに設定
    # Rack-A15内のサーバー1
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15'
    
    # Rack-A15内のサーバー2
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15'
    
    # これにより、ラック障害時の影響範囲を即座に把握可能
    

  2. 電源系統の管理

    # 電源系統Aに接続されたサーバー
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/PowerA'
    
    # 電源系統Bに接続されたサーバー
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/PowerB'
    
    # 電源障害時の影響範囲を把握
    

  3. ネットワークセグメントの管理

    # VLAN-100に接続されたサーバー
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/VLAN-100'
    
    # VLAN-200に接続されたサーバー
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/VLAN-200'
    
    # ネットワーク障害時の影響範囲を把握
    

高可用性構成

  1. 冗長化構成の可視化

    # プライマリサーバー
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Primary/Tokyo-DC1/Rack-A15'
    
    # セカンダリサーバー(別ラック)
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Secondary/Tokyo-DC1/Rack-B20'
    
    # 異なるラックに配置することで、単一障害点を回避
    

  2. マルチAZ構成

    # AZ-1
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'AWS/ap-northeast-1a'
    
    # AZ-2
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'AWS/ap-northeast-1c'
    
    # AZ-3
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'AWS/ap-northeast-1d'
    

  3. マルチリージョン構成

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 東京リージョン
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Primary/Tokyo/ap-northeast-1a'
    
    # 大阪リージョン(DR)
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'DR/Osaka/ap-northeast-3a'
    

パフォーマンスチューニング

1. 適切な粒度の選択

# 粗い粒度(データセンターレベル)
# メリット: シンプル、管理が容易
# デメリット: 詳細な影響範囲が不明
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1'

# 中程度の粒度(ラックレベル)- 推奨
# メリット: 適度な詳細度、障害影響範囲の把握が容易
# デメリット: 管理の手間が増える
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15'

# 細かい粒度(ユニットレベル)
# メリット: 非常に詳細な情報
# デメリット: 管理が複雑、オーバーヘッド
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15/Unit-10-15'

2. 自動化による設定

#!/bin/bash
# 自動的にアベイラビリティゾーンを設定するスクリプト

# AWSの場合
if [ -f /sys/hypervisor/uuid ] && [ `head -c 3 /sys/hypervisor/uuid` == "ec2" ]; then
    AZ=$(curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone)
    sed -i "s/availability-zone: .*/availability-zone: 'AWS\/$AZ'/" /opt/instana/agent/etc/instana/configuration.yaml
fi

# Azureの場合
if [ -f /var/lib/waagent/ovf-env.xml ]; then
    REGION=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/location?api-version=2021-02-01&format=text")
    ZONE=$(curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/zone?api-version=2021-02-01&format=text")
    sed -i "s/availability-zone: .*/availability-zone: 'Azure\/$REGION-$ZONE'/" /opt/instana/agent/etc/instana/configuration.yaml
fi

# GCPの場合
if [ -f /sys/class/dmi/id/product_name ] && grep -q "Google" /sys/class/dmi/id/product_name; then
    ZONE=$(curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/zone | cut -d'/' -f4)
    sed -i "s/availability-zone: .*/availability-zone: 'GCP\/$ZONE'/" /opt/instana/agent/etc/instana/configuration.yaml
fi

# オンプレミスの場合(ホスト名から推測)
HOSTNAME=$(hostname)
if [[ $HOSTNAME == *"dc1"* ]]; then
    RACK=$(echo $HOSTNAME | grep -oP 'rack\d+')
    sed -i "s/availability-zone: .*/availability-zone: 'OnPrem\/Tokyo-DC1\/$RACK'/" /opt/instana/agent/etc/instana/configuration.yaml
fi

# Agentを再起動
systemctl restart instana-agent

3. Ansible/Terraformによる管理

# Ansible Playbook例
---
- name: Configure Instana Agent Availability Zone
  hosts: all
  vars:
    datacenter: "{{ datacenter_name }}"
    floor: "{{ floor_number }}"
    rack: "{{ rack_id }}"
  tasks:
    - name: Set availability zone
      lineinfile:
        path: /opt/instana/agent/etc/instana/configuration.yaml
        regexp: '^  availability-zone:'
        line: "  availability-zone: '{{ datacenter }}/Floor-{{ floor }}/{{ rack }}'"
        state: present
      notify: restart instana-agent

  handlers:
    - name: restart instana-agent
      systemd:
        name: instana-agent
        state: restarted
# Terraform例(AWS)
resource "null_resource" "instana_agent_config" {
  count = length(aws_instance.app_server)

  provisioner "remote-exec" {
    inline = [
      "sudo sed -i 's/availability-zone: .*/availability-zone: \"AWS\\/${aws_instance.app_server[count.index].availability_zone}\"/' /opt/instana/agent/etc/instana/configuration.yaml",
      "sudo systemctl restart instana-agent"
    ]

    connection {
      type        = "ssh"
      user        = "ubuntu"
      private_key = file("~/.ssh/id_rsa")
      host        = aws_instance.app_server[count.index].public_ip
    }
  }
}

トラブルシューティング

問題1: アベイラビリティゾーンが表示されない

症状: - Instana UIでアベイラビリティゾーン情報が表示されない

原因と解決策:

  1. 設定の確認

    1
    2
    3
    4
    # 設定ファイルを確認
    cat /opt/instana/agent/etc/instana/configuration.yaml | grep -A 2 "generic.hardware"
    
    # enabledがtrueになっているか確認
    

  2. 設定の修正

    1
    2
    3
    4
    # enabledをtrueに設定
    com.instana.plugin.generic.hardware:
      enabled: true  # falseになっていないか確認
      availability-zone: 'Tokyo-DC1/Rack-A15'
    

  3. Agent再起動

    1
    2
    3
    4
    5
    # 設定変更後は必ず再起動
    sudo systemctl restart instana-agent
    
    # ログで確認
    sudo journalctl -u instana-agent -f
    

問題2: 設定が反映されない

症状: - 設定を変更したが、Instana UIに反映されない

原因と解決策:

  1. YAMLフォーマットの確認

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # ❌ インデントが間違っている
    com.instana.plugin.generic.hardware:
    enabled: true
    availability-zone: 'Tokyo-DC1/Rack-A15'
    
    # ✅ 正しいインデント(2スペース)
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Rack-A15'
    

  2. 特殊文字のエスケープ

    1
    2
    3
    4
    5
    # ❌ 特殊文字がエスケープされていない
    availability-zone: Tokyo-DC1/Rack-A15
    
    # ✅ クォートで囲む
    availability-zone: 'Tokyo-DC1/Rack-A15'
    

  3. 設定ファイルの検証

    1
    2
    3
    4
    # YAMLの構文チェック
    python3 -c "import yaml; yaml.safe_load(open('/opt/instana/agent/etc/instana/configuration.yaml'))"
    
    # エラーがあれば表示される
    

問題3: 複数のゾーン情報が混在

症状: - 同じホストに複数のアベイラビリティゾーンが設定されている

原因と解決策:

  1. 重複設定の確認

    # 設定ファイル内の重複を確認
    grep -n "com.instana.plugin.generic.hardware" /opt/instana/agent/etc/instana/configuration.yaml
    

  2. 重複の削除

    # ❌ 重複している
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Rack-A15'
    
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Rack-B20'
    
    # ✅ 1つだけ設定
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'Tokyo-DC1/Rack-A15'
    

問題4: クラウド環境で自動検出されない

症状: - クラウド環境でアベイラビリティゾーンが自動的に設定されない

原因と解決策:

  1. メタデータサービスの確認

    1
    2
    3
    4
    5
    6
    7
    8
    # AWS
    curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone
    
    # Azure
    curl -s -H Metadata:true "http://169.254.169.254/metadata/instance/compute/location?api-version=2021-02-01&format=text"
    
    # GCP
    curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/zone
    

  2. 手動設定

    1
    2
    3
    4
    # メタデータサービスが利用できない場合は手動設定
    com.instana.plugin.generic.hardware:
      enabled: true
      availability-zone: 'AWS/ap-northeast-1a'
    

問題5: 命名規則の不統一

症状: - 環境によってアベイラビリティゾーンの命名規則が異なる

原因と解決策:

  1. 標準化された命名規則の策定

    # 標準フォーマット: [環境]/[プロバイダー]/[リージョン]/[ゾーン]
    
    # 本番環境
    availability-zone: 'Production/AWS/ap-northeast-1/1a'
    
    # ステージング環境
    availability-zone: 'Staging/AWS/ap-northeast-1/1c'
    
    # 開発環境
    availability-zone: 'Development/AWS/ap-northeast-1/1d'
    

  2. ドキュメント化

    # アベイラビリティゾーン命名規則
    
    ## フォーマット
    [環境]/[プロバイダー]/[リージョン]/[詳細]
    
    ## 例
    - Production/AWS/ap-northeast-1/1a
    - Staging/Azure/japaneast/1
    - Development/GCP/asia-northeast1/a
    - Production/OnPrem/Tokyo-DC1/Rack-A15
    

FAQ

Q1: アベイラビリティゾーンは必須ですか?

A: 必須ではありませんが、強く推奨されます。特に以下の場合は設定すべきです:

  • マルチAZ/マルチリージョン構成
  • 高可用性が求められる環境
  • 障害影響範囲の迅速な把握が必要な環境
  • 複数のデータセンターを運用している場合
1
2
3
4
# 最低限の設定
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1'

Q2: 動的に変更できますか?

A: はい、設定ファイルを変更してAgentを再起動すれば変更できます。

1
2
3
4
5
# 設定変更
sudo vi /opt/instana/agent/etc/instana/configuration.yaml

# Agent再起動
sudo systemctl restart instana-agent

ただし、頻繁な変更は推奨されません。物理的な配置が変わる場合のみ変更してください。

Q3: クラウドとオンプレミスで命名規則を統一すべきですか?

A: はい、統一することを強く推奨します。

# 統一されたフォーマット
# [環境]/[プロバイダー]/[リージョン]/[詳細]

# AWS
availability-zone: 'Production/AWS/ap-northeast-1/1a'

# オンプレミス
availability-zone: 'Production/OnPrem/Tokyo-DC1/Rack-A15'

# Azure
availability-zone: 'Production/Azure/japaneast/1'

Q4: 複数のラックにまたがるサーバーはどう設定しますか?

A: 各サーバーは1つのアベイラビリティゾーンのみ設定できます。物理的な主要配置場所を設定してください。

1
2
3
4
5
6
7
8
9
# サーバーAはRack-A15に主に配置
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-A15'

# サーバーBはRack-B20に主に配置
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Floor-3/Rack-B20'

Q5: コンテナ環境ではどう設定しますか?

A: コンテナのホストマシンのアベイラビリティゾーンを設定します。

1
2
3
4
5
6
7
8
9
# Kubernetesノード
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'AWS/ap-northeast-1a'

# Dockerホスト
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/Rack-A15'

コンテナ自体には個別に設定する必要はありません。ホストの設定が継承されます。

Q6: 仮想マシンではどう設定しますか?

A: 仮想マシンが稼働している物理ホストのアベイラビリティゾーンを設定します。

1
2
3
4
5
6
7
8
9
# VMware vSphere
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/ESXi-Host-01/Rack-A15'

# Hyper-V
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Tokyo-DC1/HyperV-Host-02/Rack-B20'

Q7: 障害時にアベイラビリティゾーン情報はどう活用されますか?

A: Instana UIで以下のように活用できます:

  1. 影響範囲の特定
  2. 同じゾーン内のすべてのホスト/サービスを一覧表示
  3. ラック障害時の影響を即座に把握

  4. フィルタリング

  5. 特定のゾーンのみを表示
  6. ゾーン間の比較

  7. アラート設定

  8. ゾーン単位でのアラート設定
  9. ゾーン障害の検知
1
2
3
4
# 例: 本番環境の東京DC1のみ監視
com.instana.plugin.generic.hardware:
  enabled: true
  availability-zone: 'Production/Tokyo-DC1/Rack-A15'

関連ドキュメント: - ホスト監視設定 - クラウド監視設定 - ベストプラクティス