简言
上篇文章结合了Percona监控了Linux下的Mysql效果非常好,监控项非常多。这里我们也需要记录一片监控Window下Mysql的文章。百度搜索了一下发现大部分监控也都是使用脚本进行监控的,用的模板也是zabbix自带的,并没有说结合Percona的方式的。这里咱们使用上述方法来实践一下。
一、编写VBS脚本
1.我们需要在zabbix下面建立一个文件夹用来存放脚本
第一个脚本mysql-ping.vbs
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = getCommandOutput("C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin -u root -p123456 ping")
If Instr(str1,"alive") > 0 Then
WScript.Echo 1
Else
WScript.Echo 0
End If
Function getCommandOutput(theCommand)
Dim objShell, objCmdExec
Set objShell = CreateObject("WScript.Shell")
Set objCmdExec = objshell.exec(thecommand)
getCommandOutput = objCmdExec.StdOut.ReadAll
end Function
第二个脚本mysql-status.vbs
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = getCommandOutput("C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin -u root -p123456 extended-status")
Arg = objArgs(0)
str2 = Split(str1,"|")
#注意mysql的路径和账户密码自己进行修改其余不需要动
For i = LBound(str2) to UBound(str2)
If Trim(str2(i)) = Arg Then
WScript.Echo TRIM(str2(i+1))
Exit For
End If
next
Function getCommandOutput(theCommand)
Dim objShell, objCmdExec
Set objShell = CreateObject("WScript.Shell")
Set objCmdExec = objshell.exec(thecommand)
getCommandOutput = objCmdExec.StdOut.ReadAll
end Function
二、修改配置文件
1.将此参数修改为1
UnsafeUserParameters=1
2.在后面添加参数内容
UserParameter=mysql.status[*], cscript /nologo C:\zabbix\scripts\mysql-ping.vbs $1
UserParameter=mysql.ping, cscript /nologo C:\zabbix\scripts\mysql-status.vbs
#注意后面的脚本路径位置需要修改
三、重启并测试
1.这里我们重新启动agentd客户端
C:\zabbix\zabbix_agentd.exe -s -c C:\zabbix\zabbix_agentd.win.conf
#启动zabbix服务
C:\zabbix\zabbix_agentd.exe -x -c C:\zabbix\zabbix_agentd.win.conf
#关闭zabbix服务
2.在zabbix界面添加自带模板Template MySQL
3.进入zabbix服务端测试
/usr/local/zabbix-server/bin/zabbix_get -s 192.168.43.66 -k mysql.ping
4.监控的内容展示