Board logo

标题: Zabbix调用Python3脚本监控MSSQL [打印本页]

作者: admin    时间: 2020-7-16 17:36     标题: Zabbix调用Python3脚本监控MSSQL

笺注:这是在 使用Navicat远程管理MSSQL2014 的基础上进行的。 在CMD命令行中,查看本机的MSSQL的版本信息: sqlcmd -S localhost -U sa -P Jacky888 -Q "select @@VERSION as 'MSSQL_Version:'" 图片2.png 注释: 用户名 sa 用户密码 Jacky888 SQL语句 "select @@VERSION as 'MSSQL_Version:'" sqlcmd -S localhost -U zhuohua -P 123 -Q "select @@VERSION as 'MSSQL Version:'" 图片3.png 注释: 用户名 zhuohua 用户密码 123 SQL语句 "select @@VERSION as 'MSSQL Version:'" 查看MSSQL的最大用户连接数: C:\Users\Administrator>sqlcmd -S localhost -U sa -P Jacky888 -Q "select @@MAX_CONNECTIONS as '最大用户连接数:'" 最大用户连接数: ----------- 32767 (1 行受影响) C:\Users\Administrator> C:\Users\Administrator>sqlcmd -S localhost -U zhuohua -P 123 -Q "select @@MAX_CONNECTIONS as '最大用户连接数:'" 最大用户连接数: ----------- 32767 (1 行受影响) C:\Users\Administrator> 查看MSSQL的当前连接数:(这里使用数据库管理员sa才够权限) C:\Users\Administrator>sqlcmd -S localhost -U sa -P Jacky888 -Q "SELECT cntr_value AS 'User_Connections:' FROM master.dbo.sysperfinfo WHERE counter_name = 'User Connections'" User_Connections: -------------------- 9 (1 行受影响) C:\Users\Administrator> 查看MSSQL的当前进程数:(这里使用数据库管理员sa才够权限) C:\Users\Administrator>sqlcmd -S localhost -U sa -P Jacky888 -Q "select count(*) as '当前进程数:' from master.dbo.sysprocesses" 当前进程数: ----------- 46 (1 行受影响) C:\Users\Administrator> 测试用的表和数据: 图片4.png 查询表data1.dbo.table1中字段id的最大值: C:\Users\Administrator>sqlcmd -S localhost -U sa -P Jacky888 -Q "SELECT max(id) FROM data1.dbo.table1" ----------- 3 (1 行受影响) C:\Users\Administrator> 查询表data1.dbo.table1中某个符合条件的字段的值: C:\Users\Administrator>sqlcmd -S localhost -U zhuohua -P 123 -Q "SELECT id FROM data1.dbo.table1 Where name = '李大杰'" id ----------- 2 (1 行受影响) C:\Users\Administrator> 查询表data1.dbo.table1中某个符合条件的字段的值: C:\Users\Administrator>sqlcmd -S localhost -U zhuohua -P 123 -Q "SELECT name FROM data1.dbo.table1 Where id = 1" name -------------------- Python (1 行受影响) C:\Users\Administrator> ############ 被监控主机上安装第三方库(pyodbc),可参考:Python3脚本管理MSSQL2014 查看pyodbc的版本: C:\Users\Administrator\Desktop>pip3 freeze pyodbc==4.0.30 C:\Users\Administrator\Desktop> ###### 在被监控主机上创建Python3脚本:(输出MSSQL的当前进程数) ### d:\xx.py #coding=utf-8 import pyodbc def db_connect(): #打开数据库连接;本地连接(localhost)、端口号(1433)、其中一个库的名称(master)、用户名、密码: db = pyodbc.connect(DRIVER='{SQL Server}',SERVER='localhost',PORT='1433',DATABASE='master',UID='sa',PWD='Jacky888') cursor = db.cursor() SQL_1 = "select count(*) from sysprocesses" #SQL语句 cursor.execute(SQL_1) #执行SQL语句 Result_1 = cursor.fetchone() #使用fetchone只能获取一个元素 #print(Result_1) # (46, ) #print(type(Result_1)) # print(Result_1[0]) #print(type(Result_1[0])) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 脚本运行的结果: C:\Users\Administrator\Desktop>python d:\xx.py 46 C:\Users\Administrator\Desktop> ###### 在被监控主机上创建Python3脚本:(输出MSSQL的当前连接数) ### d:\yy.py #coding=utf-8 import pyodbc def db_connect(): db = pyodbc.connect(DRIVER='{SQL Server}',SERVER='localhost',PORT='1433',DATABASE='master',UID='sa',PWD='Jacky888') cursor = db.cursor() SQL_1 = "SELECT cntr_value FROM sysperfinfo WHERE counter_name = 'User Connections'" cursor.execute(SQL_1) Result_1 = cursor.fetchone() #print(Result_1) # (9, ) #print(type(Result_1)) # print(Result_1[0]) #print(type(Result_1[0])) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 脚本运行的结果: C:\Users\Administrator\Desktop>python d:\yy.py 9 C:\Users\Administrator\Desktop> ###### 在被监控主机上创建Python3脚本:(输出MSSQL的最大用户连接数) ### d:\zz.py #coding=utf-8 import pyodbc def db_connect(): db = pyodbc.connect(DRIVER='{SQL Server}',SERVER='localhost',PORT='1433',DATABASE='data1',UID='zhuohua',PWD='123') cursor = db.cursor() SQL_1 = "select @@MAX_CONNECTIONS" cursor.execute(SQL_1) Result_1 = cursor.fetchone() #print(Result_1) # (32767, ) #print(type(Result_1)) # print(Result_1[0]) #print(type(Result_1[0])) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 脚本运行的结果: C:\Users\Administrator\Desktop>python d:\zz.py 32767 C:\Users\Administrator\Desktop> ###### 在被监控主机上创建Python3脚本:(输出表data1.dbo.table1中字段id的最大值) ### d:\kk.py #coding=utf-8 import pyodbc def db_connect(): db = pyodbc.connect(DRIVER='{SQL Server}',SERVER='localhost',PORT='1433',DATABASE='data1',UID='zhuohua',PWD='123') cursor = db.cursor() SQL_1 = "Select Max(id) FROM table1" cursor.execute(SQL_1) Result_1 = cursor.fetchone() #print(Result_1) # (3, ) #print(type(Result_1)) # print(Result_1[0]) #print(type(Result_1[0])) # db.close() def main(): try: db_connect() except Exception as e: print(e) if __name__ == "__main__": main() 脚本运行的结果: C:\Users\Administrator\Desktop>python d:\kk.py 3 C:\Users\Administrator\Desktop> ############### 被监控主机的Agent的安装可参考:Zabbix使用Agent监控Windows2012R2 修改被监控主机的Agent配置文件: C:\Program Files\Zabbix Agent\zabbix_agentd.conf # UnsafeUserParameters=0 修改为: UnsafeUserParameters=1 接着插入: UserParameter=Command_1,C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe D:\xx.py UserParameter=Command_2,C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe D:\yy.py UserParameter=Command_3,C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe D:\zz.py UserParameter=Command_4,C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe D:\kk.py 如下图:(截图有省略) 图片5.png 保存好配置文件后,重启Zabbix Agent服务: 图片6.png 备注:这相当于在被监控主机上进行本地监控,所以被监控主机无需打开防火墙的TCP 1433端口。 ###### 在Zabbix服务器测试,验证能否获取被监控主机(192.168.168.133)的键值: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.133 -k Command_1 ZBX_NOTSUPPORTED: Timeout while executing a shell script. [root@centos8 ~]# 解决方法: 修改被监控主机的Agent配置文件: C:\Program Files\Zabbix Agent\zabbix_agentd.conf 图片7.png 修改为 Timeout=30 图片8.png 保存好配置文件后,重启Zabbix Agent服务: 图片9.png 在Zabbix服务器可以获取被监控主机(192.168.168.133)的键值了: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.133 -k Command_1 46 [root@centos8 ~]# [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.133 -k Command_2 9 [root@centos8 ~]# [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.133 -k Command_3 32767 [root@centos8 ~]# [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.133 -k Command_4 3 [root@centos8 ~]# ##################Zabbix添加被监控主机: 配置》主机》创建主机:(主机名称无需与被监控主机的真实主机名一致;群组可以随便选;IP地址那里要输入被监控主机的IP地址;端口为10050) 图片10.png 注释: 使用agent代理程序的接口。 使用 TCP 10050 端口。 主机MSSQL2014添加成功:(主机可以不用模板的) 图片11.png 给“MSSQL的当前进程数”创建监控项: 自定义名称: MSSQL Command_1 键值: Command_1 信息类型: 数字(无正负) 单位: !个 图片12.png 备注:其他地方保持默认,点击底下的“添加”按键。 给“MSSQL的当前连接数”创建监控项: 自定义名称: MSSQL Command_2 键值: Command_2 信息类型: 数字(无正负) 单位: !个 图片13.png 备注:其他地方保持默认,点击底下的“添加”按键。 给“MSSQL的最大用户连接数”创建监控项: 自定义名称: MSSQL Command_3 键值: Command_3 信息类型: 数字(无正负) 单位: !个 图片14.png 备注:其他地方保持默认,点击底下的“添加”按键。 给“表data1.dbo.table1中字段id的最大值”创建监控项: 自定义名称: MSSQL Command_4 键值: Command_4 信息类型: 数字(无正负) 图片15.png 备注:其他地方保持默认,点击底下的“添加”按键。 ###### 给监控项“MSSQL Command_1”创建图形: 图片16.png 监控项: 图片17.png 给监控项“MSSQL Command_2”创建图形: 图片18.png 监控项: 图片19.png 给监控项“MSSQL Command_3”创建图形: 图片20.png 监控项: 图片21.png 给监控项“MSSQL Command_4”创建图形: 图片22.png 监控项: 图片23.png ###### 查看图形: 监测》图形: 图片24.png 图片25.png 图片26.png 图片27.png 图片28.png 图片29.png 图片30.png 图片31.png 图片32.png 图片33.png 图片34.png 图片35.png ###### 给主机MSSQL2014的监控项“MSSQL Command_4”创建一个触发器:(返回值大于5就告警) 自定义名称: ID is bigger than 5 (当前值: {ITEM.VALUE}) 严重性: 一般严重 图片36.png 注释: {ITEM.VALUE} 是预定义变量,即触发状态时监控项的值。 插入表达式:( 监控项 MSSQL2014: MSSQL Command_4 图片37.png 自动生成的表达式:(触发器的表达式要用到监控项中的键值) {MSSQL2014:Command_4.last()}>5 图片38.png 本页拖下去: 图片39.png 主机MSSQL2014的图形“MSSQL Command_4 image”会自动发生改变: 图片40.png ############ 先在被监控主机的表data1.dbo.table1中再插入三条记录,至此,一共有六条记录。 在被监控主机本地测试: C:\Users\Administrator>python d:\kk.py 6 C:\Users\Administrator> 在Zabbix服务器远程测试: [root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.133 -k Command_4 6 [root@centos8 ~]# 主机MSSQL2014的图形“MSSQL Command_4 image”中看到的效果: 图片41.png 注释:图形中的数据线是从右往左延伸的。 图片42.png 主机MSSQL2014的监控项“MSSQL Command_4”的返回值大于5时,仪表板会如下图显示:(显示对应触发器的名称) ID is bigger than 5 (当前值: 6) 图片43.png 图片44.png ############ 主机MSSQL2014的监控项“MSSQL Command_4”的返回值继续增大至8个后,在图形“MSSQL Command_4 image”中看到的效果: 图片45.png 图片46.png 注释:在图形中可以看到预定义变量{ITEM.VALUE}的值会随着监控项的返回值的变化而变化。 但在仪表板却没有看到预定义变量{ITEM.VALUE}的值随着监控项的返回值的变化而变化,只是一直显示当初触发状态时的值: 图片47.png ############ 主机MSSQL2014的监控项“MSSQL Command_4”的返回值小于或等于5个后,在仪表板的告警会自动消失: 图片48.png 相关文章: Zabbix调用Python3脚本监控Linux下的MySQL Zabbix创建模板监控Windows下的MariaDB Zabbix使用Agent监控Windows2012R2 Zabbix5.0.12_调用Python3脚本监控Windows下的MSSQL

