Zabbix使用snmptrap方式监控vCenter Server

简介

本文介绍如何通过snmp trap的方式发送vCenter上的告警到zabbix server,并通过zabbix server发送邮件告警通知,配置好后,邮箱收到的告警格式如下

一、前置条件

1)安装好zabbix-server,zabbix-server节点安装好net-snmp软件
2)下载vCenter Server 的mib文件
登录vmware官网
https://customerconnect.vmware.com/cn/downloads/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/6_5

选择对应得版本

下载mib文件

二、zabbix 服务器配置

1)zabbix server开启snmptrap接收

vim /usr/local/etc/zabbix_server.conf
开启StartSNMPTrapper并将值设置为1

重启zabbix server
systemctl restart zabbix-server.service

2)配置snmptrapd

复制zabbix trap脚本到/usr/bin/下
cp /opt/packages/zabbix-5.0.15/misc/snmptrap/zabbix_trap_receiver.pl /usr/bin/
注:本人环境中的zabbix_trap_receiver.p脚本在/opt/packages/zabbix-5.0.15/misc/snmptrap/下,此处按实际情况处理,若是不清楚自己环境中zabbix_trap_receiver.pl脚本的绝对路径,可以使用find / -name zabbix_trap_receiver.pl指令查找

编辑snmptrap配置文件
vim /etc/snmp/snmptrapd.conf
添加如下行

disableAuthorization  yes
perl do "/usr/bin/zabbix_trap_receiver.pl"


查看mib文件的存放目录
net-snmp-config --default-mibdirs

将下载好的vmware mib库文件解压后上传到zabbix服务器/usr/share/snmp/mibs下(其实只需要用到VMWARE-VC-EVENT-MIB.mib文件)

编辑snmp.conf
vim /etc/snmp/snmp.conf添加如下行
mibs +VMWARE-VC-EVENT-MIB

重启snmptrapd服务
systemctl restart snmptrapd

4)配置zabbix发件邮箱

登录zabbix
点击”管理”→”报警媒介类型”→Email


填写邮箱认证信息(配置认证邮箱的前提是zabbix-server节点和邮箱服务器能够通信)

填写好后点击右侧的”测试”,填写好收件人后,测试是否能发送邮件

5)创建vmware主机组并添加vCenter主机

点击”配置”→”主机群组”→”创建主机群组”添加主机组

填写好主机组名后点击添加

点击”配置”→”主机”→”创建主机”添加主机

填写好主机信息后点击添加
其中主机名称可以填写vCenter的ip地址

6)创建vCenter主机监控项和触发器

点击”配置”→”主机”→<具体的主机>

点击右上方的”创建监控项”

填写监控项信息后点击添加

本人配置的vCenter的监控项有如下三个

三个监控项的具体配置如下
vmware snmptrap项

vCenter ping check项

telnet 443 port 项

点击”触发器”→”创建触发器”创建警报触发器

本人配置的vCenter的触发器有如下三个,分别对应三个触发器



注:对于snmptrap的触发器,问题事件生成类型一定要选择多重

7)创建vmware主机用户和用户组

点击”管理”→”用户群组”→”创建用户群组”添加用户组

添加用户群组并给用户群组赋权


点击”管理”→”用户”→”创建用户”添加用户

填写用户信息并设置报警媒介

8)创建警报动作

点击”管理”→”动作”→”创建动作”添加动作

目前对于vmware有2种报警动作
第一种是ping和telent的报警动作
设置如下
条件设置如下图

操作项填写如下

主题:

故障告警:{TRIGGER.NAME}

消息:

告警主机:{HOST.NAME}
告警时间:{EVENT.DATE}  {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

恢复操作项填写如下

主题:

恢复{TRIGGER.STATUS}, 服务器名:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

消息:

主机IP地址:{HOST.IP}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

第二种是snmptrap告警的动作
条件项设置如下

操作项设置如下


主题:

vmware虚拟化告警:{HOST.NAME}

消息:

告警时间:{ITEM.VALUE1}

9)十、修改zabbix_trap_receiver.pl,定制化告警内容

