OpenStack (レガシー)

Supported OS Linux Windows Mac OS

インテグレーションバージョン1.13.2

OpenStack のデフォルトのダッシュボード

概要

: このインテグレーションは、OpenStack v12 以下 (コンテナ化されていないOpenStack) にのみ適用されます。OpenStack v13+ (コンテナ化された OpenStack) からメトリクスを収集する場合は、OpenStack Controller インテグレーション を使用してください。

OpenStack サービスからメトリクスをリアルタイムに取得して、以下のことができます。

  • OpenStack の状態を視覚化および監視できます。
  • OpenStack のフェイルオーバーとイベントの通知を受けることができます。

セットアップ

インストール

OpenStack メトリクスをキャプチャするには、ハイパーバイザーを実行しているホストに Agent をインストール します。

コンフィギュレーション

OpenStack の準備

ID サーバーで Datadog のロールとユーザーを構成します。

openstack role create datadog_monitoring
openstack user create datadog \
    --password my_password \
    --project my_project_name
openstack role add datadog_monitoring \
    --project my_project_name \
    --user datadog

次に、policy.json ファイルを更新して、必要なアクセス許可を付与します。role:datadog_monitoring には次の操作へのアクセスが必要です。

Nova

{
  "compute_extension": "aggregates",
  "compute_extension": "hypervisors",
  "compute_extension": "server_diagnostics",
  "compute_extension": "v3:os-hypervisors",
  "compute_extension": "v3:os-server-diagnostics",
  "compute_extension": "availability_zone:detail",
  "compute_extension": "v3:availability_zone:detail",
  "compute_extension": "used_limits_for_admin",
  "os_compute_api:os-aggregates:index": "rule:admin_api or role:datadog_monitoring",
  "os_compute_api:os-aggregates:show": "rule:admin_api or role:datadog_monitoring",
  "os_compute_api:os-hypervisors": "rule:admin_api or role:datadog_monitoring",
  "os_compute_api:os-server-diagnostics": "rule:admin_api or role:datadog_monitoring",
  "os_compute_api:os-used-limits": "rule:admin_api or role:datadog_monitoring"
}

Neutron

{
  "get_network": "rule:admin_or_owner or rule:shared or rule:external or rule:context_is_advsvc or role:datadog_monitoring"
}

Keystone

{
  "identity:get_project": "rule:admin_required or project_id:%(target.project.id)s or role:datadog_monitoring",
  "identity:list_projects": "rule:admin_required or role:datadog_monitoring"
}

ポリシーの変更を有効にするには、Keystone、Neutron、および Nova API サービスを再起動する必要があります。

: OpenStack インテグレーションをインストールすると、Datadog が監視する VM 数が増える可能性があります。これが課金にどのように影響するかについては、課金に関する FAQ を参照してください。

Agent の構成

  1. Datadog Agent が Keystone サーバーに接続するように構成し、監視するプロジェクトを個別に指定します。以下の構成で Agent の構成ディレクトリ のルートにある conf.d/ フォルダーの openstack.d/conf.yaml ファイルを編集します。使用可能なすべての構成オプションの詳細については、サンプル openstack.d/conf.yaml を参照してください。

    init_config:
      ## @param keystone_server_url - string - required
      ## Where your identity server lives.
      ## Note that the server must support Identity API v3
      #
      keystone_server_url: "https://<KEYSTONE_SERVER_ENDPOINT>:<PORT>/"
    
    instances:
      ## @param name - string - required
      ## Unique identifier for this instance.
      #
      - name: "<INSTANCE_NAME>"
    
        ## @param user - object - required
        ## User credentials
        ## Password authentication is the only auth method supported.
        ## `user` object expects the parameter `username`, `password`,
        ## and `user.domain.id`.
        ##
        ## `user` should resolve to a structure like:
        ##
        ##  {'password': '<PASSWORD>', 'name': '<USERNAME>', 'domain': {'id': '<DOMAINE_ID>'}}
        #
        user:
          password: "<PASSWORD>"
          name: datadog
          domain:
            id: "<DOMAINE_ID>"
    
  2. Agent を再起動します

ログの収集
  1. Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml でこれを有効にできます。

    logs_enabled: true
    
  2. Openstack ログの収集を開始するには、次のコンフィギュレーションブロックを openstack.d/conf.yaml ファイルに追加します。

    logs:
      - type: file
        path: "<LOG_FILE_PATH>"
        source: openstack
    

    path パラメーターの値を変更し、環境に合わせて構成します。使用可能なすべてのコンフィギュレーションオプションについては、サンプル openstack.d/conf.yaml を参照してください。

検証

Agent の status サブコマンド を実行し、Checks セクションで openstack を探します。

収集データ

メトリクス