图片附件: 图片2.png (2022-9-18 09:31, 60.74 KB) / 下载次数 57
http://blog.zhuohua.store/attachment.php?aid=20956&k=d7bc3d5221e429d81cd11e3ca0c8feec&t=1714227335&sid=8J59ZN



图片附件: 图片3.png (2022-9-18 09:32, 61.27 KB) / 下载次数 60
http://blog.zhuohua.store/attachment.php?aid=20957&k=0350341a9cc4183ca3abdf6ff331d063&t=1714227335&sid=8J59ZN



图片附件: 图片4.png (2022-9-18 09:35, 32.82 KB) / 下载次数 64
http://blog.zhuohua.store/attachment.php?aid=20958&k=fae0698282cdbdb92dfc937884602dfb&t=1714227335&sid=8J59ZN



图片附件: 图片5.png (2022-9-18 09:42, 55.54 KB) / 下载次数 61
http://blog.zhuohua.store/attachment.php?aid=20959&k=0e15574d477355f13104280604848473&t=1714227335&sid=8J59ZN



图片附件: 图片6.png (2022-9-18 09:42, 116.84 KB) / 下载次数 62
http://blog.zhuohua.store/attachment.php?aid=20960&k=b47fe30c476df3c9d233a41686feb051&t=1714227335&sid=8J59ZN



