İnternetin izleme gereksinimlerinin yükseltilmesi ve genişletilmesiyle, Zabbix API'nin izlemedeki rolü, özellikle üçüncü taraf yazılımları entegre ederken ve günlük görevleri otomatikleştirirken giderek daha önemli hale geldi. Otomasyon teknolojisi olmadan binlerce sunucuyu yönetmenin ne kadar zor olduğunu bir düşünün!
Zabbix API, otomatikleştirilmiş toplu işlemler ve üçüncü taraf yazılım entegrasyonu ve diğer işlevler için programlanabilir arabirimler sağlar ve böylece Zabbix işlevlerinin çeşitli olasılıklarını geliştirir. Güvenlik açısından, Zabbix API ara yazılımı, mimariyi daha modüler hale getirir ve veritabanı üzerinde doğrudan işlemlerden kaçınır.
API kullanmak için temel adımlar
Zabbix API iki ana işlev sağlar :
Zabbix API, Zabbix yapılandırmasının programlı olarak alınmasına ve değiştirilmesine olanak tanır ve geçmiş verilere erişim sağlar;
Yaygın olarak kullanılır:
Örneğin: 1) Toplu yönetim için zabbix kullanın, örneğin: 1000 ana bilgisayar eklemek istiyoruz.
2) Mobil alarmlar yapmak için zabbix'i WeChat, e-posta, DingTalk vb. İle birlikte kullanın.
API kullanımını simüle etmek için curl kullanın
1. Sertifika alın
Zabbix içindeki herhangi bir veriye erişmeden önce, oturum açmanız ve bir kimlik doğrulama belirteci almanız gerekir. Bu, user.login yöntemi kullanılarak yapılabilir. Standart bir Zabbix Admin kullanıcısı olarak oturum açmak istediğinizi varsayalım. JSON isteği şuna benzer:
$ curl -s -X POST -H'Content-Type: application / json '-d' > { > "jsonrpc": "2.0", > "method": "host.get", > "parametreler": { > "kullanıcı": "Yönetici", > "şifre": "zabbix" > }, > "kimlik": 1 > } ' | python -m json.tool { "jsonrpc": "2.0", "sonuç": "581cc92624202bddaeff3a90cca181dc", "kimlik": 1 }İstek nesnesinin belirli özellikleri:
2. API'nin host.get yöntemini çağırarak hostid'i istemek için elde edilen SESSIONID'yi kullanın
$ curl -s -X POST -H'Content-Type: application / json '-d' > { > "jsonrpc": "2.0", > "method": "host.get", > "parametreler": { > "çıktı": > }, > "auth": "581cc92624202bddaeff3a90cca181dc", > "kimlik": 1 > } ' | python -m json.tool { "jsonrpc": "2.0", "sonuç": , "kimlik": 1 }Yanıt nesnesinin özellikleri:
Zabbix api arayüzünü çağıran otomatik python örneği
1. KEY'i alın
! / usr / bin / env python2.7 # kodlama = utf-8 json içe aktar urllib2'yi içe aktar # tabanlı url ve gerekli başlık url = " header = {"İçerik Türü": "uygulama / json"} # auth kullanıcı ve şifre data = json.dumps ( { "jsonrpc": "2.0", "method": "user.login", "parametreler": { "kullanıcı": "Yönetici", "şifre": "zabbix" }, "kimlik": 0 }) # istek nesnesi oluştur istek = urllib2.Request (url, veri) başlıktaki anahtar için: request.add_header (anahtar, başlık) # kimlik doğrulama ve kimlik doğrulama Deneyin: sonuç = urllib2.urlopen (istek) URLError dışında e: yazdır "Kimlik Doğrulama Başarısız, Lütfen Adınızı ve Şifrenizi Kontrol Edin:", e.code Başka: yanıt = json.loads (sonuç.read ()) sonuç.close () "Kimlik Doğrulama Başarılı. Kimlik Doğrulama Kimliği:", yanıt2. Ev sahibi listesini alın
#! / usr / bin / env python2.7 # kodlama = utf-8 json içe aktar urllib2'yi içe aktar # xiaorui.cc url = " header = {"İçerik Türü": "uygulama / json"} # istek json data = json.dumps ( { "jsonrpc": "2.0", "method": "host.get", "parametreler": { "çıktı":, "filtre": {"ana makine": ""} }, "auth": "dbcd2abc0f0320fffab34c6d749d3", "kimlik": 1, }) # istek nesnesi oluştur istek = urllib2.Request (url, veri) başlıktaki anahtar için: request.add_header (anahtar, başlık) # ana bilgisayar listesi alın Deneyin: sonuç = urllib2.urlopen (istek) URLError dışında e: eğer hasattr (e, 'sebep'): print 'Bir sunucuya ulaşamadık.' print'Reason: ', e.reason elif hasattr (e, 'kod'): print 'Sunucu isteği yerine getiremedi.' print'Error kodu: ', e.code Başka: yanıt = json.loads (sonuç.read ()) sonuç.close () "Host Sayısı:" yazdır, len (yanıt) yanıt olarak ev sahibi için: "Ana Bilgisayar Kimliği:", ana bilgisayar, "Ana Bilgisayar Adı:", ana bilgisayar yazdırŞu anda 25 API arayüzü desteklenmektedir. Daha fazla uygulama için lütfen resmi API belgelerine bakın.