openstack.nova.current_workload
(gauge)
Current workload on the Nova hypervisor
openstack.nova.disk_available_least
(gauge)
Disk available for the Nova hypervisor
Shown as gibibyte
openstack.nova.free_disk_gb
(gauge)
Free disk on the Nova hypervisor
Shown as gibibyte
openstack.nova.free_ram_mb
(gauge)
Free RAM on the Nova hypervisor
Shown as mebibyte
openstack.nova.hypervisor_load.1
(gauge)
The average hypervisor load over one minute.
openstack.nova.hypervisor_load.5
(gauge)
The average hypervisor load over five minutes.
openstack.nova.hypervisor_load.15
(gauge)
The average hypervisor load over fifteen minutes.
openstack.nova.limits.max_image_meta
(gauge)
The maximum allowed image metadata definitions for this tenant
openstack.nova.limits.max_personality
(gauge)
The maximum allowed personalities for this tenant
openstack.nova.limits.max_personality_size
(gauge)
The maximum size of a single personality allowed for this tenant
openstack.nova.limits.max_security_group_rules
(gauge)
The maximum number of security group rules allowed for this tenant
openstack.nova.limits.max_security_groups
(gauge)
The maximum number of security groups allowed for this tenant
openstack.nova.limits.max_server_meta
(gauge)
The maximum allowed service metadata definitions for this tenant
openstack.nova.limits.max_total_cores
(gauge)
The maximum allowed cores for this tenant
openstack.nova.limits.max_total_floating_ips
(gauge)
The maximum allowed floating IPs for this tenant
openstack.nova.limits.max_total_instances
(gauge)
The maximum number of instances allowed for this tenant
openstack.nova.limits.max_total_keypairs
(gauge)
The maximum allowed key pairs allowed for this tenant
openstack.nova.limits.total_cores_used
(gauge)
The total cores used by this tenant
openstack.nova.limits.total_floating_ips_used
(gauge)
The total floating IPs used by this tenant
openstack.nova.limits.total_instances_used
(gauge)
The total instances used by this tenant
openstack.nova.limits.total_security_groups_used
(gauge)
The total number of security groups used by this tenant
openstack.nova.running_vms
(gauge)
Number of running VMs on this hypervisor host
openstack.nova.vcpus
(gauge)
Number of vCPUs available on this hypervisor host
openstack.nova.vcpus_used
(gauge)
Number of vCPUS used on this hypervisor host
openstack.nova.server.hdd_errors
(gauge)
The number of errors seen by the server when accessing an HDD device
openstack.nova.server.hdd_read_req
(gauge)
The number of read requests made to an HDD device by this server
openstack.nova.server.hdd_write_req
(gauge)
The number of write requests made to an HDD device by this server
openstack.nova.server.vda_errors
(gauge)
The number of errors seen by the server when accessing a VDA device
openstack.nova.server.vda_read_req
(gauge)
The number of read requests made to a VDA device by this server
openstack.nova.server.vda_write_req
(gauge)
The number of write requests made to a VDA device by this server
openstack.nova.limits.max_total_ram_size
(gauge)
The max allowed RAM size for this tenant in megabytes (MB)
Shown as mebibyte
openstack.nova.limits.total_ram_used
(gauge)
The current RAM used by this tenant in megabytes (MB)
Shown as mebibyte
openstack.nova.local_gb
(gauge)
The size in GB of the ephemeral disk present on this hypervisor host
Shown as gibibyte
openstack.nova.local_gb_used
(gauge)
The size in GB of disk used on this hypervisor host
Shown as gibibyte
openstack.nova.memory_mb
(gauge)
The size in MB of RAM present on this hypervisor host
Shown as mebibyte
openstack.nova.memory_mb_used
(gauge)
The size in MB of RAM used on this hypervisor host
Shown as mebibyte
openstack.nova.server.hdd_read
(gauge)
Number of bytes read from an HDD device by this server
Shown as byte
openstack.nova.server.hdd_write
(gauge)
Number of bytes written to an HDD device by this server
Shown as byte
openstack.nova.server.vda_read
(gauge)
Number of bytes read from a VDA device by this server
Shown as byte
openstack.nova.server.vda_write
(gauge)
Number of bytes written to a VDA device by this server
Shown as byte
openstack.nova.server.memory
(gauge)
The amount of memory in MB provisioned for this server
Shown as mebibyte
openstack.nova.server.memory_actual
(gauge)
The amount of memory in MB provisioned for this server
Shown as mebibyte
openstack.nova.server.memory_rss
(gauge)
The amount of memory used by the processes of this server that is not associated with disk pages - such as stack and heap memory
Shown as mebibyte
openstack.nova.server.cpu0_time
(gauge)
CPU time in nanoseconds of this virtual CPU
Shown as nanosecond

イベント

OpenStack チェックには、イベントは含まれません。

サービスのチェック

openstack.neutron.api.up
Agent が Neutron API をクエリできない場合は CRITICAL を、Keystone API に問題がある場合は UNKNOWN を返します。それ以外の場合は、OK を返します。
Statuses: ok, クリティカル, 不明

openstack.nova.api.up
Agent が Nova API をクエリできない場合は CRITICAL を、Keystone API に問題がある場合は UNKNOWN を返します。それ以外の場合は、OK を返します。
Statuses: ok, クリティカル, 不明

openstack.keystone.api.up
Agent が Keystone API をクエリできない場合は、CRITICAL を返します。それ以外の場合は、OK を返します。
Statuses: ok, クリティカル

openstack.nova.hypervisor.up
Agent がハイパーバイザーの状態を取得できない場合は UNKNOWN、ハイパーバイザーがダウンしている場合は CRITICAL を返します。それ以外の場合は、OK を返します。
Statuses: ok, クリティカル, 不明

openstack.neutron.network.up
Agent がネットワークの状態を取得できない場合は UNKNOWN、ネットワークがダウンしている場合は CRITICAL を返します。それ以外の場合は、OK を返します。
Statuses: ok, クリティカル, 不明

トラブルシューティング

ご不明な点は、Datadog のサポートチーム までお問合せください。

その他の参考資料

お役に立つドキュメント、リンクや記事: