Zabbix API-Operasyon ve bakım izleme otomasyonuna giden yolu açın

İ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.

Zabbix API'nin tipik iş akışı

API kullanmak için temel adımlar

  • Ne yapmak istediğinizi açıklayan bir JSON nesnesi hazırlayın (ana bilgisayar oluşturun, görüntüleri alın, izleme öğelerini güncelleyin, vb.).
  • Bu JSON nesnesini adresine göndermek için POST yöntemini kullanın. Http://example.com/zabbix/, Zabbix ön uç adresidir. apijsonrpc.php, API'yi çağıran PHP betiğidir. Görsel ön ucun kurulu olduğu dizinde bulunabilir.
  • SESSIONID alın
  • SESSIONID aracılığıyla sonraki bağlantıları kurun
  • POST verilerini JSON biçiminde gönderin ve gerekli verileri almak için buna karşılık gelen yöntemi yerleştirin.
  • Zabbix API işlevi ve uygulaması

    Zabbix API iki ana işlev sağlar :

  • Zabbix yapılandırmasının uzaktan yönetimi
  • Yapılandırmayı ve geçmiş verileri uzaktan alın
  • 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:

    • Zabbix'i kullanmak için yeni bir uygulama oluşturun;
    • Zabbix'i üçüncü taraf yazılımlarla entegre edin;
    • Günlük görevleri otomatikleştirin.

    Ö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.

    Zabbix API kullanımı

    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:

    • API tarafından kullanılan jsonrpc- JSON-RPC protokol sürümü; Zabbix API, JSON-RPC sürüm 2.0'ı uygular;
    • method- API yöntemi çağrılıyor;
    • parametreler- API yöntemine aktarılacak parametreler;
    • id-keyfi tanımlayıcı talep edildi;
    • auth-user kimlik doğrulama belirteci; henüz olmadığından, null ayarlayın.

    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:

    • jsonrpc-again, JSON-RPC protokolünün sürümü;
    • sonuç - yöntem tarafından döndürülen veriler;
    • id-karşılık gelen talebin tanımlayıcısı.

    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ıt

    2. 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.

    Bu dört oyuncu Guo Degangın estetiğini geliştirdi ve üçüncüsü gerçekten çok güzel.
    önceki
    Bu standarda göre, 7 anakara aktris Jing Tian ile aynı seviyededir.
    Sonraki
    40 yaşındaki Fresh Meat ile büyük çapta oynadığı için onu hatırlama
    "Oyuncu Bir" Kuzey Amerika gişesi sokağa çıkmaktan korkuyor ve Çinli izleyiciler körü körüne peşinde mi?
    İlk bölüm 8.7, ikinci bölüm 8 puan, en iyi yerli gençlik draması gerçekten boşuna değil
    18 yıllık ticaret geçmişimin özeti: Gün içi ticareti iki fırça olmadan yapmayın
    Gao Yunxiang, edebi çevrede çökmüş 5 "kibar bey" i sıralayamıyor
    "Bay General" "Niu Xiangxiang", "General Dog Head" aktörüne dönüştü Fang Anna yapımcı oldu
    "Justice League" in yapımcısıyla röportaj: DC'nin Marvel'ı kazanması bu savaşa bağlı!
    Web sitesinin dosya izinlerini yönetin = alnınızın ince çizgisini koruyun!
    1.500 ABD dolarından 128,00 ABD dolarına kadar, bu 90'lar sonrası yalnızca 1 yıl sürdü
    Nisan ayı itibarıyla küresel sıralamalar: "Kızıldeniz" ve "Tang Detective 2", Hollywood filmlerinin% 90'ını ezmek için bir araya geldi
    Oscar'lar tarafından kutsanmış 76'dan fazla oyunculuk becerisi olan Çin filmleri ondan öğrenmeli
    League of Legends 7.9 büyük bir hata bir eserde ortaya çıktı: büyük bir hamle iki bin gerçek hasar!
    To Top