zoukankan      html  css  js  c++  java
  • zabbix3.2监控vcenter和exsi信息

    简介

    为了解

    ESXI虚拟主机的运行状况,通过zabbix进行监控,图形展示ESXI虚拟主机当前的状态,避免因为esxi服务器因为资源利用率过高导致

     

    概述

    从 Zabbix 2.2.0 开始支持对 VMware 的监控。

     

    Zabbix 可以使用 low-level discovery 自动发现 VMware hypervisors 和 虚拟机,并根据事先定义的主机原型,为这些虚拟机建立 Host,添加监控。

     

    Zabbix 中默认提供了几个模板,可以直接用来监控 VMware vCenter 或 ESX hypervisor,支持 VMware vCenter 或 vSphere 版本最低为 4.1。

     

    细节

    虚拟机监控分两个步骤完成。首先,Zabbix 是通过 vmware collector 进程来监控虚拟机。这些进程通过 SOAP 协议从 VMware Web 服务获取必要的信息,对其进行预处理并存储到 Zabbix server 共享内存中。然后,zabbix pollers 通过 zabbix 简单检查 VMware keys 来检索这些数据。

     

    从 Zabbix 2.4.4 开始,收集的数据分为两种类型:VMware 配置数据和 VMware 性能数据。这两种类型都由 vmware collectors 进程独立收集。因此,建议启用比受监控的 VMware 服务更多的收集器。否则,检索 VMware 性能统计信息可能会由于检索 VMware 配置数据而延迟(比较大型的环境,需要一段时间)。

     

    目前基于 VMware 性能统计信息只有数据存储,网络接口和磁盘设备统计信息和自定义性能计数器项。

     

    注意:由于监控进程使用soap协议获取虚拟机信息,直接通过https://ip/sdk,返回400是正常现象

     

    整体步骤:

    1.修改服务端的zabbix_server.conf文件打开对vmware监控的支持

    2.在vcenter的机器上添加zabbixmonitor只读用户作为监控专用账户

    3.服务端添加vcenter的监控模板和宏

     

    说明:vcenter服务端不需要安装zabbix_agent客户端

     

    准备

    要使虚拟机监控正常工作,编译 Zabbix 时应加上 –with-libxml2 和 –with-libcurl 编译选项。

     

    1.调整虚拟机监控:

     

    # zabbix服务端操作

     

    #修改配置文件 egrep -v '^$|^#' etc/zabbix_server.conf

    StartPollers=15

    StartTrappers=15

    StartVMwareCollectors=10

    VMwareFrequency=30

    VMwarePerfFrequency=60

    VMwareCacheSize=160M

    VMwareTimeout=300

     

    其中: 

    StartVMwareCollectors:vmware 收集器实例的数量。 

    此值取决于要监控的 VMware 服务的数量。在大多数情况下,这应该是: 

    servicenum < StartVMwareCollectors < (servicenum * 2)

    其中 servicenum 是 VMware 服务的数量。例如:如果您有 1 个 VMware 服务要将 StartVMwareCollectors 设置为 2,那么如果您有 3 个 VMware 服务,请将其设置为 5。请注意,在大多数情况下,此值不应小于 2,不应大于 VMware 数量的 2 倍服务。 

    VMwareCacheSize:VMwareFrequency=10。 

    用于存储VMware数据的共享内存大小。 

    VMwareFrequency:从单个VMware服务收集数据之间的延迟(秒)。 

    VMwarePerfFrequency:从单个VMware服务检索性能计数器统计信息之间的延迟(秒)。 

    VMwareTimeout:响应超时时间

     

    # 重启zabbix的服务端

    # /etc/init.d/zabbix_server restart

    查看启动日志

     

     

    # 重启服务端,观察日志,发现VMware monitoring:         YES说明开启成功

     

     12584:20180902:232254.601 ****** Enabled features ******

     12584:20180902:232254.601 SNMP monitoring:           YES

     12584:20180902:232254.601 IPMI monitoring:            NO

     12584:20180902:232254.601 Web monitoring:            YES

     12584:20180902:232254.601 VMware monitoring:         YES

     12584:20180902:232254.601 SMTP authentication:       YES

     12584:20180902:232254.601 Jabber notifications:       NO

     12584:20180902:232254.601 Ez Texting notifications:  YES

     12584:20180902:232254.601 ODBC:                       NO

     12584:20180902:232254.601 SSH2 support:               NO

     12584:20180902:232254.601 IPv6 support:               NO

     12584:20180902:232254.601 TLS support:                NO

     

     

    配置

    前面说过,Zabbix中默认提供了几个模板,可以直接用来监控 VMware vCenter 或 ESX hypervisor。由于我们的ESXI主机使用vCenter集中管理,因此使用zabbix监控vCenter。

     

    1.添加主机

    “主机”页面只需填写“主机名称”、“可见的名称”即可,“agent代理程序的接口”需要写 443

    很多文档都说填写port为80,这个是错误的,需要填写443

    2.添加模板

    “模板”页面只需添加“Template Virt VMware”即可。“Template VM VMware“模板应用于 VMware vCenter 和 ESX hypervisor 监控。 ”Template VM VMware Guest“和”Template VM VMware Hypervisor“模板由自动发现使用,通常设置为自动链接到主机

    3.设置宏

     

    {$PASSWORD} => zabbixmonitor

    {$URL} => https://192.168.254.69/sdk

    {$USERNAME} => zabbixmonitor

     

    {$URL} - VMware 服务 (vCenter or ESX hypervisor) SDK URL (https://servername/sdk).

    {$USERNAME} - VMware 服务用户名

    {$PASSWORD} - VMware 服务{$ USERNAME}用户密码

    安全起见,在vCenter 上只需为zabbix添加一个只读用户zabbixmonitor即可

     

    ssh登录vcenter服务器,添加一个普通用户,并将这个用户添加到vcenter的只读组中

    # 添加只读用户

    [root@zabbix:/usr/local/zabbix-3.2.0]# ssh -p22 192.168.254.69

     

    VMware vCenter Server Appliance 6.5.0.10000

     

    Type: vCenter Server with an embedded Platform Services Controller

     

    root@192.168.254.69's password:

    Last login: Mon Sep  3 14:32:44 2018 from 192.168.254.148

    Connected to service

     

        * List APIs: "help api list"

        * List Plugins: "help pi list"

        * Launch BASH: "shell"

     

    Command> shell

    Shell access is granted to root

    root@localhost [ ~ ]#

     

    # 添加zabbixmonitor用户

    root@localhost [ ~ ]# useradd zabbixmonitor

    root@localhost [ ~ ]# echo 'zabbixmonitor' | passwd --stdin zabbixmonitor

    root@localhost [ ~ ]# passwd zabbixmonitor

     

    root@localhost [ ~ ]# tail -n 1 /etc/passwd

    zabbixmonitor:x:1020:100::/home/zabbixmonitor:/bin/appliancesh

    可以访问需要调用的接口https://192.168.254.69/mob

    输入刚才的只读用户账号秘密zabbixmonitor

    注意在vcenter6.7版本中添加的只读用户要对子项目授权,否则无法监控exsi,因为权限不足如下:

    自动发现vmware终端机器需要关闭,因为我们已经像监控物理机一样添加了vmware终端机器

    已经自动添加的需要删除

    自动发现一段时间,如果觉得慢可以改一下自动发现的时间(不建议,会浪费大量服务器性能)

    自动发现的集群

    启动发现的exsi

    添加图形展示cpu的使用情况

    网络使用情况

    Cpu的使用率

    cpu核心数:
    vmware.hv.hw.cpu.num[{$URL},{HOST.HOST}]

    cpu主频:
    vmware.hv.hw.cpu.freq[{$URL},{HOST.HOST}]

    cpu已经使用情况(频率):
    vmware.hv.cpu.usage[{$URL},{HOST.HOST}]

    可以得出,如果想计算cpu使用率: cpu已经使用的频率 / (CPU主频 * cpu核心数)  乘以 100% 就是使用率

    Configuration-->Templates-->Template Virt VMware Hypervisor-->items-->create item

    name:

    hypervisor_cpu_used_percent

     

    type:

    Calculated #计算类型

     

    key:

    vmware.hv.cpu[usedpercent]

     

    Formula:

    100*last("vmware.hv.cpu.usage[{$URL},{HOST.HOST}]")/(last("vmware.hv.hw.cpu.freq[{$URL},{HOST.HOST}]")*last("vmware.hv.hw.cpu.num[{$URL},{HOST.HOST}]"))

     

    Applications:

    CPU

    添加触发器,当cpu使用率大于60%时触发报警

    内存使用率的监控

    内存使用率

     

    1.创建item

    Configuration-->Templates-->Template Virt VMware Hypervisor-->items-->create item

     

    name:

    hypervisor_cpu_used_percent

     

    type:

    Calculated #计算类型

     

    key:

    vmware.hv.memory[usedpercent]

     

    Formula:

    100*last("vmware.hv.memory.used[{$URL},{HOST.HOST}]")/last("vmware.hv.hw.memory[{$URL},{HOST.HOST}]")

     

    Applications:

    memory

    内存使用率超过85%报警

    在监控到vcenter以后,cpu和内存使用率需要等待一段时间才能生效

    此模板和规则适用于 zabbix4.0.10 和 vcenter5.x及vcenter 6.x

  • 相关阅读:
    CODING x 百果园 _ 水果零售龙头迈出 DevOps 体系建设第一步
    Nocalhost 亮相 CD Foundation 国内首届 Meetup,Keith Chan 将出席致辞
    做云原生时代标准化工具,实现高效云上研发工作流
    打造数字化软件工厂 —— 一站式 DevOps 平台全景解读
    WePack —— 助力企业渐进式 DevOps 转型
    CODING Compass —— 打造行云流水般的软件工厂
    Nocalhost —— 让云原生开发回归原始而又简单
    CODING 代码资产安全系列之 —— 构建全链路安全能力,守护代码资产安全
    Nocalhost:云原生开发新体验
    使用 Nocalhost 开发 Kubernetes 中的 APISIX Ingress Controller
  • 原文地址:https://www.cnblogs.com/reblue520/p/9643656.html
Copyright © 2011-2022 走看看