天天看點

zabbix資料庫研究

玩了一段時間zabbix,對他的資料庫有點研究,在這裡分享下添加一個監控的過程,希望能幫到路過的朋友。

添加一個監控項目(不包括添加模闆)涉及到幾個表,分别是:ids, hosts, applications, groups, hosts_groups, interface, items, items_applications,如果還需要添加觸發器的話還涉及到functions,triggers等表。

基本的流程是這樣的:

select table_name,nextid from ids where table_name="applications" or table_name="hosts" or table_name="groups" or table_name="hosts_groups" or table_name="interface" or table_name="items" or table_name="items_applications"

這裡搜尋的是ids表,這個表存放了其他表的nextid值(因為zabbix裡面,id值一般都是作為表的主鍵,不能出現重複的,插入的時候要先從這個表裡面查到下一條語句的id是多少)

#添加主機

insert into hosts (hostid,host,name)  value (‘10503‘,‘hk-192.168.1.1‘,‘xx雲主機‘);

這一步是添加一台主機到hosts表,hostid就用剛剛查到的值,host即該主機的主機名,name是該主機的别名

#添加對應應用集到主機

insert into applications (applicationid,hostid,name) value (‘775‘,‘10504‘,‘網絡檢測‘)

這一步是添加應用級到主機,name是應用集的名稱,如果添加多個應用集就插入多條

#添加新的主機組,則:

insert into groups (groupid,name,internal) value (‘28‘,‘test1‘,‘0‘);

如果你想加入新的主機組,可以這樣插入,當然如果你想把主機加入到已有的主機組,可以忽略這步

#添加主機到主機組

insert into hosts_groups (hostgroupid,hostid,groupid) value (‘512‘,‘10504‘,‘28‘);

這步就很簡單了,把新加入的主機分組

#添加接口:

insert into interface (interfaceid,hostid,main,type,ip,port) value (‘426‘,‘10510‘,‘1‘,‘1‘,‘127.0.0.1‘,‘10050‘);

添加主機的接口,type是接口的類型:1代表代理接口,2代表snmp接口,3是jmx接口,4是ipmi接口,main的話用zabbix原來的方法加了幾次,發現同類型的第一個是1,然後再加的就為0,不知是以然,不過我一般不會去加幾個接口,是以沒深入研究了

#添加項目到對應主機

insert into items (itemid,type,hostid,name,key_,delay,history,trends,value_type,,units,interfaceid) value (‘27456‘,‘3‘,‘10504‘,‘丢包率‘,‘icmppingloss[192.168.1.1]‘,‘10‘,‘30‘,‘365‘,‘3‘,‘%‘,‘420‘);

這步就可以添加監控項目到主機了,tpye代表項目的檢測類型,即主動,被動,簡單等,這裡的3是簡單檢測,name是項目名,key_是項目的鍵值,delay是檢測間隔,history是曆史儲存時間,trends是趨勢儲存時間,value_type是資料的類型,units是機關,還有其他的可以改,我這裡隻是個舉例而已。

#添加項目到應用集

insert into items_applications (itemappid,applicationid,itemid) value ("9869", "775", "27456")

最後還可以把項目添加到應用集,打開zabbix頁面,可以看到監控已經添加上去了,玩過xml格式檔案載入和api,還是比較喜歡直接用sql進行批量的添加操作,zabbix的資料庫做的有點坑,值得大家去研究優化,今天就寫到這了,以後還會補充更多的資料庫研究心得,有問題可以留言交流。

本文出自 “” 部落格,請務必保留此出處