Home Directory Plugins Backup and Recovery Check Veeam Backup Jobs

Search Exchange

Search All Sites

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

Directory Tree

Check Veeam Backup Jobs

Current Version
1
Last Release Date
2014-06-19
Compatible With
  • Nagios 3.x
  • Nagios 4.x
License
GPL
Hits
29862
Files:
FileDescription
check_veeam.vbscheck_veeam.vbs
Nagios CSP

Meet The New Nagios Core Services Platform

Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.

Monitoring Made Magically Better

  • Nagios Core on Overdrive
  • Powerful Monitoring Dashboards
  • Time-Saving Configuration Wizards
  • Open Source Powered Monitoring On Steroids
  • And So Much More!
This check run a query on Veeam DB and extract only the failed job (result=2)

If you want to add other result to this notification, pay attention on the result column value set.
2 = Failed
1 = Warning
0 = Success
-1 = Running
Reviews (1)
byDenise, March 23, 2016
0 of 1 people found this review helpful
Table Checked doesn't exist anymore (Reportview)
Owner's reply

Hi Denise, have checked it right now and this view exists in the Veeam Database.

if you don't find it, you could recreate executing this script:
USE [VeeamBackup]
GO

/****** Object: View [dbo].[vwReportJobsView] Script Date: 14/07/2016 16:05:31 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


ALTER VIEW [dbo].[vwReportJobsView]
AS
SELECT
jobs.[id],
jobs.[type],
jobs.[name],
jobs.[target_type],
jobs.[repository_id],
repo.name AS repo_name,
fpools.name AS full_mediapool_name,
ipools.name AS incremental_mediapool_name,
obj_in_job_count = (CASE WHEN jobs.type = 24 THEN
(SELECT COUNT(*) FROM
(SELECT options FROM [Tape.jobs] WHERE id = jobs.id) AS XmlTable(o) CROSS APPLY o.nodes('/TapeJobOptionsBase/Selection/BackupSelectionBase') XmlTableFunction(c))
WHEN jobs.type = 28 THEN
CASE WHEN (SELECT count(id) FROM LinkedJobs WHERE job_id = jobs.id) 0 THEN
(SELECT count(id) FROM LinkedJobs WHERE job_id = jobs.id)
ELSE
(SELECT count(id) FROM LinkedBackupRepositories WHERE job_id = jobs.id)
END
when jobs.type IN (3, 51) then
(select sum(t) from
(select count(id) t from LinkedJobs where job_id = jobs.id
union all
select count(id) from dbo.ObjectsInJobs where (job_id = jobs.id) and (type = 0)) BCJob)
ELSE
(SELECT COUNT(id) AS Expr1 FROM dbo.ObjectsInJobs WHERE (job_id = jobs.id) AND (type = 0)) END),
jobs.[job_source_type],
[sessions].[state],
[sessions].[progress],
[sessions].[result],
[sessions].[operation],
[sessions].[id] as last_session_id,
[next_run] = jobs.schedule.query('/ScheduleOptions/NextRun').value('.','nvarchar(300)'),
[schedule_cont] = jobs.schedule.query('/ScheduleOptions/OptionsContinuous/Enabled').value('.','bit'),
[after_job_schedule] = jobs.schedule.query('/ScheduleOptions/OptionsScheduleAfterJob/IsEnabled').value('.','bit'),
jobs.[target_dir],
jobs.[latest_result],
jobs.[description],
jobs.[schedule_enabled],
[run_manually] = jobs.options.query('/JobOptionsRoot/RunManually').value('.','bit'),
[link_with_jobs] = jobs.options.query('DRJobOptions/LinkWithJobs').value('.','bit'),
target_host_name = CASE
WHEN jobs.[options].query('/JobOptionsRoot/ClusterName').value('.','nvarchar(300)') = '' THEN (SELECT [dbo].[Hosts].[name] FROM [dbo].[Hosts] WHERE [dbo].[Hosts].[id] = jobs.[target_host_id])
ELSE jobs.[options].query('/JobOptionsRoot/ClusterName').value('.','nvarchar(300)')
END,
jobs.[vcb_host_id],
usn = dbo.MaxValue3(
ISNULL ((SELECT TOP (1) ref_jobs.usn FROM BJobs ref_jobs WHERE ref_jobs.id = jobs.parent_schedule_id), 0)
, ISNULL ((SELECT TOP (1) tape_jobs.usn FROM [Tape.jobs] tape_jobs WHERE tape_jobs.id = jobs.id), 0)
, CASE WHEN (ISNULL([sessions].usn, 0) >= ISNULL(jobs.usn, 0)) AND (ISNULL([sessions].usn, 0) >= ISNULL(tapes.usn, 0))
THEN ISNULL([sessions].usn, 0) WHEN (ISNULL(jobs.usn, 0) >= ISNULL([sessions].usn, 0)) AND (ISNULL(jobs.usn, 0) >= ISNULL(tapes.usn, 0)) THEN ISNULL(jobs.usn, 0) ELSE ISNULL(tapes.usn, 0) END),
(SELECT TOP (1) name
FROM dbo.VirtualLabs
WHERE (id = jobs.target_host_id)) AS virtual_lab_name,
(SELECT TOP (1) dbo.Folders.name FROM dbo.ObjectsInJobs LEFT JOIN dbo.Folders ON dbo.ObjectsInJobs.folder_id = dbo.Folders.id
WHERE (dbo.ObjectsInJobs.job_id = jobs.id)) AS app_group_name, dbo.LinkedJobsString(jobs.id) AS linked_job,
perfomance_rate = (SELECT TOP(1) [dbo].[Backup.Model.BackupJobSessions].[avg_speed]
FROM [dbo].[Backup.Model.BackupJobSessions]
WHERE [dbo].[Backup.Model.BackupJobSessions].[id] = [sessions].[id]),
jobs.[platform],
jobs.[parent_schedule_id],
(select top(1) name as bjname from BJobs bj where bj.id = jobs.parent_schedule_id) as schelule_parent_job_name,
jobs.[schedule],
tapes.options.query('/TapeJobOptionsBase/FullSchedule/NextRun' ).value('.', 'nvarchar(300)') AS full_next_run,
tapes.options.query('/TapeJobOptionsBase/IncrementalSchedule/NextRun' ).value('.', 'nvarchar(300)') AS incremental_next_run
FROM [dbo].[BJobs] jobs
LEFT JOIN dbo.[Tape.jobs] AS tapes ON jobs.id = tapes.id
LEFT JOIN [dbo].[Backup.Model.JobSessions] [sessions] ON [sessions].[job_id] = jobs.[id]
AND [creation_time] = (SELECT MAX([creation_time]) FROM [dbo].[Backup.Model.JobSessions] WHERE [job_id] = jobs.id)
LEFT JOIN [dbo].[BackupRepositories] AS repo ON jobs.[repository_id] = repo.id
LEFT JOIN [dbo].[Tape.jobs] AS tjobs ON jobs.id = tjobs.id
LEFT JOIN [dbo].[Tape.media_pools] fpools ON tjobs.full_mediapool_id = fpools.id
LEFT JOIN [dbo].[Tape.media_pools] ipools ON tjobs.incremental_mediapool_id = ipools.id
WHERE jobs.[type] in (0, 1, 2, 3, 8, 24, 28, 51,202)


GO


Regards,
Simone