romainsi / zabbix-VB-R-SQL

Monitore VB&R with SQL query
33 stars 15 forks source link

VEEAM-B&R-SQL

This template use SQL Query to discover VEEAM Backup jobs, Veeam BackupCopy, Veeam BackupSync, Veeam Tape Job, Veeam FileTape, Veeam Agent, Veeam Replication, All Repositories. Powershell get all informations via SQL and send it to zabbix server/proxy with json.

Items

Triggers

Discovery Jobs

Items discovery Veeam Job, Replication, FileTape, Tape, Sync, Copy, Agent

Items discovery Veeam Repository

Triggers discovery Veeam jobs Backup, Copy, Tape, BackupSync

Triggers discovery Veeam Repository

Setup

  1. Install the Zabbix agent 2 on your host.

  2. Connect to the veeam sql server, adjust protocols for VEEAMSQL in "Sql Server Configuration Manager" for permit to connect with TCP/IP

  3. With SQL Server Management Studio : Create User/Pass with reader rights , permit to connect with local user in sql settings and specify the default database. With sqlcmd.exe (Change password "CHANGEME" with something more secure):

    USE [VeeamBackup]
    CREATE LOGIN [zabbixveeam] WITH PASSWORD = N'CHANGEME', CHECK_POLICY = OFF, CHECK_EXPIRATION = OFF;
    CREATE USER [zabbixveeam] FOR LOGIN [zabbixveeam];
    EXEC sp_addrolemember 'db_datareader', 'zabbixveeam';
    GO
  4. In script, ajust variables line 73 to 78 to match your configuration

  5. Copy zabbix_vbr_job.ps1 in the directory : C:\Program Files\Zabbix Agent 2\scripts\ (create folder if not exist)

  6. Add UserParameter=veeam.info[*],powershell -NoProfile -ExecutionPolicy Bypass -File "C:\Program Files\Zabbix Agent 2\scripts\zabbix_vbr_job.ps1" "$1" in zabbix_agent2.conf

  7. Import Template_Veeam_Backup_And_Replication.yaml file into Zabbix.

  8. Associate Template "VEEAM Backup and Replication" to the host.
    NOTE: When importing the new template version on an existing installation please check all "Delete missing", except "Template linkage", to make sure the old items are deleted

Ajust Zabbix Agent & Server/Proxy timeout for userparameter, you can use this powershell command to determine the execution time :

(Measure-Command -Expression{ & "C:\Program Files\Zabbix Agent 2\scripts\zabbix_vbr_job.ps1" "StartJobs"}).TotalSeconds