はじめに
今回ZabbixAPIを使用してアイテムを一括登録するための方法を記載しています。なお、実施しているのはログ監視をするためのアイテムを登録です。
他の記事でも同様ですが、認証については以下が組み込まれていることが前提です。
APIに関して何も知らなかったので、以下のサイトを参考にカスタマイズしました。


Zabbix APIでラクにミスなく大量のホストを登録しよう! | そるでぶろぐ
Zabbix APIを使いこなせば、手作業によるミスを減らしてラクに大量の監視設定を行うことができます。でも初心者には分かりにくいし、とっつきにくい…。そこで本記事では、Zabbi...
使い方
今回アイテムを一括登録するために必要になる物は以下です。
- 1. 登録したいアイテムの情報を記載したファイル
- 2. テンプレートIDを取得するスクリプト
- 3. アイテムを一括登録するスクリプト
登録したいアイテムの情報を記載したファイル
以下は登録したいアイテムの情報を記載したファイルです。「;」で区切られています。
各区切りが何に対応しているかは、ファイル内に記載しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
[root@localhost ~]# cat item_create_list testItem_01;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt01.log;30s testItem_02;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt02.log;30s testItem_03;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt03.log;30s testItem_04;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt04.log;30s testItem_05;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt05.log;30s testItem_06;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt06.log;30s testItem_07;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt07.log;30s testItem_08;7;A_TEST_Template_Log_Setting;2;/var/log/network/rt08.log;30s ###############################各列の名称############################### #【1.ItemName】 #アイテム名を指定する。 ######################################################################## #【2.ItemType】 #アイテムタイプを指定する。 #[0]Zabbix agent;[1]SNMPv1 agent;[2]Zabbix trapper;[3]simple check; #[4]-SNMPv2 agent;[5]-Zabbix internal;[6]-SNMPv3 agent;[7]Zabbix agent (active) #[8]-Zabbix aggregate;[9]-web item;[10]-external check;[11]-database monitor #[12]-IPMI agent;[13]-SSH agent;[14]-TELNET agent;[15]calculated;[16]JMX agent; #[17]-SNMP trap;[18]-Dependent item;[19]-HTTP agent; ######################################################################## #【3.TemplateName】 #アイテムを登録するテンプレート名を指定します。(テンプレートIDに変換されます。) ######################################################################## #【4.ItemValueType】 #value_typeを指定します。 #[0]-numeric float;[1]-character;[2]-log;[3]-numeric unsigned;[4]-text. ######################################################################## #【5.LogFolderPath】 #ログフォルダの絶対パスを指定します。 ######################################################################## #【6.MonitoringInterval】 #delay(監視間隔)を指定します。 ######################################################################## |
テンプレートIDを取得するスクリプト
テンプレートIDを取得するスクリプトは以下です。引数にテンプレート名を指定すると、テンプレートIDが戻ってきます。