zabbix 硬盘状态收集,制作表格
将zabbix首页复制到a文件里,这里主要是用到首页里 最近出现的问题 的信息
- # -*- coding:utf-8 -*-
- import time
- import os
- from openpyxl import Workbook
- from openpyxl import load_workbook
- #获取状态信息
- def zabbixdisk():
- ip=os.popen("grep 'DiskHealthy' a | grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' |sort -t'.' -k1,1nr -k2,2nr -k3,3nr -k4,4nr|uniq").read().split('\n')
#一个端口重复一次,避免由于异常导致错过正常端口
zabbixport=['10050','10050']- data=[]
- #遍历服务器ip
- for i in ip:
- if i == '':
- continue
- name=os.popen("grep -w '%s' a | awk '{print $1}'|uniq"%i).read().replace('\n',"")
- num=0
- healthy=0
- disk=[]
- status=[]
- errore=[]
- #遍历端口
- while len(zabbixport) > num:
- healthy=os.popen("/usr/local/zabbix/bin/zabbix_get -s%s -p%s -k'disk.healthy'"%(i,zabbixport[num])).read()
- num=num + 1
- if num == len(zabbixport) and healthy == "" :
- errore.append(i)
- break
- elif healthy != "" :
- num=len(zabbixport)+1
- #将状态信息分类
- for ii in healthy.split('\n'):
- htmp=[]
- for iii in ii.split(' '):
- if "/dev" in iii :
- disk.append(iii)
- else:
- htmp.append(iii)
- status.append(' '.join(htmp))
- data.append([i,name,'%s'%'\n'.join(disk).rstrip("\n"),"%s"%'\n'.join(status).rstrip("\n")])
- return data,ip,'\n'.join(errore)
- #获取时间
- def newdate(sj):
- ISOTIMEFORMAT='%Y-%m-%d %X'
- if sj == 'Obtain':
- timedate=time.strftime(ISOTIMEFORMAT, time.localtime())
- return timedate
- else:
- timedate=time.strftime(ISOTIMEFORMAT,time.localtime(sj.st_mtime))
- return timedate
- #写入表格
- def exsl(data):
- name="sample-%s.xlsx"%newdate('Obtain').replace(' ','').replace(':','')
- wb = Workbook()
- # grab the active worksheet
- ws = wb.active
- # Data can be assigned directly to cells
- ws['A1'] = 'IP'
- ws['B1'] = 'HostName'
- ws['C1'] = 'Disk'
- ws['D1'] = 'status'
- for i in data:
- # Rows can also be appended
- ws.append([i[0], i[1], i[2], i[3] ])
- # Save the file
- wb.save("/tmp/%s"%name)
- return "/tmp/%s"%name
- data,ip,error =zabbixdisk()
- print "The number of servers that have detected a total hard disk: %s"%(len(ip)-1)
- print "ZABBIX access to the number of: %s"%len(data)
- if len(ip)-1 > len(data):
- print "The following IP failed to succeed: \n%s"%error
- print exsl(data)
zabbix 硬盘状态收集,制作表格的更多相关文章
- ul+li标签制作表格
table标签制作表格代码繁琐,且不方便后期代码维护. li标签加上css的浮动样式可以制作多种样式的表格. 代码如下: <ul id="ttttt" style=" ...
- HTML编辑模式下制作表格
前面有朋友问如何做图文并茂的音乐帖子,的确音乐能以表格式做出来,更能让人过目不忘,何况帖子制作过程本身就是创作,包含了制作人对音乐的理解和爱好.以下简单介绍用代码HTML制作表格,希望对大家有所帮助. ...
- iOS 制作表格 (数据源控制行,列数)
记得去年面试的过程中,有一个面试官问我怎么制作表格.由于之前也没有做过,当时有点懵逼,今天想起来了,就用tableview制作了一个,望不要有人像我一样掉坑了, 直接上代码: // // ViewCo ...
- [Swift通天遁地]二、表格表单-(4)使用系统自带的下拉刷新控件,制作表格的下拉刷新效果
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 优雅地使用 C++ 制作表格:tabulate
作者:HelloGitHub-ChungZH 0x00 介绍 tabulate tabulate 是一个使用 C++ 17 编写的库,它可以制作表格.使用它,把表格对齐.格式化和着色,不在话下!你甚至 ...
- 带你了解zabbix整合ELK收集系统异常日志触发告警~
今天来了解一下关于ELK的“L”-Logstash,没错,就是这个神奇小组件,我们都知道,它是ELK不可缺少的组件,完成了输入(input),过滤(fileter),output(输出)工作量,也是我 ...
- mogadm修改硬盘状态
#查看主机序列mogadm host list #查看空间快满的分区 df -h#检查硬盘序列和状态ls -l /data/mogile_data/ #查看mogadm目录下软链接的目录对应的分区 # ...
- 【Zabbix】在CentOS 7上搭建Zabbix服务,收集Windows客户端计数器性能数据(含过程中遇到的问题解决方法)
1.环境 1.1.关闭防火墙 命令:systemctl stop firewalld 或者 systemctl stop firewalld.service (备注:相应的,若要开启防火墙,将对应的& ...
- 一个快速制作表格的方法,和熬夜做表say拜拜
如今已是大数据时代了,统计工作是非常繁琐的一项工作,通常统计老师为了录单工作到下半夜或者是通宵,现在有了很多制作表单的软件,可以大大减轻基层统计老师的工作量,也增加了会员资料的保密性,给我们统计工作带 ...
随机推荐
- Android 内嵌 HTML5 并进行交互
Android与HTML5的交互主要是两个部分, 与HTML5的交互以及与JavaScript的交互, 与HTML5的交互可以通过注册onclick事件转化为与JavaScript的交互 Androi ...
- oracle11g导出表时空表导不出解决方案
oracle11g用exp命令导出数据库表时,有时会发现只导出了一部分表时而且不会报错,原因是有空表没有进行导出,之前一直没有找到方法于是用最笨的方法重新建这些空表,当然在我们实际当中表的数量大时我们 ...
- Android面试收集录6 事件分发机制
转自:秋招面试宝典. 一. 基础认知 1.1 事件分发的对象是谁? 答:事件 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件). Touch事件相关细节(发 ...
- 计算机指令集CISC与RISC
当接触一新CPU时商家会首先描述它是RISC指令集,这意味着什么,从这个描述你能了解多少CPU特性信息? 复杂指令集计算机(CISC) 长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集 ...
- Spring MVC重定向和转发
技术交流群:233513714 转发和重定向 开始Java EE时,可能会对转发(forward)和重定向(redirect)这个两个概念不清楚.本文先通过代码实例和运行结果图片感性 认识二者的区别, ...
- centos使用--rpm和yum的关系以及基本用法
1 RPM包 RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的"添加/删除程序" rpm 执行安装包 二进制包(Binar ...
- PowerShell脚本授权最佳实践
[TechTarget中国原创] Windows PowerShell已成为微软在Windows Server上提供的首选管理界面.因为深度整合到Windows Server操作系统,PowerShe ...
- 用js做的表单的增,删,以及全选
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>创 ...
- linux socket c/s上传文件
这是上传文件的一个示例,可以参照自行修改成下载或者其它功能. 在上传时,需要先将文件名传到服务器端,这是采用一个结构体,包含文件名及文件名长度(可以用于校验),防止文件名乱码. client #inc ...
- 六、OCP 开闭原则
OCP原则:“对扩展开放,对修改关闭” 这句话是简述,其实隐藏了重要的主语.真正的意义是:对使用者修改关闭,对提供者扩展开放. 例如: class A 和 class B.A调用了B的一个方法,那么A ...