zabbix使用自动发现监控esxi的磁盘存储storage
zabbix使用自动发现监控esxi的磁盘存储storage
在任意一台可以访问vcenter的zabbix-agent服务器上添加exsi的磁盘监控模板即可
创建模板过程:
custom.esxi.discovery



画图:

注意要选择浮点型,否则可能不支持

添加触发器:当磁盘使用率超过85%时触发报警

自动发现的脚本:
[root@wondershareID_web03:~]# cat /usr/local/zabbix_agents_3.2.0/scripts/zabbix_esxi_storage.py
#!/usr/bin/python3
#coding:utf-8
#Author: ziming """
只用于模拟开发功能测试
"""
from pyVmomi import vim
from pyVim.connect import SmartConnect, Disconnect, SmartConnectNoSSL
import sys
import atexit
import argparse
from optparse import OptionParser
import json class Exsi(object): # 获取vcenter的相关参数
def __init__(self, host = '192.168.254.69', port=443, user = 'zabbixmonitor', password='zabbixmonitor'):
self._host = host
self._port = port
self._user = user
self._password = password def get_obj(self,content, vimtype, name=None):
'''
列表返回,name 可以指定匹配的对象
'''
container = content.viewManager.CreateContainerView(content.rootFolder, vimtype, True)
obj = [ view for view in container.view]
return obj def get_conn(self):
# 连接vcenter
si = SmartConnectNoSSL(
host=self._host,
user=self._user,
pwd=self._password,
port=self._port)
# disconnect this thing
atexit.register(Disconnect, si)
content = si.RetrieveContent()
return content # 获取exsi的信息ip,磁盘使用情况等
def get_esxi_host(self):
esxi_host = {}
content = self.get_conn()
esxi_obj = self.get_obj(content, [vim.HostSystem])
for esxi in esxi_obj:
esxi_host[esxi.name] = {'datastore':{}} # for ds in esxi.datastore:
# esxi_host[esxi.name]['datastore'][ds.name] = {}
# esxi_host[esxi.name]['datastore'][ds.name]['总容量(G)'] = int((ds.summary.capacity)/1024/1024/1024)
# esxi_host[esxi.name]['datastore'][ds.name]['空闲容量(G)'] = int((ds.summary.freeSpace)/1024/1024/1024)
# esxi_host[esxi.name]['datastore'][ds.name]['类型'] = (ds.summary.type) total_capacity = 0
free_capacity = 0
for ds in esxi.datastore:
# esxi_host[esxi.name]['datastore'][ds.name] = {}
esxi_host[esxi.name] = {}
total_capacity += int((ds.summary.capacity)/1024/1024/1024)
free_capacity += int((ds.summary.freeSpace)/1024/1024/1024) esxi_host[esxi.name]['sotrage_used_percent'] = 100*(total_capacity - free_capacity)/total_capacity
# print(esxi_host)
return esxi_host # 获取exsi的host即ip列表
def get_esxi_iplist(self):
esxi_host = self.get_esxi_host()
data = list()
for exsi_ip in esxi_host:
data.append({"{#EXSI_IP}": exsi_ip}) return json.dumps({'data': data}, sort_keys=True, indent=7, separators=(",",":")) # 获取指定esxi的磁盘信息
def get_esxi_storageinfo(self, exsi_ip):
esxi_host = self.get_esxi_host() return esxi_host[exsi_ip]['sotrage_used_percent'] def main():
try: usage = "usage: %prog [options]\ngGet exsi Stat"
parser = OptionParser(usage) # 接收参数
parser.add_option("-l", "--list",
action="store_true", dest="is_list", default=False, help="if list all exsi ip") parser.add_option("--ip", "--ipaddr",
action="store", dest="ipaddr", type="string",
default="192.168.254.56", help="execute 'exsi info' to see more infomation") (options, args) = parser.parse_args()
if 1 >= len(sys.argv):
parser.print_help()
return #exsi_ins = Exsi(options.ipaddr)
exsi_ins = Exsi()
if options.is_list == True:
print(exsi_ins.get_esxi_iplist())
return # print(redis.ins.get_esxi_storageinfo(optins.ip, exsi_ip = ip))
print(exsi_ins.get_esxi_storageinfo(options.ipaddr)) except Exception as expt:
import traceback
tb = traceback.format_exc()
print(tb) if __name__ == '__main__':
main()
配置文件
# vim /usr/local/zabbix_agents_3.2.0/conf/zabbix_agentd.conf
UserParameter=custom.esxi.discovery, /usr/bin/python3 /usr/local/zabbix_agents_3.2.0/scripts/zabbix_esxi_storage.py --list
UserParameter=custom.esxi.item[*],/usr/bin/python3 /usr/local/zabbix_agents_3.2.0/scripts/zabbix_esxi_storage.py --ip $1
zabbix使用自动发现监控esxi的磁盘存储storage的更多相关文章
- zabbix自动发现监控url
1.在监控客户机上 web_site_code_status.sh: #!/bin/bash UrlFile="/opt/scripts/WEB.txt" IFS=$'\n' we ...
- zabbix的自动发现、自定义添加监控项目、配置邮件告警
1.zabbix的自动发现这里的自动发现,所显示出来的是规则的上自动了现 然后 可以对其内容进行相关的配制,如时间或周期 注意:对于单个主机的规则,可以自行添加或删除, 但对于已经添加好了的规则,若需 ...
- zabbix自动发现监控mysql
一. 数据库给只读权限 1.1 grant usage on *.* to 'zabbix'@'127.0.0.1' identified by 'zabbix'; flush privileges; ...
- 【Zabbix】Zabbix Server自动发现
Zabbix自动发现 由于有上百台的虚拟机需要监控,如果一个个去添加配置,费时费力.Zabbix的自动发现,可以自动发现需要监控的机器,监控相应指标. 前置条件 安装部署好Zabbix Server. ...
- 01 - zabbix | LLD自动发现
01 - zabbix | LLD自动发现 1. 原理 zabbix支持设置变量,用{#VAR_NAME}来表示.然后有一些系统保留的变量 2. 设置 2.1 交换机电源自动发现 名字写好后进进入 ...
- zabbix自定义自动发现模板
需求: 自定义发现磁盘io,并实现监控.其他的业务组件自动发现监控其实也和这个大同小异,自动发现主要逻辑就是你要根据组件规则自动匹配出需要监控的所有组件,再通过传参的方式获取对应组件数据. 自动发现无 ...
- Prometheus基于consul自动发现监控对象 https://www.iloxp.com/archive/11/
Prometheus 监控目标为什么要自动发现 频繁对Prometheus配置文件进行修改,无疑给运维人员带来很大的负担,还有可能直接变成一个“配置小王子”,即使是配置小王子也会存在人为失误的情况 ...
- 使用 zabbix 自动发现监控 MySQL
介绍 使用 zabbix 的 low-level 自动发现功能完成单主机多端口的监控, 详见low_level_discovery, 整体上监控类似 percona 的 zabbix 监控插件, 不过 ...
- Zabbix自动发现监控Tomcat进程
1.编辑自动发现脚本 自动发现脚本只支持JSON格式 #!/usr/bin/env python # -*- coding:utf-8 -*- import commands import psuti ...
随机推荐
- iOS开发基础篇-transform属性
一. transform 属性 在OC中,通过 transform 属性可以修改对象的平移.缩放比例和旋转角度. 1)创建“基于控件初始位置”的形变 CGAffineTransformMakeRot ...
- 基于 HTML5 WebGL 的 3D 工控裙房系统
前言 工业物联网在中国的发展如火如荼,网络基础设施建设,以及工业升级的迫切需要都为工业物联网发展提供了很大的机遇.中国工业物联网企业目前呈现两种发展形式并存状况:一方面是大型通讯.IT企业的布局:一方 ...
- docker 在centos6 和centos7上的区别
这些天研究了下docker,在centos6.6上装了个docker1.7.1,在centos7.6上装了个docker18.09.0 两者还是有区别的. 1.配置docker国内镜像加速 Dock ...
- hdu-1052(贪心)
链接 [https://vjudge.net/contest/261555#problem/I] 题意 就是两个人都有n匹马,每只马都有战力 第二个人出马的顺序是战力大到小,请问第一个人采取怎样的策略 ...
- 网络基础之HTTP、TCP/IP、Socket
一.HTTP相关 https://www.cnblogs.com/sunny-sl/p/6529830.html https://www.cnblogs.com/ranyonsue/p/5984001 ...
- Jupyter Notebook(推荐使用Anaconda安装)
一.Jupyter Notebook介绍 1.简介 Jupyter Notebook是基于网页的用于交互计算的应用程序.其可被应用于全过程计算:开发.文档编写.运行代码和展示结果. 简而言之,Jupy ...
- java并发编程实践——王宝令(极客时间)学习笔记
1.并发 分工:如何高效地拆解任务并分配给线程 同步:线程之间如何协作 互斥:保证同一时刻只允许一个线程访问共享资源 Fork/Join 框架就是一种分工模式,CountDownLatch 就是一种典 ...
- centos7修改网卡名称为eth0
原文链接:https://www.cnblogs.com/freeblogs/p/7881597.html 在安装系统的时候配置: 修改内核选项:net.ifnames=0 biosdevname=0 ...
- win+R启动列表
屌丝才用windows,无奈~ """ Win+R 快速启动的命令: 系统应用程序: calc - 启动计算器 charmap - 启动字符映射表 chkdsk - Ch ...
- elk插件以及分词器安装
ElasticSearch-Head 安装配置因为安装 ElasticSearch-Head 需要使用到 npm 包管理器,所以需要我们提前安装好 NodeJS ,安装 NodeJS 的方法可以参考: ...