複数の ID 列を持つ Zabbix テーブル内のホストとテンプレートの識別
Zabbix セットアップのコンテキストでは、ホストとテンプレートが同じテーブルに存在し、それぞれの ID によって識別されるため、特定のテンプレートを使用する特定のホストを見つけるのは困難な作業になる可能性があります。これに対処するには、ホストとテンプレート間の関係を明示的に定義する hosts_templates テーブルを活用することが不可欠です。
hosts テーブルには、次の関連する列が含まれています:
一方、hosts_templates テーブルには次の列が含まれています:
目的は、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 サイトの他の関連記事を参照してください。