图片附件: 图片7.png (2022-9-18 09:43, 45.71 KB) / 下载次数 50
http://blog.zhuohua.store/attachment.php?aid=20961&k=77d88aaefdd02f94136dac91a75948dd&t=1714227335&sid=8J59ZN



图片附件: 图片8.png (2022-9-18 09:43, 45.81 KB) / 下载次数 65
http://blog.zhuohua.store/attachment.php?aid=20962&k=8d7928e29a78c531b6184e85e66b9c71&t=1714227335&sid=8J59ZN



图片附件: 图片9.png (2022-9-18 09:43, 116.84 KB) / 下载次数 65
http://blog.zhuohua.store/attachment.php?aid=20963&k=1a2ac37d2b0439b272c3586183d52fd7&t=1714227335&sid=8J59ZN



图片附件: 图片10.png (2022-9-18 09:44, 35.46 KB) / 下载次数 63
http://blog.zhuohua.store/attachment.php?aid=20964&k=39b2cb1b163952421ffd3709ca848e46&t=1714227335&sid=8J59ZN



图片附件: 图片11.png (2022-9-18 09:45, 41.87 KB) / 下载次数 71
http://blog.zhuohua.store/attachment.php?aid=20965&k=18e4f95677abd6552a3d88c4268c5023&t=1714227335&sid=8J59ZN



