2011-06-14 13 views
14

İşte hedefim: Çeşitli metrikleri zabbix olarak bildirmek istiyorum, böylece grafikleri bir web sayfasında görüntüleyebiliriz.Verileri zabbix'e yansıtma

Bu ölçümler şunlardır: sabun hizmet sunulması, bir ya da daha fazla veri tabanlarından

  • çeşitli sorgu sonuçları başına

    • gecikme.

    Yazmak ve/veya ifşa etmek için hangi şeylere ihtiyacım var? Yoksa zabbix sunucusu gidecek ve bir yerdeki bir hizmetten mi alacak?

    Tek bir değer döndüren bir komut dosyasının işe yarayacağını, ancak doğru yol olup olmadığını merak ettim.

  • cevap

    14

    Ben Zabbix içine ölçümleri almak için 2 öneri sunabilir:

    1. kullanın Zabbix sunucusuna doğrudan komut veri beslemek için zabbix_sender ikili. Bu, komut dosyanızın kendi aralığını çağırmasını ve gerekli tüm parametreleri ayarlamasını sağlar. Gerçekten sadece zabbix_sender ikili bilgisini bilmeniz gerekiyor.

      Zabbix sunucu arabiriminin içinde, Zabbix trapper türünde öğeler oluşturabilirsiniz. Bu, zabbix_sender'dan gönderilen değerleri alan öğe türüdür. Anahtar adını oluşturuyorsunuz ve eşleşmesi gerekiyor.

    2. Bunu yapmanın ikinci yolu, zabbix_agentd.conf dosyasının içinde bir anahtar adı ve komut dosyası/ikili belirtmektir. Zabbix sunucusu bu öğeyi her istediğinde, komut dosyası çağrılacak ve komut dosyasındaki veriler kaydedilecektir.

      Bu, komut dosyalarını kendi aralıklarında çalıştırmanızı zorlamak yerine, Zabbix öğesi yapılandırmasında aralıkları ayarlamanıza olanak tanır. Bununla birlikte, bu fazladan bilgileri her ana bilgisayar için zabbix_agentd.conf dosyanıza eklemeniz gerekir.

    Python doğrudan Bunu yapmanın başka yolları da olabilir (belki Python için zabbix_sender bağlamaları?). Ama bunlar daha önce kullanmış olduğum 2 yol. Bu gerçekten Python'a özgü değil. Ama Python betikinizde zabbix_sender'u kullanabilmeniz gerekir. Umarım bu bilgi yardımcı olur!

    Güncelleme: Ayrıca Zabbix'in üzerinde çalıştığı/bir API (JSON/RPC stili) olduğunu hatırladım. Ancak, dokümantasyon sitesi şu anda kapalıdır ve API'nın öğe verilerini göndermek için olup olmadığından emin değilim. http://www.zabbix.com/wiki/doc/api

    Ve Python API için bir proje: https://github.com/gescheit/scripts/tree/master/zabbix/

    o 1.8

    +0

    Python için zabbix_sender bağlamaları yok. Ben bunu bir döngü içinde bir zabbix_sender uyumlu dosyayı doldurmak için bir yol daha verimlidir ölçütlerinin büyük bir miktar ile uğraşırken, zabbix_sender veri gönderirken, Python komut bir demet ettik: baskı >> metrics_file_descriptor, '% s% s% s% s '% (anasistem adı, item_key1, zbx_timestamp, metrik1) ve bunu çağırır, böylece Zabbix Sunucunuza gönderir = "% s -z% s -p% s --with-timestamps - -input-file% s>/dev/null 2>/dev/null "% (zbx_sender, zbx_server_ip, zbx_port, metrics_file) args = shlex.split (komut) –

    +0

    Ayrıca, zabbix API python sarıcısı oldukça yararlıdır Daha sık fonksiyonların çoğunu göz önünde bulundurarak kitle Öğeleri ve Tetikleyicileri oluşturma ve güncelleme Ancak, bazılarının çalışmasına rağmen, hala çalışmak için ekstra kodlamaya ihtiyaç duyuyorlar. –

    +0

    Ayrıca, https://github.com/gescheit/scripts/tree/master/zabbix/ – Blin

    2

    Aslında orada Zabbix versiyonu gibi yeni olduğu için API üzerinde çok az dokümantasyon gibi görünüyor Burada API üzerinde bir Wiki zabbix_sender için bir python bağlanır. http://pypi.python.org/pypi/zbxsend

    +0

    'dan daha iyi görünen https://github.com/lukecyca/pyzabbix de vardır. Lütfen belirli bir sürüme bağlantı vermeyin . Sürümler zaman zaman değişir. Öneriniz için – S0me0ne

    +0

    teşekkürler. sürüm bilgisi bağlantıdan kaldırıldı. – Fatalerr

    İlgili konular