Board logo

标题: Zabbix调用Python3脚本监控Linux下的MySQL [打印本页]

作者: admin    时间: 2020-5-10 14:52     标题: Zabbix调用Python3脚本监控Linux下的MySQL

笺注:这是在 LNMP一键安装包(lnmpa_CentOS6.9) 的基础上进行的。 被监控主机的数据库管理员root@localhost使用密码验证登录MySQL: mysql -u"root" -p"888" 图片1.png 查看当前登录的数据库用户: mysql> Select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec) mysql> 被监控主机查看自己的数据库版本: mysql> Select version(); +------------+ | version() | +------------+ | 5.7.11-log | +------------+ 1 row in set (0.00 sec) 显示所有的库: mysql> Show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.43 sec) mysql> 注释:以上四个库是MySQL5.7默认就有的。 再授权数据库用户zhuohua@localhost(密码886),只能本地登录,对库mysql有完全控制的权限: mysql> grant all on mysql.* to zhuohua@localhost identified by '886'; Query OK, 0 rows affected, 1 warning (0.10 sec) mysql> flush privileges; Query OK, 0 rows affected (0.02 sec) mysql> 查看本地数据库用户zhuohua@localhost的权限: mysql> Show grants for zhuohua@localhost; +------------------------------------------------------------+ | Grants for zhuohua@localhost | +------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'zhuohua'@'localhost' | | GRANT ALL PRIVILEGES ON `mysql`.* TO 'zhuohua'@'localhost' | +------------------------------------------------------------+ 2 rows in set (0.00 sec) mysql> 查看所有数据库用户及其主机信息: select user,host from mysql.user; 图片2.png 查看MySQL的最大连接数: show variables like '%max_connections%'; 图片3.png 查看MySQL当前打开的连接数: show status like 'threads_connected'; 图片4.png 查看MySQL当前处于激活状态的连接数: show status like 'threads_running'; 图片5.png 查看单个库(mysql)的大小:(以MB为单位) mysql> select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from information_schema.TABLES where table_schema = 'mysql'; +--------+ | data | +--------+ | 2.21MB | +--------+ 1 row in set (0.50 sec) mysql> 查看单个库(mysql)的大小:(以字节为单位) mysql> select concat(sum(DATA_LENGTH)) as data from information_schema.TABLES where table_schema = 'mysql'; +---------+ | data | +---------+ | 2312172 | +---------+ 1 row in set (0.01 sec) mysql> 查看当前数据库的用户数量:(库mysql的表user里面包含了数据库中所有用户的信息) mysql> select count(*) from mysql.user; +----------+ | count(*) | +----------+ | 3 | +----------+ 1 row in set (0.00 sec) mysql> ############ 被监控主机上安装第三方库(PyMySQL),可参考:Python3脚本管理Linux下的MySQL 查看PyMySQL的版本: [root@zabbix_client ~]# pip3 freeze PyMySQL==0.10.1 [root@zabbix_client ~]# 注释:PyMySQL可以管理MySQL,也可以管理MariaDB ###### 在被监控主机上创建Python3脚本:(输出MySQL的最大连接数) [root@zabbix_client ~]# cat /usr/local/xx.py #coding=utf-8 import pymysql def db_connect(): #打开数据库连接;本地连接(localhost)、用户名、密码、其中一个库(mysql)的名称、端口号、字符集: db=pymysql.connect("localhost", "zhuohua", "886", "mysql",3306,charset="utf8") cursor=db.cursor() cursor.execute("show variables like '%max_connections%'") #执行SQL语句 Results=cursor.fetchone() #print (Results) # ('max_connections', '500') #print (type(Results)) # #print (Results[1]) # 500 #print (type(Results[1])) # Key_1 = int(Results[1]) print (Key_1) #print (type(Key_1)) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 设置脚本权限: [root@zabbix_client ~]# chmod a+x /usr/local/xx.py [root@zabbix_client ~]# 脚本运行的结果: [root@zabbix_client ~]# python3 /usr/local/xx.py 500 [root@zabbix_client ~]# ###### 在被监控主机上创建Python3脚本:(输出MySQL当前处于激活状态的连接数) [root@zabbix_client ~]# cat /usr/local/yy.py #coding=utf-8 import pymysql def db_connect(): db=pymysql.connect("localhost", "zhuohua", "886", "mysql",3306,charset="utf8") cursor=db.cursor() cursor.execute("show status like 'threads_running'") #执行SQL语句 Results=cursor.fetchone() #print (Results) # ('Threads_running', '1') #print (type(Results)) # #print (Results[1]) # 1 #print (type(Results[1])) # Key_1 = int(Results[1]) print (Key_1) #print (type(Key_1)) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 设置脚本权限: [root@zabbix_client ~]# chmod a+x /usr/local/yy.py [root@zabbix_client ~]# 脚本运行的结果: [root@zabbix_client ~]# python3 /usr/local/yy.py 1 [root@zabbix_client ~]# ###### 在被监控主机上创建Python3脚本:(输出当前数据库的用户数量) [root@zabbix_client ~]# cat /usr/local/zz.py #coding=utf-8 import pymysql def db_connect(): db=pymysql.connect("localhost", "zhuohua", "886", "mysql",3306,charset="utf8") cursor=db.cursor() SQL_1 = "select count(*) from user;" #SQL语句 cursor.execute(SQL_1) #执行SQL语句 Results=cursor.fetchone() #print (Results) # (3,) #print (type(Results)) # print (Results[0]) #print (type(Results[0])) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 设置脚本权限: [root@zabbix_client ~]# chmod a+x /usr/local/zz.py [root@zabbix_client ~]# 脚本运行的结果: [root@zabbix_client ~]# python3 /usr/local/zz.py 3 [root@zabbix_client ~]# ###### 在被监控主机上创建Python3脚本:(输出单个库(mysql)的大小,以字节为单位) [root@zabbix_client ~]# cat /usr/local/kk.py #coding=utf-8 import pymysql def db_connect(): db=pymysql.connect("localhost", "zhuohua", "886", "mysql",3306,charset="utf8") cursor=db.cursor() SQL_1 = "select concat(sum(DATA_LENGTH)) as data from information_schema.TABLES where table_schema = 'mysql';" cursor.execute(SQL_1) #执行SQL语句 Results=cursor.fetchone() #print (Results) # (b'2312172',) #print (type(Results)) # #print (Results[0]) # b'2312172' #print (type(Results[0])) # Key_1 = int(Results[0]) print (Key_1) #print (type(Key_1)) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 设置脚本权限: [root@zabbix_client ~]# chmod a+x /usr/local/kk.py [root@zabbix_client ~]# 脚本运行的结果: [root@zabbix_client ~]# python3 /usr/local/kk.py 2312172 [root@zabbix_client ~]# ############### 被监控主机的Agent的安装可参考 Zabbix使用Agent监控CentOS6/Redhat6 修改被监控主机的Agent配置文件: [root@zabbix_client ~]# vi /etc/zabbix/zabbix_agentd.conf # UnsafeUserParameters=0 修改为:(启用该功能) UnsafeUserParameters=1 插入: UserParameter=command_1,/usr/bin/python3 /usr/local/xx.py UserParameter=command_2,/usr/bin/python3 /usr/local/yy.py UserParameter=command_3,/usr/bin/python3 /usr/local/zz.py UserParameter=command_4,/usr/bin/python3 /usr/local/kk.py 如下图: 图片6.png 保存好配置文件后,重启zabbix-agent: [root@zabbix_client ~]# service zabbix-agent restart Shutting down Zabbix agent: [确定] Starting Zabbix agent: [确定] [root@zabbix_client ~]# 备注:这相当于在被监控主机上进行本地监控,所以被监控主机无需打开防火墙的TCP 3306端口。 ###### 在Zabbix服务器测试,验证能否获取被监控主机(192.168.168.130)的键值: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -p10050 -k "command_1" 500 [root@centos8 ~]# [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -p10050 -k command_2 1 [root@centos8 ~]# [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k "command_3" 3 [root@centos8 ~]# [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k command_4 2312172 [root@centos8 ~]# ##################Zabbix添加被监控主机: 配置》主机》创建主机:(主机名称无需与被监控主机的真实主机名一致;群组可以随便选;IP地址那里要输入被监控主机的IP地址;端口为10050) 图片7.png 注释: 使用agent代理程序的接口。 使用 TCP 10050 端口。 主机MySQL5.7_Server_01添加成功:(主机可以不用模板的) 图片8.png 给“MySQL的最大连接数”创建监控项: 自定义名称: MySQL command_1 键值: command_1 信息类型: 数字(无正负) 单位: !个 图片9.png 备注:其他地方保持默认,点击底下的“添加”按键。 给“MySQL当前处于激活状态的连接数”创建监控项: 自定义名称: MySQL command_2 键值: command_2 信息类型: 数字(无正负) 单位: !个 图片10.png 备注:其他地方保持默认,点击底下的“添加”按键。 给“当前数据库的用户数量”创建监控项: 自定义名称: MySQL command_3 键值: command_3 信息类型: 浮点数 单位: !个 图片11.png 备注:其他地方保持默认,点击底下的“添加”按键。 给“单个库(mysql)的大小”创建监控项: 自定义名称: MySQL command_4 键值: command_4 信息类型: 数字(无正负) 单位: B 图片12.png 备注: 使用单位“B”时,结果在单位换算时会每超过1024就除以1024,保留两位小数,是四舍五入; ###### 给监控项“MySQL command_1”创建图形: 图片13.png 监控项: 图片14.png 给监控项“MySQL command_2”创建图形: 图片15.png 监控项: 图片16.png 给监控项“MySQL command_3”创建图形: 图片17.png 监控项: 图片18.png 给监控项“MySQL command_4”创建图形: 图片19.png 监控项: 图片20.png ###### 查看图形: 监测》图形: 图片21.png 图片22.png 图片23.png 图片24.png 图片25.png 图片26.png 图片27.png 图片28.png 图片29.png 图片30.png 图片31.png 图片32.png ############ ############ 修改被监控主机的MySQL的最大连接数:( 没有代码就插入,要在[mysqld]下面 ) [root@zabbix_client ~]# vi /etc/my.cnf [mysqld] max_connections = 500 改为 max_connections = 1000 保存好配置文件后,重启MySQL服务: [root@zabbix_client ~]# service mysql restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS! [root@zabbix_client ~]# 再次,在被监控主机上查看MySQL的最大连接数: Show variables like '%max_connections%'; 图片33.png 再次,在Zabbix服务器上远程测试: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k command_1 1000 [root@centos8 ~]# 再次,查看图形“MySQL Command_1 image”: 图片34.png 图片35.png 注释:图形中的数据线是从右往左延伸的。 图片36.png 相关文章: MySQL的最大连接数/最大可打开表数/最大可打开文件数 Zabbix自定义监控Linux下的MySQL Zabbix调用Python3脚本监控MySQL主从同步状态 Zabbix调用Python3脚本监控Linux下的MariaDB Zabbix调用Python3脚本监控MSSQL Zabbix调用Python3脚本监控Linux下的Oracle(一) Zabbix使用模板监控Linux下的MySQL Zabbix创建模板监控Windows下的MariaDB Zabbix5.0.12_调用Python3脚本监控Linux下的MySQL

