Zabbix使用snmptrap方式监控vCenter Server「建议收藏」

Zabbix使用snmptrap方式监控vCenter Server「建议收藏」Zabbix使用snmptrap方式监控vCenterServer6.5简介本人介绍如何通过snmptrap的方式发送vcenter上的告警到zabbixserver,并通过zabbixserver发送邮件告警通知,配置好后,邮箱收到的告警格式如下一、前置条件1)安装好zabbix-server,zabbix-server节点安装好net-snmp软件2)下载vCenterServer的mib文件登录vmware官网https://customerconnect.vmware.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171399.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • DSP的入门教程「建议收藏」

    DSP的入门教程「建议收藏」(1)第一步:打开CCS5.2,新建一个工程。(2)第二步:输入工程名后点击“finish”如图(3)第三步:右键单击工程名-“properties“如图(4)第四步:所有头文件路径添加完成后,点击“ok”,如图(5)第五步:添加工程所需头文件,如图依次添加需要头文件,添加时按下图添加:添加完成后,如图:(6)第六步:程序编写(7)第七步:对程序进行编译。编译结果:…

    2022年9月7日
    0
  • Runnable 和Callable的实现与区别,应用场景

    Java提供了三种创建线程的方法1:通过实现Runnable接口2:通过继承Thread接口3:通过Callable和Future创建线程相同点都是接口都可以编写多线程程序都采用Thread.start()启动线程不同点(1)Callable规定的方法是call(),Runnable规定的方法是run()。其中Runnable可以提交给Thread来包装下,直接启动一个…

    2022年4月9日
    94
  • 改名了,一个新的开始

    怕什么真理无穷进一步有近一步的欢喜这个是我电脑桌面壁纸1又有一段时间没来这里了,看了上次发文的日期是2021年10月31日,已经快过去三个月了。上次发文还是2021现在已经到2022年了,…

    2022年3月1日
    40
  • Ubuntu 设置 WIFI 热点

    Ubuntu 设置 WIFI 热点

    2021年9月16日
    56
  • 3D移动 translate3d

    3D移动 translate3d3D转换我们主要学习工作中最常用的3D位移和3D旋转主要知识点3D移动在2D移动的基础上多加了一个可以移动的方向,就是z轴方向。translform:translateX(100px):仅仅是在x轴上移动 translform:translateY(100px):仅仅是在Y轴上移动 translform:translateZ(100px):仅仅是在Z轴上移动(注意:translateZ一般用px作单位) transform:translate3d(x,y,z):其中x、y、z分别指要移动的

    2022年10月23日
    0
  • docker搭建kafka集群[通俗易懂]

    docker搭建kafka集群[通俗易懂]docker搭建kafka集群我在M1mbp上使用的以下镜像新建文件zk-kafka-docker-compose.ymlversion:”2″services:zookeeper:user:rootimage:docker.io/zookeeperports:-“12181:2181″environment:-ALLOW_ANONYMOUS_LOGIN=yesvolumes:-zoo

    2022年4月25日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号