Zabbix agent su Microsoft Windows

Configurazione dell'agent

Entrambe le generazioni degli agent Zabbix vengono eseguite come servizio Windows. Per Zabbix agent 2, sostituire agentd con agent2 nelle istruzioni riportate di seguito.

È possibile eseguire una singola istanza dell'agent Zabbix o più istanze dell'agent su un host Microsoft Windows. Una singola istanza può utilizzare:

  • il file di configurazione predefinito, situato nella stessa directory del binario dell'agent;
  • un file di configurazione specificato nella riga di comando.

In caso di più istanze, ogni istanza dell'agent deve avere il proprio file di configurazione (una delle istanze può utilizzare il file di configurazione predefinito).

Un file di configurazione di esempio è disponibile nell'archivio dei sorgenti di Zabbix come:

  • conf/zabbix_agentd.conf per Zabbix agent;
  • conf/zabbix_agent2.conf per Zabbix agent2.

Se si desidera installare Zabbix agent/agent 2 per Windows come servizio da un archivio senza specificare esplicitamente il file di configurazione, prima di installare l'agent:

  • conf/zabbix_agentd.conf deve essere copiato manualmente nella directory in cui verrà installato zabbix_agentd.exe;
  • conf/zabbix_agent2.conf e la directory conf/zabbix_agent2.d devono essere copiati manualmente nella directory in cui verrà installato zabbix_agent2.exe.

Per informazioni dettagliate sulla configurazione dell'agent Zabbix per Windows, consultare le opzioni del file di configurazione dell'agent Zabbix o del file di configurazione dell'agent 2 Zabbix.

Parametro Hostname

Per eseguire i controlli attivi su un host, l'agent Zabbix deve avere definito il nome host. Inoltre, il valore del nome host impostato sul lato agent deve corrispondere esattamente al Nome host configurato per l'host nel frontend.

Il valore del nome host sul lato agent può essere definito tramite il parametro Hostname o HostnameItem nel file di configurazione dell'agent; se nessuno di questi parametri è specificato, vengono utilizzati i valori predefiniti.

Il valore predefinito del parametro HostnameItem è il valore restituito dalla chiave dell'agent system.hostname. In Windows, questa chiave restituisce il risultato della funzione gethostname(), che interroga i provider dello spazio dei nomi per determinare il nome host locale. Se nessun provider dello spazio dei nomi risponde, viene restituito il nome NetBIOS.

Il valore predefinito di Hostname è il valore restituito dal parametro HostnameItem. Pertanto, se entrambi i parametri non sono specificati, il nome host effettivo sarà il nome NetBIOS dell'host; l'agent Zabbix utilizzerà il nome host NetBIOS per recuperare l'elenco dei controlli attivi dal server Zabbix e inviargli i risultati.

La chiave system.hostname supporta due parametri opzionali: type e transform.

Type determina il tipo di nome che l'item deve restituire:

  • netbios (predefinito): restituisce il nome host NetBIOS, limitato a 15 caratteri e composto esclusivamente da lettere MAIUSCOLE;
  • host: fa distinzione tra maiuscole e minuscole e restituisce il nome host Windows completo e reale (senza dominio);
  • shorthost: restituisce la parte del nome host precedente al primo punto. Restituisce l'intera stringa se il nome non contiene punti.
  • fqdn: restituisce il Fully Qualified Domain Name (senza il punto finale).

Transform consente di specificare una regola di trasformazione aggiuntiva per il nome host:

  • none (predefinito): utilizza la combinazione originale di maiuscole e minuscole;
  • lower: converte il testo in minuscolo.

Per semplificare la configurazione del file zabbix_agentd.conf e renderla uniforme, è possibile utilizzare diversi approcci:

  1. Lasciare non definiti i parametri Hostname o HostnameItem; l'agent Zabbix utilizzerà il nome host NetBIOS come nome host.
  2. Lasciare non definito il parametro Hostname e definire HostnameItem come segue:
    • HostnameItem=system.hostname[host]: l'agent Zabbix utilizzerà il nome host Windows completo e reale (con distinzione tra maiuscole e minuscole) come nome host.
    • HostnameItem=system.hostname[shorthost,lower]: l'agent Zabbix utilizzerà solo la parte del nome host precedente al primo punto, convertita in minuscolo.
    • HostnameItem=system.hostname[fqdn]: l'agent Zabbix utilizzerà il Fully Qualified Domain Name come nome host.