图片附件: 图片12.png (2022-9-18 09:46, 24.21 KB) / 下载次数 63
http://blog.zhuohua.store/attachment.php?aid=20966&k=dc67d802aef9c1179446c587b6de171a&t=1714227335&sid=8J59ZN



图片附件: 图片13.png (2022-9-18 09:46, 24.53 KB) / 下载次数 65
http://blog.zhuohua.store/attachment.php?aid=20967&k=22459830f9a4934093657faec04b44a6&t=1714227335&sid=8J59ZN



图片附件: 图片14.png (2022-9-18 09:46, 24.86 KB) / 下载次数 29
http://blog.zhuohua.store/attachment.php?aid=20968&k=39eba60f3aad433133e10f1316053b12&t=1714227335&sid=8J59ZN



图片附件: 图片15.png (2022-9-18 09:48, 24.49 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20969&k=c240fd981b420e21065bfbac91ca123c&t=1714227335&sid=8J59ZN



图片附件: 图片16.png (2022-9-18 09:49, 56.97 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=20970&k=d89baacae2b5f3da037a257b1c96bef3&t=1714227335&sid=8J59ZN



图片附件: 图片17.png (2022-9-18 09:49, 15.34 KB) / 下载次数 19
http://blog.zhuohua.store/attachment.php?aid=20971&k=2b1e5dee96917c617332e6a65fbd38cd&t=1714227335&sid=8J59ZN



图片附件: 图片18.png (2022-9-18 09:49, 57.05 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20972&k=cbd6a3ada9d1c83b20e832e4619b45ba&t=1714227335&sid=8J59ZN



图片附件: 图片19.png (2022-9-18 09:50, 15.42 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20973&k=f8ce10b418f19e8ae8e4f670954481eb&t=1714227335&sid=8J59ZN



图片附件: 图片20.png (2022-9-18 09:50, 57.79 KB) / 下载次数 19
http://blog.zhuohua.store/attachment.php?aid=20974&k=1b409e2b4860201174d61fba5b4caeec&t=1714227335&sid=8J59ZN



图片附件: 图片21.png (2022-9-18 09:50, 15.51 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=20975&k=c0eea353582843c2f13f414325dd3fe3&t=1714227335&sid=8J59ZN



图片附件: 图片22.png (2022-9-18 09:50, 57.47 KB) / 下载次数 19
http://blog.zhuohua.store/attachment.php?aid=20976&k=3b86164c8e6383ea01d54988895ededc&t=1714227335&sid=8J59ZN



图片附件: 图片23.png (2022-9-18 09:51, 15.47 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20977&k=65991205caa5c23398058449c99030a8&t=1714227335&sid=8J59ZN



图片附件: 图片24.png (2022-9-18 09:51, 5.25 KB) / 下载次数 30
http://blog.zhuohua.store/attachment.php?aid=20978&k=3e0b69fc7b9fd05e804fbea7afb27edb&t=1714227335&sid=8J59ZN



图片附件: 图片25.png (2022-9-18 09:51, 78.27 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20979&k=97d9f649751521eab6540f17c05694b6&t=1714227335&sid=8J59ZN



图片附件: 图片26.png (2022-9-18 09:52, 43.39 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20980&k=325da2a9131febd02d7266461e567183&t=1714227335&sid=8J59ZN



图片附件: 图片27.png (2022-9-18 09:52, 5.33 KB) / 下载次数 20
http://blog.zhuohua.store/attachment.php?aid=20981&k=d73acf457a6847ca1a903e7369a271d4&t=1714227335&sid=8J59ZN



图片附件: 图片28.png (2022-9-18 09:52, 69.01 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20982&k=600f8931f016887725ece88ea578cf02&t=1714227335&sid=8J59ZN



图片附件: 图片29.png (2022-9-18 09:52, 36.89 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20983&k=12dd25415999b02ab3414a122a23692b&t=1714227335&sid=8J59ZN



图片附件: 图片30.png (2022-9-18 09:52, 5.37 KB) / 下载次数 28
http://blog.zhuohua.store/attachment.php?aid=20984&k=426df073c5171c092b9c25e96fa138fc&t=1714227335&sid=8J59ZN



图片附件: 图片31.png (2022-9-18 09:53, 72.8 KB) / 下载次数 29
http://blog.zhuohua.store/attachment.php?aid=20985&k=86f2206748aaddef53450a7e5490c413&t=1714227335&sid=8J59ZN



图片附件: 图片32.png (2022-9-18 09:53, 45.05 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20986&k=a534f5ac57feb8ce9169376fecfefb4c&t=1714227335&sid=8J59ZN



图片附件: 图片33.png (2022-9-18 09:53, 5.29 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20987&k=604c98d0b3277f16f9e0917d5ea0f74c&t=1714227335&sid=8J59ZN



图片附件: 图片34.png (2022-9-18 09:53, 74 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=20988&k=2740f64b344b37fca9c247d3edf0ac20&t=1714227335&sid=8J59ZN



图片附件: 图片35.png (2022-9-18 09:53, 32.34 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20989&k=99b8ff9b4c6d3c09da438e3d2b4b19b1&t=1714227335&sid=8J59ZN



图片附件: 图片36.png (2022-9-18 09:54, 41.25 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20990&k=5bb6671f327fb086dc7795dcf8292c12&t=1714227335&sid=8J59ZN



图片附件: 图片37.png (2022-9-18 09:54, 27.32 KB) / 下载次数 24
http://blog.zhuohua.store/attachment.php?aid=20991&k=9633156f4a9d52ee014922cc27029aba&t=1714227335&sid=8J59ZN



图片附件: 图片38.png (2022-9-18 09:54, 13.49 KB) / 下载次数 21
http://blog.zhuohua.store/attachment.php?aid=20992&k=2115c689e9399faf8a36dfcab5d759db&t=1714227335&sid=8J59ZN



图片附件: 图片39.png (2022-9-18 09:55, 12.49 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=20993&k=200cf197e6800287a7179f203649dd85&t=1714227335&sid=8J59ZN



图片附件: 图片40.png (2022-9-18 09:55, 40.02 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=20994&k=4c55d65a6ba19f1c7d479e7d71223cd8&t=1714227335&sid=8J59ZN



图片附件: 图片41.png (2022-9-18 09:56, 72.85 KB) / 下载次数 20
http://blog.zhuohua.store/attachment.php?aid=20995&k=54a0e9e1479b904ac001fff35b7b05dc&t=1714227335&sid=8J59ZN



图片附件: 图片42.png (2022-9-18 09:56, 43.36 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=20996&k=b8143753f6fc6610744ddac6f4fcc2a1&t=1714227335&sid=8J59ZN



图片附件: 图片43.png (2022-9-18 09:57, 46.87 KB) / 下载次数 18
http://blog.zhuohua.store/attachment.php?aid=20997&k=4e0a6d7027c496a25ea1e8b66bb68138&t=1714227335&sid=8J59ZN



图片附件: 图片44.png (2022-9-18 09:57, 8.98 KB) / 下载次数 23
http://blog.zhuohua.store/attachment.php?aid=20998&k=282a54a951fb2c4d5fa81d65f06ae40d&t=1714227335&sid=8J59ZN



图片附件: 图片45.png (2022-9-18 09:58, 83.63 KB) / 下载次数 22
http://blog.zhuohua.store/attachment.php?aid=20999&k=445f64cbb1d0aeb5134242551345f607&t=1714227335&sid=8J59ZN



图片附件: 图片46.png (2022-9-18 09:58, 46.84 KB) / 下载次数 27
http://blog.zhuohua.store/attachment.php?aid=21000&k=d4c2575fc38d1a0b166c3690d343090e&t=1714227335&sid=8J59ZN



图片附件: 图片47.png (2022-9-18 09:58, 8.98 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=21001&k=a527f9483f5c25aba680feb9810f0680&t=1714227335&sid=8J59ZN



图片附件: 图片48.png (2022-9-18 09:58, 40.78 KB) / 下载次数 25
http://blog.zhuohua.store/attachment.php?aid=21002&k=a491b420ec4d8bba242eb2e48ef86ef6&t=1714227335&sid=8J59ZN






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