6 Zabbix trapper

Panoramica

Gli item trapper accettano dati in ingresso invece di interrogarli. Questo è utile per qualsiasi dato che si desideri inviare a Zabbix.

Configurazione

Per configurare un item trapper:

  1. Vai su Data collection > Hosts.
  2. Fai clic su Items nella riga dell'host.
  3. Fai clic su Create item.
  4. Inserisci i parametri dell'item nel modulo di configurazione.

Tutti i campi obbligatori sono contrassegnati da un asterisco rosso.

I campi che richiedono informazioni specifiche per gli item trapper sono:

Type Seleziona "Zabbix trapper".
Key Inserisci una chiave che verrà usata per riconoscere l'item quando si inviano dati a Zabbix server.
Type of information Seleziona il tipo di informazioni che corrisponderà al formato dei dati che verranno inviati.
Allowed hosts Elenco di indirizzi IP separati da virgole (facoltativamente in notazione CIDR) o nomi DNS.

Il valore predefinito è il user macro {$TRAPPER.ALLOWED_HOSTS}. Per impostazione predefinita, {$TRAPPER.ALLOWED_HOSTS} è 127.0.0.1,::1. Puoi inserire gli indirizzi direttamente nel campo oppure modificare il valore del macro. Se lasciato vuoto, le connessioni in ingresso saranno rifiutate da tutti gli host. Se specificato, le connessioni in ingresso saranno accettate solo dagli host elencati qui.
Se il supporto IPv6 è abilitato, allora '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' sono trattati allo stesso modo e '::/0' consentirà qualsiasi indirizzo IPv4 o IPv6. '0.0.0.0/0' può essere usato per consentire qualsiasi indirizzo IPv4.

Nota che gli "indirizzi IPv6 compatibili con IPv4" (prefisso 0000::/96) sono supportati ma deprecati da RFC4291.

Esempio: 127.0.0.1, 192.168.1.0/24, 192.168.3.1-255, 192.168.1-10.1-255, ::1,2001:db8::/32, mysqlserver1, zabbix.example.com, {HOST.HOST}

Sono supportati spazi, user macro e host macro {HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.DNS}, {HOST.CONN}.

Prima di inviare i valori, potrebbe essere necessario attendere fino a 60 secondi dopo aver salvato l'item, finché Zabbix server non applica le modifiche da un aggiornamento della cache di configurazione.

Invio dei dati

L'invio di dati al server o al proxy Zabbix è possibile utilizzando l'utilità Zabbix sender oppure il protocol di Zabbix sender. L'invio di dati al server Zabbix è possibile anche utilizzando il metodo API history.push.

Zabbix sender

Per inviare dati a Zabbix server o proxy utilizzando l'utilità Zabbix sender, è possibile eseguire il seguente comando per inviare il "valore di test":

zabbix_sender -z <server IP address> -p 10051 -s "New host" -k trap -o "test value"

Per inviare il "valore di test", vengono utilizzate le seguenti opzioni del comando:

  • -z per specificare l'indirizzo IP di Zabbix server
  • -p per specificare il numero di porta di Zabbix server (10051 per impostazione predefinita)
  • -s per specificare l'host (assicurarsi di utilizzare il nome host tecnico invece di quello visibile)
  • -k per specificare la chiave dell'item configurato nell'item trapper
  • -o per specificare il valore da inviare

Il processo Zabbix trapper non espande le macro utilizzate nella chiave dell'item per verificare l'esistenza della chiave dell'item corrispondente per l'host di destinazione.

Per ulteriori informazioni sulla comunicazione tra Zabbix sender e Zabbix server o proxy, vedere protocollo Zabbix sender.

history.push

Per inviare dati a Zabbix server utilizzando il metodo API history.push, è possibile effettuare la seguente richiesta HTTP POST contenente alcuni valori di test:

curl --request POST \
  --url 'https://example.com/zabbix/api_jsonrpc.php' \
  --header 'Authorization: Bearer 0424bd59b807674191e7d77572075f33' \
  --header 'Content-Type: application/json-rpc' \
  --data '{"jsonrpc":"2.0","method":"history.push","params":[{"itemid":10600,"value":"test value 1"},{"itemid":10601,"value":"test value 2"},{"itemid":99999,"value":"test value 3"}],"id":1}'

Se la richiesta è corretta, la risposta restituita dall'API potrebbe apparire come segue:

{
    "jsonrpc": "2.0",
    "result": {
        "response": "success",
        "data": [
            {
                "itemid": "10600"
            },
            {
                "itemid": "10601",
                "error": "Item is disabled."
            },
            {
                "error": "No permissions to referred object or it does not exist."
            }
        ]
    },
    "id": 1
}

Gli errori nei dati della risposta indicano che l'invio dei dati per specifici item non ha superato la validazione da parte di Zabbix server.
Ciò può accadere per i seguenti motivi:

  • l'utente che invia i dati non dispone del permesso di lettura per l'host dell'item;
  • l'host è disabilitato o in manutenzione senza raccolta dati;
  • l'item non esiste o non è ancora incluso nella cache di configurazione del server;
  • l'item è disabilitato oppure il suo tipo è diverso da Zabbix trapper o HTTP agent (con trapping abilitato);
  • l'IP o il DNS dell'utente non è impostato nell'elenco Allowed hosts dell'item;
  • un altro item ha un valore con un timestamp duplicato a livello di nanosecondi.

L'assenza di errori indica che i valori inviati sono stati accettati per l'elaborazione, che include il preprocessing (se presente), l'elaborazione dei trigger e il salvataggio nel database.
Si noti che anche l'elaborazione di un valore accettato può non riuscire (ad esempio, durante il preprocessing), con conseguente scarto del valore.

Per ulteriori informazioni su come lavorare con Zabbix API, vedere API.

Visualizzazione dei dati

Una volta inviati i dati, puoi andare su Monitoring > Latest data per vedere il risultato:

Se viene inviato un singolo valore numerico, il graph dei dati mostrerà una linea orizzontale a sinistra e a destra del punto temporale del valore.