设为首页 收藏本站
查看: 1308|回复: 0

Powershell + Nagios 监控 VEEAM 备份状态

[复制链接]

尚未签到

发表于 2017-11-13 13:37:21 | 显示全部楼层 |阅读模式
豆子平常一般习惯用Nagios监控系统的状态。平常公司使用VEEAM来管理文件的备份和还原,备份的结果一般通过Email发送给豆子。今天心血来潮,想把这个备份的状态在Nagios的监控界面上也展现出来。

因为VEEAM本身提供了PowerShell的模块,因此豆子可以通过NSclient++客户端来调用自定义的PowerShell脚本,从而实现监控的目的。

1) 自定义的 Powershell脚本  veeam_backup.ps1, 脚本很简单,根据不同的结果返回不同的exit的值。

Nagios里面的定义是
  • 0- OK
  • 1- Warning
  • 2- Critial
  • 3- Unknow


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Param
(
    # Param1 help description
    [string]
    $name
)
Add-PSSnapin -Name VeeamPSSnapIn -ErrorAction SilentlyContinue
Disconnect-vbrserver
Connect-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")
{
    $status
Write-Host "WARNING! Job $name didn't fully succeed."
exit 1
}




执行看看,成功!
1
2
PS C:\Windows\system32> C:\veeam_backup.ps1 -name "Finance Servers - Backup"
OK - Job: 'Finance Servers - Backup' was completed succesfully, Lastrun finished at 11/12/2017 23:30:00




2) 第二步需要修改我们的Nsclient++的配置文件 nsclient.ini 这个地方一定要确保格式正确 不然nagios无法识别我们自己写的外部命令。

nisclient.ini 配置文件关键配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[/settings/NRPE/server]
  
verify mode = none
insecure = true
extended response = 0
allow arguments = true
allow nasty characters = true
[/modules]
  
CheckHelpers = 1
CheckNSCP = 1
CheckDisk = 1
CheckSystem = 1
NSClientServer = 1
CheckEventLog = 1
NSCAClient = 1
NRPEServer = enabled
CheckExternalScripts = enabled
[/settings/NRPE/server]
  
verify mode = none
insecure = true
port = 9999
extended response = 0
allow arguments = true
allow nasty characters = true
[/settings/external scripts]
  
allow arguments = true
[/settings/external scripts/scripts]
financejob = cmd /c echo c:\\veeam_backup.ps1 $ARG1$; exit($lastexitcode) | powershell.exe -command -




修改完毕,重启nscp服务之后,在SSH登录Nagios服务器,测试该命令是否能够识别
1
2
[iyunv@sydnagios 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) 配置Nagios的command.cfg, host.cfg和service.cfg


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
define command {
   command_name  check_veeamjob
   command_line  $USER1$/check_nrpe -H $HOSTADDRESS$ -p 5666 -c $ARG1$ -a $ARG2$
}

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)测试

重启Nagios服务,然后在页面即可看见结果。

881f6f4d6ea5332ab370c3aee93e0ab2.png

结果和VEEAM 管理界面一致

69a3a1050c95df7e7bb33fc861a6b9b0.png



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407005-1-1.html 上篇帖子: 监控之--Nagios如何监控本地主机及本地服务 下篇帖子: nagios接入-灵犀云告警配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表