Come posso configurare zabbix per aggiungere i contenitori in modo dinamico e monitorarli su server che dispongono di agenti?

Mi sto lottando con la scoperta e il monitoraggio di contenitori dinamici (cioè in movimento) su più server fisici e affiliati i risultati con il servizio container, non il server in cui è in esecuzione l'agente che lo gestisce.

Ho 2 server: A e B; Ho un contenitore: C. C può correre su A o B, il mio motore di orchestrazione (Swarm, Kubernetes, Rancher, ecc.) È responsabile per assicurarsi che funziona in alless un posto.

  • Il server Zabbix invia troppe notifiche
  • Strumento di monitoraggio che non media i dati nel tempo
  • Configurare l'agente attivo zabbix
  • Invia i valori NULL nei controlli passivi Zabbix
  • Qual è l'equivalente sendEmail su CentOS 7?
  • Zabbix - logging automatica di un host monitorato?
  • Ho un agente zabbix su A e B, in modo da poter monitorare la CPU, il filesystem, la memory, tutte le cose usuali.

    Voglio monitorare 2 cose:

    1. Disponibilità di C. Non mi import where, ma voglio sapere che sta funzionando.
    2. Controlli di processi all'interno di C. Ho uno script che controlla lo stato.

    Come configurare Zabbix e gli agenti in modo che riporti sia lo stato di C che i processi, indipendentemente da where è in esecuzione?

    Le mie ipotesi sono:

    1. Io tratto C come un ospite, piuttosto che A o B.
    2. Assegno la scoperta di processi all'interno di C e il loro stato come Elementi di C.

    Le mie domande sono:

    1. Come posso impostare C per essere scoperto automaticamente come Host da A o B? Posso utilizzare il mio script o https://github.com/monitoringartist/Zabbix-Docker-Monitoring con filtri per raccogliere solo i contenitori che mi interessa.
    2. Come posso impostare il controllo di process per eseguire sia gli agenti A che B?

    In breve, come posso impostarlo per eseguire l'auto-scoperta del contenitore come host e quindi controllare il process per ciascuno di essi, in modo che essi eseguano su each server con un agente in un gruppo / model specifico, ma affiliati l'output a C anziché il server A o B su cui è in esecuzione l'agente?

    EDIT: grazie al primo risponditore, ottengo l'idea "meta-host". Ma ciò crea nuovi problemi:

    1. Come faccio a creare un meta-host C se devo aggiungere un IP quando lo creo? Potrebbe essere l'IP di A o B!
    2. Come faccio a creare automaticamente C per scoperta, in base alle regole?
    3. Dal momento che Zabbix raggiunge ciascuno di A e B per dire "eseguire questi test", come può sapere se chiedere a A di eseguirli o B per eseguirli?

    Questo sarebbe molto più facile se potessi solo dire, "eseguire scoperta su tutti gli host del gruppo" Docker ", che avrebbe scoperto tutti i contenitori C (e D, ecc.) E aggiungerli come host. E poi anche dire: "eseguire processi di controllo di script su tutti i contenitori che sono stati scoperti automaticamente", forse sapendo quale agente ha attualmente accesso al contenitore (ovvero in cui è in esecuzione ora).

    Sto cominciando a provare sempre più il fatto che Zabbix è ottimo per il monitoraggio di applicazioni legate a un determinato server, tanto less al monitoraggio delle applicazioni che si muovono? Oppure lo capisco?

  • Zabbix vfs.fs.size fornisce un risultato errato quando il filesystem non è montato
  • Zabbix - Alcuni degli elementi monitorati non si rifugiano
  • Che cosa chiave per monitorare quando cerca gli interrupt di CPU in Zabbix 1.8.2
  • Errore quando si tenta di aggiungere l'elemento calcolato di Zabbix
  • Zabbix: monitor di servizio MySQL - voce non valida al riavvio di zabbix-agent
  • Programma o script semplice per controllare il tempo di caricamento della pagina web
  • One Solution collect form web for “Come posso configurare zabbix per aggiungere i contenitori in modo dinamico e monitorarli su server che dispongono di agenti?”

    Disclaimer: sono l'autore di https://github.com/monitoringartist/Zabbix-Docker-Monitoring

    Impostare Zabbix-Docker-Monitoring standard su A e B.

    Modifica model Docker – filter scoperto il contenitore come necessario + rimuovere tutti i prototipi trigger.

    Crea nuovi elementi calcolati che aggregano ciascun elemento C collegato da A e B in nuovi elementi calcolati C (puoi creare C "metahost" nella Zabbix) – impostare nuovi trigger in cima a queste nuove metriche C.

    Aggiornamento: Utilizza gli elementi calcolati per l'aggregazione – ad esempio sum(docker.up[cid]) aggregata sum(docker.up[cid]) da A e B – quindi la condizione di trigger per "Container cid non è in esecuzione" sarà sum(docker.up[cid])<1 . Pls leggere Zabbix doc per una syntax corretta.

    LLD scopre where è il tuo contenitore in atm e aggiornerà gli elementi / trigger. Se si desidera eliminare eventuali avvisi falsi, non dimenticare di sintonizzare i tempi di LLD / trigger.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.