Beans are usually used to monitor the state of the system with Nagios. The usual company uses Veeam to manage backup and restore of files, and the results of backups are usually sent to beans via email. On a whim today, I want to show the status of this backup in Nagios's monitoring interface.
Because Veeam itself provides modules for PowerShell, beans can invoke custom PowerShell scripts through the nsclient++ client for monitoring purposes.
1) Custom PowerShell script Veeam_backup.ps1, the script is simple and returns different exit values based on different results.
The definition in Nagios is
0-ok
1-warning
2-critial
3-unknow
Param ( # Param1 help description [string] $name) add-pssnapin -name veeampssnapin -erroraction Silentlycontinuedisconnect-vbrserverconnect-vbrserver -server drvbr01 -user omnicom\ yuan.li -password goat201510$job = get-vbrjob -name $name $name = "'" + $name + "'" if ($job -eq $null) {write-host "unknown! no such a job: $name. " EXIT 3} $status = $job. Getlastresult () if ($ ($job. Findlastsession ()). state -eq "Working") {write-host "ok - job: $name is currently in progress. " exit 0}if ($status -eq "Failed") {write-host "critical! errors were encountered during the backup process of the following job: $name ." Exit 2}if ($status -eq "Success") { $lastrun = $job .scheduleoptions.latestrunlocal write-host "ok - job: $name was completed succesfully, lastrun finished at $lastrun exit 0}if ($status - ne "Success") { $statusWrite-host "warning! job $name didn ' t fully succeed. " EXIT 1}
Execute Look, Success!
PS c:\windows\system32> C:\veeam_backup.ps1-name "Finance servers-backup" ok-job: ' Finance servers-backup ' was Co mpleted succesfully, Lastrun finished at 11/12/2017 23:30:00
2) The second step is to modify the configuration file of our nsclient++ Nsclient.ini this place make sure the format is correct or Nagios does not recognize external commands that we write ourselves.
Nisclient.ini configuration file key configuration is as follows
[/settings/nrpe/server] verify mode = noneinsecure = trueextended response = 0allow arguments = trueallow nasty characters = true[/modules] CheckHelpers = 1CheckNSCP = 1CheckDisk = 1CheckSystem = 1nsclientserver = 1checkeventlog = 1nscaclient = 1nrpeserver = enabledcheckexternalscripts = enabled[/settings/nrpe/server] verify mode = Noneinsecure = trueport = 9999extended response = 0allow arguments = trueallow nasty characters = true[/settings/external scripts] allow arguments = true[/settings/external scripts/scripts]financejob = cmd /c echo c:\\veeam_backup.ps1 $ARG 1$; exit ($lastexitcode) | powershell.exe - command -
After the modification is complete, after restarting the NSCP service, log in to the Nagios server in SSH to test whether the command recognizes
[Email protected] libexec]#/check_nrpe-h drvbr01-c financejob-a "Finance servers-backup" ok-job: ' Finance Servers -Backup ' was completed succesfully, Lastrun finished at 11/12/2017 23:30:00
3) Configure Nagios's command.cfg, Host.cfg and Service.cfg
Define command { command_name check_veeamjob command_ line $USER 1$/check_nrpe -h $HOSTADDRESS $ -p 5666 -c $ARG 1$ -a $ARG 2$}define host{ use windows-server ; host_name DRVBR01 ; alias drvbr01 ; address 10.9.1.74 ; parents syd3750colo } define service{ use generic-service host_name DRVBR01 servicegroups windows-services service_ description veeam replication job - finance check_command check_veeamjob!financejob! ' Finance servers - replication ' }
4) Testing
Restart the Nagios service and then see the results on the page.
650) this.width=650; "src=" Https://s3.51cto.com/oss/201711/13/881f6f4d6ea5332ab370c3aee93e0ab2.png "style=" float: none; "title=" 2.PNG "alt=" 881f6f4d6ea5332ab370c3aee93e0ab2.png "/>
Results consistent with Veeam management interface
650) this.width=650; "src=" Https://s2.51cto.com/oss/201711/13/69a3a1050c95df7e7bb33fc861a6b9b0.png "style=" float: none; "title=" 3.PNG "alt=" 69a3a1050c95df7e7bb33fc861a6b9b0.png "/>
This article is from the "Mapo Tofu" blog, please be sure to keep this source http://beanxyz.blog.51cto.com/5570417/1981136
Powershell + Nagios monitors VEEAM backup status