标题:
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"
下载
(121.23 KB)
2022-9-12 16:29
查看当前登录的数据库用户: 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;
下载
(42.92 KB)
2022-9-12 16:31
查看MySQL的最大连接数: show variables like '%max_connections%';
下载
(36.93 KB)
2022-9-12 16:31
查看MySQL当前打开的连接数: show status like 'threads_connected';
下载
(34.14 KB)
2022-9-12 16:32
查看MySQL当前处于激活状态的连接数: show status like 'threads_running';
下载
(34.33 KB)
2022-9-12 16:32
查看单个库(
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 如下图:
下载
(138.44 KB)
2022-9-12 16:40
保存好配置文件后,重启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)
下载
(36.64 KB)
2022-9-12 16:42
注释: 使用agent代理程序的接口。 使用 TCP 10050 端口。 主机
MySQL5.7_Server_01
添加成功:(主机可以不用模板的)
下载
(95.1 KB)
2022-9-12 16:43
给“MySQL的最大连接数”创建监控项: 自定义名称:
MySQL command_1
键值:
command_1
信息类型: 数字(无正负) 单位:
!个
下载
(24.98 KB)
2022-9-12 16:44
备注:其他地方保持默认,点击底下的“添加”按键。 给“MySQL当前处于激活状态的连接数”创建监控项: 自定义名称:
MySQL command_2
键值:
command_2
信息类型: 数字(无正负) 单位:
!个
下载
(25.19 KB)
2022-9-12 16:44
备注:其他地方保持默认,点击底下的“添加”按键。 给“当前数据库的用户数量”创建监控项: 自定义名称:
MySQL command_3
键值:
command_3
信息类型: 浮点数 单位:
!个
下载
(25.29 KB)
2022-9-12 16:45
备注:其他地方保持默认,点击底下的“添加”按键。 给“单个库(mysql)的大小”创建监控项: 自定义名称:
MySQL command_4
键值:
command_4
信息类型: 数字(无正负) 单位:
B
下载
(25.45 KB)
2022-9-12 16:46
备注: 使用单位“B”时,结果在单位换算时会每超过1024就除以1024,保留两位小数,是四舍五入; ###### 给监控项“MySQL command_1”创建图形:
下载
(52.71 KB)
2022-9-12 16:46
监控项:
下载
(15.8 KB)
2022-9-12 16:46
给监控项“MySQL command_2”创建图形:
下载
(51.01 KB)
2022-9-12 16:47
监控项:
下载
(15.85 KB)
2022-9-12 16:47
给监控项“MySQL command_3”创建图形:
下载
(51.71 KB)
2022-9-12 16:47
监控项:
下载
(15.84 KB)
2022-9-12 16:48
给监控项“MySQL command_4”创建图形:
下载
(51.44 KB)
2022-9-12 16:48
监控项:
下载
(15.84 KB)
2022-9-12 16:48
###### 查看图形: 监测》图形:
下载
(5.7 KB)
2022-9-12 16:49
下载
(86.15 KB)
2022-9-12 16:49
下载
(43.12 KB)
2022-9-12 16:49
下载
(5.79 KB)
2022-9-12 16:49
下载
(69.23 KB)
2022-9-12 16:49
下载
(35.84 KB)
2022-9-12 16:50
下载
(5.77 KB)
2022-9-12 16:50
下载
(67.75 KB)
2022-9-12 16:50
下载
(33.88 KB)
2022-9-12 16:50
下载
(5.68 KB)
2022-9-12 16:51
下载
(70.12 KB)
2022-9-12 16:51
下载
(38.27 KB)
2022-9-12 16:51
############ ############ 修改被监控主机的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%';
下载
(37.19 KB)
2022-9-12 16:52
再次,在Zabbix服务器上远程测试: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k
command_1
1000
[root@centos8 ~]# 再次,查看图形“MySQL Command_1 image”:
下载
(5.7 KB)
2022-9-12 16:52
下载
(79.93 KB)
2022-9-12 16:53
注释:图形中的数据线是从右往左延伸的。
下载
(42.78 KB)
2022-9-12 16:53
相关文章:
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