图片附件: 图片1.png (2022-9-12 16:29, 121.23 KB) / 下载次数 70
http://blog.zhuohua.store/attachment.php?aid=20891&k=e470150e688b688f46212715ee81b41c&t=1714360341&sid=3l7F9b



图片附件: 图片2.png (2022-9-12 16:31, 42.92 KB) / 下载次数 71
http://blog.zhuohua.store/attachment.php?aid=20892&k=0ca289f9fd56a28b4187207d32be998b&t=1714360341&sid=3l7F9b



图片附件: 图片3.png (2022-9-12 16:31, 36.93 KB) / 下载次数 70
http://blog.zhuohua.store/attachment.php?aid=20893&k=ba7f353cc6158d10b898a5a3ea165397&t=1714360341&sid=3l7F9b



图片附件: 图片4.png (2022-9-12 16:32, 34.14 KB) / 下载次数 56
http://blog.zhuohua.store/attachment.php?aid=20894&k=9de7b35ae9191fe549adf34a0a5bcb30&t=1714360341&sid=3l7F9b



图片附件: 图片5.png (2022-9-12 16:32, 34.33 KB) / 下载次数 66
http://blog.zhuohua.store/attachment.php?aid=20895&k=b5bb62646d4ef2de1ee8d375d74f1821&t=1714360341&sid=3l7F9b



