ホームページ >データベース >mysql チュートリアル >複数の ID 列を使用して Zabbix ホストとテンプレートを識別する方法

複数の ID 列を使用して Zabbix ホストとテンプレートを識別する方法

DDD
DDDオリジナル
2024-12-10 00:04:09578ブラウズ

How to Identify Zabbix Hosts and Templates Using Multiple ID Columns?

複数の ID 列を持つ Zabbix テーブル内のホストとテンプレートの識別

Zabbix セットアップのコンテキストでは、ホストとテンプレートが同じテーブルに存在し、それぞれの ID によって識別されるため、特定のテンプレートを使用する特定のホストを見つけるのは困難な作業になる可能性があります。これに対処するには、ホストとテンプレート間の関係を明示的に定義する hosts_templates テーブルを活用することが不可欠です。

hosts テーブルには、次の関連する列が含まれています:

  • hostid: 一意の IDホストとテンプレートの両方
  • name: ホストとテンプレートの表示名templates

一方、hosts_templates テーブルには次の列が含まれています:

  • host_template_id: ホストとテンプレート間の関係の一意の ID
  • hostid:関係に関与するホストの ID
  • templateid: 関連付けられたテンプレートの ID関係

目的は、hosts_templates テーブル内の ID に基づいてホストとテンプレートの名前を取得することです。ただし、hostid 列を使用した単純なマージではエントリが重複します。

この問題を回避するには、クエリで hosts テーブルを 2 回結合し、結合ごとに異なるエイリアスを使用する必要があります。そうすることで、結果内のホスト名とテンプレート名を区別できます。

SELECT h1.name AS host_name, h2.name AS template_name
FROM hosts_template AS t
JOIN hosts AS h1 ON t.hostid = h1.hostid
JOIN hosts AS h2 ON t.hosttemplateid = h2.hostid

この洗練されたクエリは、目的のデータを正常に取得し、Zabbix 環境内でどのホストがどのテンプレートを使用しているかを明確に表示します。

以上が複数の ID 列を使用して Zabbix ホストとテンプレートを識別する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。