玩了一段時間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表,這個表存放了其他表的maxid值(因爲zabbix裏面,id值一般都是作爲表的主鍵,不能出現重複的,插入的時候要先從這個表裏面查到上一條語句的id是多少,新插入的id要在這個maxid的基礎上加一,即下面用到id的地方,比如hostid的值是上面查到的hostid + 1)
#添加主機
這一步是添加一臺主機到hosts表,hostid就用剛剛查到的值,host即該主機的主機名,name是該主機的別名
insert into applications (applicationid,hostid,name) value ('775','10504','網絡檢測')
這一步是添加應用級到主機,name是應用集的名稱,如果添加多個應用集就插入多條
如果你想加入新的主機組,可以這樣插入,當然如果你想把主機加入到已有的主機組,可以忽略這步
這步就很簡單了,把新加入的主機分組
添加主機的接口,type是接口的類型:1代表代理接口,2代表snmp接口,3是JMX接口,4是IPMI接口,main的話用zabbix原來的方法加了幾次,發現同類型的第一個是1,然後再加的就爲0,不知所以然,不過我一般不會去加幾個接口,所以沒深入研究了
這步就可以添加監控項目到主機了,tpye代表項目的檢測類型,即主動,被動,簡單等,這裏的3是簡單檢測,name是項目名,key_是項目的鍵值,delay是檢測間隔,history是歷史保存時間,trends是趨勢保存時間,value_type是數據的類型,units是單位,還有其他的可以改,我這裏只是個舉例而已。
最後還可以把項目添加到應用集,打開zabbix頁面,可以看到監控已經添加上去了,玩過xml格式文件載入和api,還是比較喜歡直接用sql進行批量的添加操作,zabbix的數據庫做的有點坑,值得大家去研究優化,今天就寫到這了,以後還會補充更多的數據庫研究心得,有問題可以留言交流。