默认脚本发出的告警内容如下,内容可阅读性极差

编辑zabbix_trap_receiver.pl脚本做一些修改优化告警内容
vim /usr/bin/zabbix_trap_receiver.pl
在ZBXTRAP行添加换行符

注释pdu info信息,修改print OUTPUT_FILE行内容

修改foreach my $x (@varbinds)内的内容如下

       foreach my $x (@varbinds){if( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdTargetObjType.0" and "$x->[1]" eq "INTEGER: 1" ){print OUTPUT_FILE "对象类型:未知\n";}elsif ( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdTargetObjType.0" and "$x->[1]" eq "INTEGER: 2" ){print OUTPUT_FILE "对象类型: 主机\n";}elsif ( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdTargetObjType.0" and "$x->[1]" eq "INTEGER: 3" ){print OUTPUT_FILE "对象类型:虚机\n";}elsif ( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdTargetObjType.0" and "$x->[1]" eq "INTEGER: 4" ){print OUTPUT_FILE "对象类型:其他\n";}elsif ( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdOldStatus.0" ){printf OUTPUT_FILE "旧状态为%s\n", $x->[1];}elsif ( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdNewStatus.0" ){printf OUTPUT_FILE "当前状态为%s\n", $x->[1];}elsif ( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdObjValue.0" ){printf OUTPUT_FILE "警报内容为%s\n", $x->[1];}elsif ( "$x->[0]" eq "VMWARE-VC-EVENT-MIB::vmwVpxdTargetObj.0" ){printf OUTPUT_FILE "警报对象为%s\n", $x->[1];}elsif ( "$x->[0]" eq "SNMP-COMMUNITY-MIB::snmpTrapAddress.0" ){printf OUTPUT_FILE "报警vCenter为%s\n", $x->[1];}else{print "mib内容不输出";}#printf OUTPUT_FILE "  %-30s type=%-2d value=%s\n", $x->[0], $x->[2], $x->[1];}


保存退出并重启snmptrapd
systemctl restart snmptrapd
修改后收到的报警内容如下

10)vCenter上启用snmptrap方式报警并配置snmp警报定义

登录vCenter
点击<数据中心>→”配置”→”编辑”

选择SNMP接收方后,启用用receiver,填写接收方URL、端口和团体名后,点击保存。

至此,vCenter上定义了发送SNMP陷阱的警报定义触发后都会送达snmp接收方

对于没有配置snmp陷阱的警报定义,如果想要触发告警时发送snmp陷阱,可以对现有的警报定义编辑,打开snmp陷阱
以虚拟机内存使用情况为例,选择警报后点击编辑,在警报规则处打开发送SNMP陷阱,则触发该告警后则会发送给snmp接收方。


vmware也支持自定义警报,对此感兴趣的小伙伴可以自行研究

如何获取vmware默认的警报定义以及是否触发snmp告警请参考
https://blog.csdn.net/weixin_38333521/article/details/121221714

Zabbix使用snmptrap方式监控vCenter Server相关推荐

  1. zabbix 通过 zabbix-agent 方式监控 Windows主机

    1.实验环境 实验环境基于上一篇博文中的实验环境<zabbix 通过 SNMP 监控 Windows主机> 上一篇博文链接:https://www.jianshu.com/writer#/ ...

  2. zabbix专题:第十一章 zabbix之SNMP方式监控

    (SNMP基本都是监控网络设备,本文介绍点理论知识) 概述 如果我们需要监控打印机.路由器.UPS等设备,肯定不能使用zabbix agentd,因为他们不能安装软件的,还好他们一般都支持SNMP协议 ...

  3. Zabbix以trapper方式监控MySQL备份文件

    背景: 生产上有台mysql服务器每天以定时任务方式用mysqldump命令进行数据库逻辑备份,定时任务执行时间为23:30,备份时长5分钟左右,生成的备份文件命名方式为'mysql-$(date + ...

  4. 第3章 安装和配置vCenter Server

    第3章安装和配置vCenter Server 在当今大多数信息系统中,客户端-服务器体系结构是至高无上的.这种立场是因为客户端-服务器体系结构可以集中资源管理,并为最终用户和客户端系统提供对这些资源的 ...

  5. Zabbix的SNMPTrap监控配置

    SNMPTrap监控主要用于设备发生故障时的主动通知的监控.以下简单记录下Zabbix的SNMPTrap的配置方法. 一.SNMPTrap监控的处理流程说明 1.监控对象发送SNMPTrap信息到sn ...

  6. zabbix监控vCenter

    看了很多的博客,各种教程,监控vCenter,但是总是在最后一步有问题,所以自己梳理一下步骤,以防失忆. 修改zabbix-server参数 看了文档说,需要编译两个模块(--with-libxml2 ...

  7. 初识zabix --zabbix的数据采集方式,监控报警及proxy

    zabbix监控nginx服务 环境介绍: 172.25.40.11: zabbix-server Zabbix-agent 172.25.40.6: Zabbix-agent nginx-1.14. ...

  8. zabbix4.0使用snmp代理方式监控vcenter6.5

    公司使用的是vsphere6.5,使用vcenter6.5进行管理,vcenter部署的是vcsa(vCenter Server Appliance),本质是一台linux虚拟机. 在使用vspher ...

  9. 介绍Zabbix的两种监控模式(主动模式和被动模式)

    Zabbix  agent检测分为两种模式:主动模式和被动模式 被动模式,也是默认的Zabbix监控模式,被动模式是相对于proxy来说的.proxy主动发送数据就是主动模式,proxy等待serve ...

  10. zabbix安装使用及监控案例(从头到尾)

    前文提要:本文为整个zabbix的介绍及配置以及案例 目录 一.监控的概述 二.zabbix的概述 1.zabbix是什么 2.zabbix的作用 3.zabbix的特性 4.zabbix系统的组成 ...

最新文章

  1. ios 上传图片失败 小程序_小程序图片自动压缩配置
  2. DEDECMS模块插件制作举例-模块生成向导
  3. tmap的使用_MapInfo教程--二次开发入门
  4. 本地yum仓库以及网络版yum的私有仓库详细的安装配置
  5. AES和RSA前后端加解密
  6. React Native商城项目实战04 - 封装TabNavigator.Item的创建
  7. 从72万现金到骨灰盒,还有什么是不能被忘在网约车上的?
  8. javascript 中的prompt 用法
  9. Hibernate 中Property中的formula属性的使用
  10. 利用JSP编程技术实现一个简单的购物车程序
  11. Jupyter Notebook 数学公式
  12. php表格行数怎么设置,表格怎么排版
  13. 服务器常见问题:服务器使用过程中感觉不流畅、卡顿
  14. Mac键盘符号说明(全)
  15. 2018 Android 框架汇总(转)
  16. 简单明了理解交叉验证
  17. JAVA判断两个数是否亲和数_亲和数
  18. Mac终端命令和连接服务器
  19. Java通过jacob生成动态word,还有一种方法通过word书签实现
  20. 对某邮件盗号诈骗团队的追踪分析和研究

热门文章

  1. HTML期末作业我的家乡静态网页设计
  2. GitHup使用指南——安装及上传
  3. 一文学会SPSS软件
  4. 尚学堂百战程序员--第四章
  5. Python编写软件与从倍福PLC通讯软件
  6. 智慧办公室空间管理系统方案优点
  7. 计算机房通气换气次数,不知道换气次数如何确定?各种换气次数汇总,暖通设计师的宝典...
  8. 【雕虫小技第10篇】scratch编程技巧之源码素材快速导出为png或者svg格式
  9. 西门子S7-300 PLC视频教程(百度网盘)收集于网络-供参考学习
  10. stm8s103k3 周期 捕获_stm8s103k3的UART发送数据问题