图片附件: 图片6.png (2022-9-12 16:40, 138.44 KB) / 下载次数 61
http://blog.zhuohua.store/attachment.php?aid=20896&k=224fb6580b8ffdf0fd2496704767907a&t=1714360341&sid=3l7F9b



图片附件: 图片7.png (2022-9-12 16:42, 36.64 KB) / 下载次数 72
http://blog.zhuohua.store/attachment.php?aid=20897&k=7dcadd41c25b0fc49c548f912b894246&t=1714360341&sid=3l7F9b



图片附件: 图片8.png (2022-9-12 16:43, 95.1 KB) / 下载次数 62
http://blog.zhuohua.store/attachment.php?aid=20898&k=398add4759b8364ae1e9cef9193c5252&t=1714360341&sid=3l7F9b



图片附件: 图片9.png (2022-9-12 16:44, 24.98 KB) / 下载次数 26
http://blog.zhuohua.store/attachment.php?aid=20899&k=a2417a7ed7a8d7abdbccb22754917605&t=1714360341&sid=3l7F9b



图片附件: 图片10.png (2022-9-12 16:44, 25.19 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20900&k=16107c49af5298973062b16c65d60ded&t=1714360341&sid=3l7F9b



图片附件: 图片11.png (2022-9-12 16:45, 25.29 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20901&k=d9cadfa66618fa9222decf94443afd82&t=1714360341&sid=3l7F9b



图片附件: 图片12.png (2022-9-12 16:46, 25.45 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20902&k=8d777c327fefcda7c21795f7c272ea20&t=1714360341&sid=3l7F9b



图片附件: 图片13.png (2022-9-12 16:46, 52.71 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=20903&k=aaf146fcb1534b4e0b4a6cc2aad857e6&t=1714360341&sid=3l7F9b



图片附件: 图片14.png (2022-9-12 16:46, 15.8 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20904&k=5b589a4ed5b064b89e8ee35ca03c7549&t=1714360341&sid=3l7F9b



图片附件: 图片15.png (2022-9-12 16:47, 51.01 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20905&k=4a4382a5c84331765022b87d1ad7c8b2&t=1714360341&sid=3l7F9b



图片附件: 图片16.png (2022-9-12 16:47, 15.85 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20906&k=a12da3aa2fb9be9bfb84afe5c9605fb9&t=1714360341&sid=3l7F9b



图片附件: 图片17.png (2022-9-12 16:47, 51.71 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=20907&k=63f7755d703b78034d72cad445b69bbe&t=1714360341&sid=3l7F9b



图片附件: 图片18.png (2022-9-12 16:48, 15.84 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=20908&k=7b272b01889c1b16260b2faf1b2337cc&t=1714360341&sid=3l7F9b



图片附件: 图片19.png (2022-9-12 16:48, 51.44 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20909&k=0c8fd1801b0817a61a8d892bb7551767&t=1714360341&sid=3l7F9b



图片附件: 图片20.png (2022-9-12 16:48, 15.84 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20910&k=2faf33011817ecbc64a9505529de1eeb&t=1714360341&sid=3l7F9b



图片附件: 图片21.png (2022-9-12 16:49, 5.7 KB) / 下载次数 21
http://blog.zhuohua.store/attachment.php?aid=20911&k=0272baf8395761039a289ec834aec1be&t=1714360341&sid=3l7F9b



图片附件: 图片22.png (2022-9-12 16:49, 86.15 KB) / 下载次数 26
http://blog.zhuohua.store/attachment.php?aid=20912&k=ea72b3f8accfcafb186f0656e9951f05&t=1714360341&sid=3l7F9b



图片附件: 图片23.png (2022-9-12 16:49, 43.12 KB) / 下载次数 26
http://blog.zhuohua.store/attachment.php?aid=20913&k=4db56a29a9ee1516e21f0308c1844bb6&t=1714360341&sid=3l7F9b



图片附件: 图片24.png (2022-9-12 16:49, 5.79 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20914&k=86d0d3374d3022ff87153a79cd24c5bd&t=1714360341&sid=3l7F9b



图片附件: 图片25.png (2022-9-12 16:49, 69.23 KB) / 下载次数 29
http://blog.zhuohua.store/attachment.php?aid=20915&k=724dc41ffe0d49bde3e999b9debe8e83&t=1714360341&sid=3l7F9b



图片附件: 图片26.png (2022-9-12 16:50, 35.84 KB) / 下载次数 21
http://blog.zhuohua.store/attachment.php?aid=20916&k=8012f98560a79599f737619df819be79&t=1714360341&sid=3l7F9b



图片附件: 图片27.png (2022-9-12 16:50, 5.77 KB) / 下载次数 29
http://blog.zhuohua.store/attachment.php?aid=20917&k=6bb63fd254948c739cd90ede39c1445f&t=1714360341&sid=3l7F9b



图片附件: 图片28.png (2022-9-12 16:50, 67.75 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=20918&k=944a05b56b7e6685ffe714999345a87b&t=1714360341&sid=3l7F9b



图片附件: 图片29.png (2022-9-12 16:50, 33.88 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20919&k=5b7407a61872ad64c215a5760f92a0bb&t=1714360341&sid=3l7F9b



图片附件: 图片30.png (2022-9-12 16:51, 5.68 KB) / 下载次数 26
http://blog.zhuohua.store/attachment.php?aid=20920&k=f67f039a9e7e08617efcb4ab06c2e68b&t=1714360341&sid=3l7F9b



图片附件: 图片31.png (2022-9-12 16:51, 70.12 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20921&k=ef96d5c1720509aeb3a2de9a4418df87&t=1714360341&sid=3l7F9b



图片附件: 图片32.png (2022-9-12 16:51, 38.27 KB) / 下载次数 21
http://blog.zhuohua.store/attachment.php?aid=20922&k=70b6efced6c47fc8be953c9f334c8105&t=1714360341&sid=3l7F9b



图片附件: 图片33.png (2022-9-12 16:52, 37.19 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=20923&k=25051c210dcd32e3e1c3036773506a93&t=1714360341&sid=3l7F9b



图片附件: 图片34.png (2022-9-12 16:52, 5.7 KB) / 下载次数 26
http://blog.zhuohua.store/attachment.php?aid=20924&k=ad749c3f1fae7353724b6681caa084f0&t=1714360341&sid=3l7F9b



图片附件: 图片35.png (2022-9-12 16:53, 79.93 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20925&k=2c3a40d1ed61acd83e1b34abab1c406e&t=1714360341&sid=3l7F9b



图片附件: 图片36.png (2022-9-12 16:53, 42.78 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20926&k=796d9291402bfcf5fb12d438594462c1&t=1714360341&sid=3l7F9b






欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/) Powered by Discuz! 7.2