Il nome host viene utilizzato anche come parte del nome del servizio Windows, impiegato per installare, avviare, arrestare e disinstallare il servizio Windows. Ad esempio, se il file di configurazione dell'agent Zabbix specifica Hostname=Windows_db_server, l'agent verrà installato come servizio Windows Zabbix Agent [Windows_db_server]. Pertanto, per avere un nome di servizio Windows diverso per ogni istanza dell'agent Zabbix, ogni istanza deve utilizzare un nome host diverso.

Installazione di agent come servizio Windows

Prima di installare l'agent, copiare manualmente conf/zabbix_agentd.conf nella directory in cui verrà installato zabbix_agentd.exe.

Per installare una singola istanza di Zabbix agent con il file di configurazione predefinito:

zabbix_agentd.exe --install

Su un sistema a 64 bit, per far funzionare correttamente tutti i controlli relativi all'esecuzione di processi a 64 bit è necessaria una versione a 64 bit di Zabbix agent.

Se si desidera usare un file di configurazione diverso da quello predefinito, è necessario usare il seguente comando per l'installazione del servizio:

zabbix_agentd.exe --config <your_configuration_file> --install

È necessario specificare il percorso completo del file di configurazione.

È possibile installare più istanze di Zabbix agent come servizi in questo modo:

  zabbix_agentd.exe --config <configuration_file_for_instance_1> --install --multiple-agents
  zabbix_agentd.exe --config <configuration_file_for_instance_2> --install --multiple-agents
  ...
  zabbix_agentd.exe --config <configuration_file_for_instance_N> --install --multiple-agents

Il servizio installato dovrebbe ora essere visibile nel Pannello di controllo.

Avvio di agent

Per avviare il servizio agent, puoi usare il Pannello di controllo oppure farlo da riga di comando.

Per avviare una singola istanza di Zabbix agent con il file di configurazione predefinito:

 zabbix_agentd.exe --start

Per avviare una singola istanza di Zabbix agent con un altro file di configurazione:

 zabbix_agentd.exe --config <your_configuration_file> --start

Per avviare una delle più istanze di Zabbix agent:

 zabbix_agentd.exe --config <configuration_file_for_this_instance> --start --multiple-agents

Arresto dell'agent

Per arrestare il servizio dell'agent, è possibile usare il Pannello di controllo oppure eseguire l'operazione da riga di comando.

Per arrestare una singola istanza di Zabbix agent avviata con il file di configurazione predefinito:

 zabbix_agentd.exe --stop

Per arrestare una singola istanza di Zabbix agent avviata con un altro file di configurazione:

 zabbix_agentd.exe --config <your_configuration_file> --stop

Per arrestare una delle più istanze di Zabbix agent:

 zabbix_agentd.exe --config <configuration_file_for_this_instance> --stop --multiple-agents

Disinstallazione del servizio Windows di agent

Per disinstallare una singola istanza di Zabbix agent usando il file di configurazione predefinito:

   zabbix_agentd.exe --uninstall

Per disinstallare una singola istanza di Zabbix agent usando un file di configurazione non predefinito:

   zabbix_agentd.exe --config <your_configuration_file> --uninstall

Per disinstallare più istanze di Zabbix agent dai servizi Windows:

  zabbix_agentd.exe --config <configuration_file_for_instance_1> --uninstall --multiple-agents
  zabbix_agentd.exe --config <configuration_file_for_instance_2> --uninstall --multiple-agents
  ...
  zabbix_agentd.exe --config <configuration_file_for_instance_N> --uninstall --multiple-agents

Limitazioni

L'agent Zabbix per Windows non supporta configurazioni Windows non standard in cui le CPU sono distribuite in modo non uniforme tra i nodi NUMA. Se le CPU logiche sono distribuite in modo non uniforme, le metriche delle prestazioni della CPU potrebbero non essere disponibili per alcune CPU. Ad esempio, se ci sono 72 CPU logiche con 2 nodi NUMA, entrambi i nodi devono avere 36 CPU ciascuno.