Zabbix没有报表导出的功能,于是通过编写脚本导出zabbix数据并发邮件。效果如下:
[外链图片转存中…(img-YujWHCbu-1565876650802)]
下面是脚本,可根据自己的具体情况修改:
`#!/usr/bin/python`
`#coding:utf-8`
`import MySQLdb`
`import time,datetime`
`import xlsxwriter`
`import smtplib`
`from` `email.mime.text import MIMEText`
`from` `email.mime.multipart import MIMEMultipart`
`from` `email.header import Header`
`#zabbix数据库信息:`
`zdbhost = ``'127.0.0.1'`
`zdbuser = ``'zabbix'`
`zdbpass = ``'zabbix'`
`zdbport = 3306`
`zdbname = ``'zabbix'`
`#生成文件名称:`
`xlsfilename = ``'Group_Production_Server.xlsx'`
`#需要查询的key列表 [名称,表名,key值,取值,格式化,数据整除处理]`
`keys = [`
`# ['CPU核心数','trends_uint','system.cpu.num','avg','',1],`
`#['CPU平均空闲值','trends','system.cpu.util[,idle]','avg','%.2f',1],`
`#['CPU最小空闲值','trends','system.cpu.util[,idle]','min','%.2f',1],`
`[``'CPU使用率(%)'``,``'trends'``,``'CPU_used'``,``'avg'``,``'%.2f'``,1],`
`#['内存大小(单位G)','trends_uint','vm.memory.size[total]','avg','',1048576000],`
`#['剩余内存(单位G)','trends_uint','vm.memory.size[available]','avg','',1048576000],`
`[``'内存使用率(%)'``,``'trends'``,``'Memory_used'``,``'avg'``,``'%.2f'``,1],`
`# ['可用平均内存(单位G)','trends_uint','vm.memory.size[available]','avg','',1048576000],`
`# ['可用最小内存(单位G)','trends_uint','vm.memory.size[available]','min','',1048576000],`
`# ['swap总大小(单位G)','trends_uint','system.swap.size[,total]','avg','',1048576000],`
`# ['swap平均剩余(单位G)','trends_uint','system.swap.size[,free]','avg','',1048576000],`
`# ['根分区总大小(单位G)','trends_uint','vfs.fs.size[/,total]','avg','',1073741824],`
`