zabbix 监控mysql

1. 在MySQL里创建监控的账号
GRANT PROCESS,REPLICATION CLIENT ON *.* TO mysql_monitor@'localhost' IDENTIFIED BY 'Nt8eWv';

# process通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。
# replication client拥有此权限可以查询master server、slave server状态。
2. 在MySQL服务器的 C:\Infinit-Server\zabbix\script 目录下新建三个脚本文件

mysql_ping.vbs

Set objFS =CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = getCommandOutput("C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin.exe -umysql_monitor -pNt8eWv 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

<br>

mysql_status.vbs

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = getCommandOutput("C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin.exe -umysql_monitor -pNt8eWv extended-status")
Arg = objArgs(0)

str2 = Split(str1,"|")
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
' Wscript.Echo getCommandOutput       //这一句可以打印出所有内容,执行 mysql_status.vbs $1 即可
end Function

<br>

mysql_version.vbs

Set objFS = CreateObject("Scripting.FileSystemObject")
Set objArgs = WScript.Arguments
str1 = getCommandOutput("C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe -V")

WScript.Echo str1

Function getCommandOutput(theCommand)
Dim objShell, objCmdExec
Set objShell = CreateObject("WScript.Shell")
Set objCmdExec = objshell.exec(thecommand)
getCommandOutput = objCmdExec.StdOut.ReadAll
end Function
3. 在MySQL服务器上修改windows上的zabbix_agentd.win.conf文件

在zabbix_agentd.win.conf末尾处添加

UnsafeUserParameters=1
UserParameter=mysql.status[*], cscript/nologo C:\Infinit-Server\zabbix\script\mysql_status.vbs $1 
UserParameter=mysql.ping, cscript /nologo C:\Infinit-Server\zabbix\script\mysql_ping.vbs
UserParameter=mysql.version, cscript /nologo  C:\Infinit-Server\zabbix\script\mysql_version.vbs
4. 在zabbix主机测试并添加模板

测试是否能从脚本获取到数据

/usr/bin/zabbix_get -s 192.168.10.61 -k "mysql.ping"
/usr/bin/zabbix_get -s 192.168.10.61 -k "mysql.version"
/usr/bin/zabbix_get -s 192.168.10.61 -k "mysql.status[Bytes_received]"

重启zabbix_agentd,并给主机添加Template App MySQL模版,查看items状态

监控项目:

Com_update:     mysql执行的更新个数
Com_select:     mysql执行的查询个数
Com_insert:     mysql执行插入的个数
Com_delete:     执行删除的个数
Com_rollback:   执行回滚的操作个数
Bytes_received:  接受的字节数
Bytes_sent:     发送的字节数
Slow_queries:   慢查询语句的个数
Com_commit:     确认的事物个数
Com_begin:      开始的事物个数
Uptime:         服务器已启动的秒数
Questions:      客户端发送到服务器的语句个数

<br>

转载于:https://my.oschina.net/gammatimes/blog/1594393

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值