基于Zabbix系统监控方案-Windows、Linux、VMware等_第1页
基于Zabbix系统监控方案-Windows、Linux、VMware等_第2页
基于Zabbix系统监控方案-Windows、Linux、VMware等_第3页
基于Zabbix系统监控方案-Windows、Linux、VMware等_第4页
基于Zabbix系统监控方案-Windows、Linux、VMware等_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于Zabbix系统监控方案Windows、Linux、VMware等

【导读】本文介绍了Zabbix基本概念及其特点,阐述Zabbix系统环境搭建与基础安装,如何实现对各类操作系统、硬件设备、应用软件监控告警。目录1介绍2指标3安装部署4Windows系统状态监控5Windows系统硬件信息获取6Linux系统状态监控7Linux系统硬件信息获取8VMware虚拟平台监控9邮件告警10微信告警1介绍1.1摘要本文深入浅出,切近实际运维应用,由zabbix3.4版本入手,学习zabbix监控告警实现方式,由zabbix5.0浅出实现快速部署、快速应用。本人从业多年,关注zabbix开源社区,以及zabbix官方组织的各种峰会,了解到的前沿技术,因随着运维监控软件的不断发展,未来软件将是开箱即用的模式,运维人员在使用监控软件,不必再去花精力编写运维监控程序,而是完善监控项,这样的方式对于初学者越来越不容易学习。因此,学习zabbix3.4版本是非常必要的,zabbix官方那时候还没有集成更多的模板以直接使用,那里有大量的监控项需要自己编写实现,不仅全面了解了zabbix,也是对linux命令、shell脚本、Python语言等的很好学习,也有助于二次开发,自定义监控项的配置。1.2背景以下是部署实施基于zabbix监控系统的建设背景,以解决诸多运维实际问题:目前公司系统运维主要采用人工检查的方式,问题发现的时效性较低,容易出现问题不被立刻发现,人工也容易疏忽漏查,导致问题处理不及时,影响信息化系统服务效果,就需要更好保障系统稳定运行。公司信息化系统、操作系统、设备种类多,各类信息化系统如:OA、U9,PLM、企业邮箱等,又有Linux、Windows、VMware、EMC等系统,设备有服务器、交换机、存储等,机房环境有动环系统进行监测。如此众多的信息化系统平台,当然需要统一运维界面,实时监测各系统运行状况,为运维工作提供便利。为适应时代的发展,未来是个智能化的时代,运维工作要实现自动化,运维工作者要向开发去转变,开发即运维,或许有一天人工智能将代替运维人员,而今的运维人员希望是人工智能创造者的一份子,了解自动化运维,与时俱进是非常必要的。综上,为了提高运维效率,节约人力资源,对设备、机房环境实时监控,能有效、实时发出告警信息,从而及时发现问题快速响应。急需一套能满足以上需求的监控系统,经考量zabbix监控系统应用广泛,可实现上述功能。1.3系统简介Zabbix是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标。Zabbix完全开源免费。Zabbix的主要特点有:指标收集:从任何设备、系统、应用程序上进行指标采集问题监测:定义智能阈值可视化:单一界面管理平台告警和修复:确保及时、有效的告警安全和认证:保护您所有层级的数据轻松搭建部署:大批模板,开箱即用,节省您宝贵的时间自动发现:自动监控大型动态环境分布式监控:无限制扩展ZABBIXAPI:将Zabbix集成到您IT环境的其他任何部分1.4名词术语Zabbix系统有一些自己定义的专业术语,为更好的熟悉系统名词,下面主要介绍本文以及zabbix常用的术语。主机(host)一台你想监控的服务器、工作站、交换机等网络设备,用IP或者域名表示。主机组(hostgroup)多台具有某种相同角色、属性的集合。例如,所有windows服务器放在一个叫“windowsserver”的主机组中。监控项(item)你想要监控、获取主机或主机组的哪些数据。例如:我想监控所有机器的CPU使用情况,则需要建一个监控项,用于获取所有服务器的CPU使用率。触发器(trigger)由逻辑表达式组成的按照预先设置好的阀值来评估由监控项采集到的数据。触发器有两种状态,分别为“问题”和“已解决”。例如:在上述通过监控项获取了CPU的使用率,假如我想超过CPU使用超过80%的就预警,则可以创建一个触发器,当监控项获取的值超过80%时就按照预设的情况报警,状态为“问题”;低于80%时认为报警解除,状态恢复为“已解决”。事件(event)单次发生的需要注意的事情,例如上述触发器状态由问题变成了正常或者由正常变成了问题,均可以称为一个事件。事件包括触发器事件、自动发现事件、自动注册事件和内部事件4个部分。动作(action)一个对事件做出反应的预定义的操作;例如CPU使用超过80%时,触发器状态变成了问题,即产生了一个事件,我们可以针对此事件预设一个动作(比如执行命令reboot),则系统会自动针对此事件的预设动作执行命令reboot。媒介(media)发送告警通知的手段或途径。例如:当CPU超过80%报警后,通过媒介(邮件、短信、自定义脚本、微信等)形式告知。模板(template)一组可以被应用到一个或多个主机上的实体(监控项,触发器,图形,聚合图形,应用,web场景等)的集合。简单的说,即多个监控项的集合。应用集(application)一组监控项组成的逻辑分组。例如,CPU的监控项,归集至cpu,在想查看有关cpu方面的信息时,可以直接在界面上提供的搜索框内查询所有有关cpu的信息。zabbixserverzabbix系统实现监控的核心程序,主要功能是与被监控主机、代理机等进行交互、触发器计算、发送告警通知、收集数据并存储等。zabbixagent一个部署在监控对象上的,能够主动监控本地资源和应用的程序;一般来讲,我们需要在所有被监控服务器上安装此程序。zabbixproxy一个帮助zabbixserver收集数据,分担zabbixserver的负载压力的程序;另外,还可以用在server与agent机器网络不通,使用proxy作为网络代理,实现两者的通信功能。1.5系统架构系统结构说明:由web、linux、php、mysql等组件部署安装,实现zabbixserver服务端;由被监控对象例如:Windows系统,linux系统、Vmware虚拟化平台、交换机,存储等组成了agent端。Zabbixserver可采用主动模式,获取agent上数据,也可采用被动模式,接收agent定时发送的数据。

2指标2.1软件版本版本选择说明:目前zabbix3版本成熟稳定,各大企业公司运维监控系统运行于该平台上,提供的监控项比zabbix第1和2版本丰富,完全能满足监控对象的需要;至今zabbix第3版已持续发布4年多时间,开源系统积累了大量的资料与研究人员,可供交流学习,能很好服务于zabbix定制化;zabbix4.0版本2018年10月正式发布,4.2版本于2019年4月正式发布,目前最新的是zabbix5.2版本,版本持续更新满足未来升级发展的需要,新版本增加了ELK、时序数据库,以及前端web优化,但监控本质并未发生大的变化。2.1硬件指标名称CPU/内存数据库可监控主机数量小型4核心/16GMySQL+500GB普通硬盘500台以内中型4核心/32GMySQL+500GB普通硬盘500-1000台大型8核心/64GMySQL+1TBRAID存储盘1000-3000台超大型16核心/128GMySQL+2TBRAID存储盘3000台以上Zabbix可以运行于虚拟环境也可以部署在服务器上,因zabbix采集数据主要是文本,对网络带宽要求不高,千兆速率足矣,只要满足性能上的要求即可,主要为CPU、内存和硬盘三项。结合zabbix官网给出的指标、实际监控项数量、历史记录保存时间长度。根据上表的参考标准,测试环境建议小型化部署。3安装部署Zabbix安装方式主要是两种:1、yum源安装2、zabbix源码安装,安装方法互联网上搜索非常多,这里就不再阐述。主要安装组件:PHP、Apache或Nginx、Mysql、Zabbix软件包。4windows系统状态监控本节介绍实现对windows系统状态监控。使用zabbix3.4版本,一起了解学习zabbix监控数据采集过程,这样对我们自定义监控项非常有帮助,提供方法扩展思路。诚然zabbix5.0

版本等高版本,许多监控项已经被zabbixagent集成,但那并不利于初学者学习与实践。通过在被监控主机上,部署安装zabbix_agent,实现事件查看器监控、CPU监控、内存监控、磁盘读写监控、磁盘容量监控、网卡流量监控、系统时间监控、系统进程和服务监控。考虑到公司使用的服务器目前多数为windowsserver,对于个别服务器安装了PC操作系统不深入研究,经测试Windows版本支持情况如下表:版本是否支持备注Windowsserver2003是需要运行32位程序Windowsserver2008是Windowsserver2012是Windows7是Windows10否测试zabbix-agent程序有报错4.1windows部署zabbix_agent为了监控window系统,首先需要在该系统下部署zabbix_agent代理,用于收集该系统信息。自研程序包列表:角色安装包说明适用版本基于zabbix-agent-3.4.6Zabbix目录binconfscriptWindowsserver2003、2008、20124.1.1解压安装Zabbixagent的原始文件为zabbix_agents_3.4.6.win.zip,一般部署是:解压在window服务器C盘根目录下,再改写conf下的配置文件。为了部署方便快捷,现提供已经配置成熟的zabbix目录,直接复制zabbix目录到window服务器的C盘根目录下,最后进行程序安装和启动。因此,涉及C:zabbixscriptconfzabbix_agentd.win.conf文件的均可以忽略,供学习与交流。cmd或powershell下安装和启停命令如下:

cdC:zabbixbinwin64

.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-i安装

.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-s启动

.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-x停止4.1.2添加端口Windows防火墙需要添加端口的出站和入站规则,将TCP协议10050、10051端口开放。不然zabbix主动或被动模式就获取不到该设备的数据。1005010051是zabbix程序使用端口。4.1.3配置自启动Zabbixagent安装过程中,会自动将zabbixagent服务、开机自启动配置好,只需要检查下,agent是否正常运行即可。4.2windows事件查看器监控对windows系统下事件查看器中系统日志进行监控和信息获取,将事件查看器中的错误(Error)、关键(Critical)等系统、程序重要信息打印在zabbix界面中,也可以添加监控项,触发器来针对某个信息实现告警。例如:当事件查看器中,有磁盘坏块告警信息时,zabbix界面会进行告警提示。或是配合研发部门程序日志,程序可将告警信息写入到事件查看器中,zabbix对其进行监控告警。4.2.1zabbix官网指导说明/documentation/3.4/manual/config/items/itemtypes/zabbix_agent/win_keys截图如下:4.2.2创建监控项类型:必须是zabbix客户端(主动式)

键值:参考zabbix官方文档,例子eventlog[System,,"Critical|Error"]将事件查看器中“系统”栏中“Critical|Error”类型的信息过滤出来eventlog[System,,"Error",".Disk."]事件查看器中“系统”栏中“Critical|Error”类型的信息过滤,并使用正则表达式匹配详细信息中的来源:Disk的关键字eventlog[Security,,"SuccessAudit",,^4624$,,skip].nodata(60)}=0andeventlog[Security,,"SuccessAudit",,^4624$,,skip].regexp(administrator,1)}=0

如果在60秒内有监控到数据,并且监控内容不包含字符串"administrator"则触发告警,如果60秒内没有新的数据了,则触发器恢复OK。简单点说就是,用户登录后触发器触发至少会持续60秒,如果用户不断的登录成功,间隔小于60秒,则触发器一直是problem状态。应用集:Event事件日志4.2.3创建触发器名称:{HOST.NAME}代表主机名表达式:添加“最新一条日志级别不等于N”,N取值是0、1或其他,0表示正常,1和其他值表示不正常。所以N取值不等于0,触发告警。4.2.4事件查看器注意事项系统:System安全:Security级别:错误(Error)、关键(Critical)、信息(Information)等,参考zabbix官网指导说明来源:一定要看详细信息中的ProviderName,次截图上,详细信息与常规来源不一致,一个是Microsoft-Windows-TerminalServices-Printers,一个是TerminalServices-Printers。容易导致正则匹配出错,建议使用含有匹配的方式。4.2.5监控结果4.3windows系统CPU监控4.3.1监控CPU使用率因为zabbix未提供能查看cpu使用率的监控项,只提供了cpu负载的监控项,就需新增建监控项,监控CPU用户使用率与其类似,不再说明。(zabbix3.4版本)4.3.2创建监控项名称:CPU使用率键值:为了规范命名cpu_time信息类型:浮点数更新时间:1m单位:%应用集:CPU状态4.3.3创建触发器名称:CPU使用率过高:{HOST.NAME}表达式:{WindowsServerModel:cpu_time.avg(5m)}>905分钟均值大于90%告警4.3.4配置图形注:根据需要调整绘图风格4.3.5配置zabbix_agentd.win.conf最后行添加#CPU使用率

PerfCounter=cpu_time,"Processor(_Total)%ProcessorTime",60

#CPU用户使用率

PerfCounter=cpu_usertime,"Processor(_Total)%UserTime",60注:cpu_time为zabbix界面上监控项配置的键值,虽然可以自定义,但要规范命名。

60为数据更新时间,单位秒,要小于等于zabbix界面上监控项配置“更新时间”,这样才有更新的意义。配置完成后,重启zabbix_agentd生效cdC:zabbixbinwin64

.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-x

.zabbix_agentd.exe-cC:zabbixconfzabbix_agentd.win.conf-s4.3.6监控结果4.4windows系统内存监控应用集:Memory内存状态Memory内存状态主要监控项有:Memory内存使用率、Memory内存使用量、Memory内存总量(带上Memory方便了排序归类)。Swap交换分区使用率、Swap交换分区使用量、Swap交换分区总量。zabbix自带内存监控项,可以直接创建使用。监控项配置:

说明:windows系统下没有支持system.swap.size[pused],swap使用率监控项,一般swap分区被使用了,就可以说明物理内存不足,可以使用pfree替代。4.4.1创建监控项

以监控内存使用率为例:名称:内存使用率键值:vm.memory.size[pused]其他键值:vm.memory.size[used]vm.memory.size[total]信息类型:浮点数更新时间:1m单位:%应用集:Memory内存状态4.4.2创建触发器名称:内存使用率过高:{HOST.NAME}表达式:{WindowsServerModel:vm.memory.size[pused].avg(5m)}>905分钟均值大于90%告警4.4.3

配置图形4.4.5监控结果4.5windows磁盘读写监控Windows下磁盘监控,可以细分到监控各个磁盘数据如C、D、E等,目前未想到到自发现规则配置,就对所有磁盘进行监控取总体值,以总体值为例进行监控配置。细分:LogicalDisk(E:)DiskWriteBytes/secLogicalDisk(C:)DiskWriteBytes/secLogicalDisk(D:)DiskWriteBytes/secLogicalDisk(_Total)DiskWriteBytes/sec总体:PhysicalDisk(_Total)DiskReadBytes/sec4.5.1创建监控项磁盘读写监控项较多,配置监控项如下图:键值:disk_read_speed、disk_write_speed、disk_free_percent、disk_rw_percent、disk_rw_percent等。C:zabbixscriptconfzabbix_agentd.win.conf文件配置为:#Disk磁盘读速率Bytes/s

PerfCounter=disk_read_speed,"PhysicalDisk(_Total)DiskReadBytes/sec",60#Disk磁盘写速率Bytes/s

PerfCounter=disk_write_speed,"PhysicalDisk(_Total)DiskWriteBytes/sec",60#Disk磁盘空闲状态百分比

PerfCounter=disk_free_percent,"PhysicalDisk(_Total)%IdleTime",60#Disk磁盘读和写总共用时百分比

PerfCounter=disk_rw_percent,"PhysicalDisk(_Total)%DiskTime",60#Disk磁盘读用时百分比

PerfCounter=disk_read_percent,"PhysicalDisk(_Total)%DiskReadTime",60#Disk磁盘写用时百分比

PerfCounter=disk_write_percent,"PhysicalDisk(_Total)%DiskWriteTime",60#Disk磁盘平均读写队列长度

PerfCounter=disk_queue_length,"PhysicalDisk(_Total)Avg.DiskQueueLength",60#Disk磁盘平均读队列长度

PerfCounter=disk_read_queue_length,"PhysicalDisk(_Total)Avg.DiskReadQueueLength",60#Disk磁盘平均读队列长度

PerfCounter=disk_write_queue_length,"PhysicalDisk(_Total)Avg.DiskWriteQueueLength",604.5.2配置图形Disk磁盘读写用时百分比:选择Windows系统监控模板:Disk磁盘读用时百分比Windows系统监控模板:Disk磁盘写用时百分比Windows系统监控模板:Disk磁盘读和写总共用时百分比调整线条以及颜色4.5.3监控结果4.6windows磁盘容量监控Zabbix自带监控模板,在自动发现规则Mountedfilesystemdiscovery已经配置。可用来来监控CDEF等分区容量。可以改成中文易读。如下图:4.7windows网卡流量监控Zabbix自带监控模板,在自动发现规则Networkinterfacediscovery已经配置。需要过滤掉不需要监控的端口,只显示真实的网卡流量,在zabbix界面,管理-一般-正则表达式中找到Networkinterfacesfordiscovery项,添加过滤规则。例如:4.8windows系统时间监控需要创建两个监控项,一个是绝对时间用于触发器告警,另一个是易读时间显示。通过获取到被监控系统时间与zabbixserver做时差比较,超过10分钟告警。4.8.1创建监控项键值:system.localtime[local]易读时间键值:system.localtime[]绝对时间4.8.2创建触发器

名称:与zabbix主机时差超过10分钟:{HOST.NAME}表达式:{WindowsServerModel:system.localtime[].fuzzytime(600)}=04.9windows系统进程监控Windows的进程或程序监控,是通过监控进程数量,以此为状态标志位来判断进程是否已停止运行。当最新进程数为0时,判断进程已停止运行;当5分钟内,平均值大于等于1时,恢复触发器,判断进程已恢复运行;当最新进程数不为0时,判断进程正在运行。下面以监控Xshell.exe程序,运行进程为例,来创建实施监控。4.9.1创建监控项

键值:proc.num[Xshell.exe]Zabbix官网样例proc.num[,,,,]信息类型:数字(无正负)方便看图形,标志位更新间隔:1m1分钟同一规定注:windows下只支持进程名和用户名称4.9.2创建触发器名称:Xshell程序已停止运行:{HOST.NAME}问题表现形式:{WindowsServerModel:proc.num[Xshell.exe].last()}=0恢复表达式:{WindowsServerModel:proc.num[Xshell.exe].avg(5m)}>1or{WindowsServerModel:proc.num[Xshell.exe].avg(5m)}=15windows系统硬件信息获取本文通过在OS操作系统层面上,主要获取windows服务器下CPU信息、内存信息、硬盘信息、操作系统、服务器信息。信息获取的实现方式是通过在windows系统下部署自定义bat脚本,执行脚本获取数据,再将获取的信息发送给zabbix服务端,zabbix界面创建相应的监控项,触发器等,最终将信息展示出来。监控项内容如下:CPU信息:型号、个数、内核数、逻辑核、CPU健康状态,及状态告警。内存信息:容量、个数、厂商、型号、序列号;主板支持内存最大容量和个数。硬盘信息:厂商、个数、容量、序列号、接口类型、硬盘健康状态,及状态告警。操作系统信息:主机名、操作系统版本、运行时长、统线程数、系统时间。服务器信息:品牌、型号、序列号。说明:一些特殊数据需要实现监控,例如CPU温度、硬盘状态、Raid卡状态、风扇转速等,windows没有提供检测硬件温度组件,需要借助第三方工具如IPMItools,fan-speed等,也可以使用IPMI协议等其他方法来丰富windows系统硬件监控项,对于虚拟机并不适用,此时,推荐使用服务器的管理口,如HPE服务器的iLO、DEll服务器的iDRAC,联想服务器XCC等开启snmp功能,再进行zabbix配置,实现对服务器硬件全面监控。如果服务器未配置管理口,当然不能适用。5.1CPU信息获取应用集:CPU硬件cpu信息主要有:CPU型号、CPU颗数、CPU核数、CPU逻辑核与线程(超线程,一般是核心数的2倍)监控项配置:5.1.1CPU型号需要编写程序对CPU型号进行提取,相关配置如下:1、在C:zabbixconfzabbix_agentd.win.conf文件中:自定义程序开关设置为开启,UnsafeUserParameters=1并添加监控项:#CPU型号

UserParameter=cpu_hardware_model,C:zabbixscriptcpu_hardware_model.batZabbix界面添加监控项:监控key值:cpu_hardware_model2、程序目录为

C:zabbixscriptcpu_hardware_model.bat3、监控项配置:5.1.2CPU颗数需要编写程序对CPU型号进行提取,相关配置如下:1、在C:zabbixconfzabbix_agentd.win.conf文件中:自定义程序开关设置为开启,UnsafeUserParameters=1并添加监控项:#CPU型号

UserParameter=cpu_hardware_number,C:zabbixscriptcpu_hardware_number.bat2、程序目录为:C:zabbixscriptcpu_hardware_number.bat3、监控项配置:5.1.3CPU核数需要编写程序对CPU核数进行提取,相关配置如下:1、在C:zabbixconfzabbix_agentd.win.conf文件中:自定义程序开关设置为开启,UnsafeUserParameters=1并添加监控项:#CPU核数一颗CPU的核心数

UserParameter=cpu_hardware_core,C:zabbixscriptcpu_hardware_core.bat2、程序目录为:C:zabbixscriptcpu_hardware_core.bat3、监控项配置:5.1.4CPU逻辑核与线程使用zabbix自带key,监控key值:system.cpu.num[]说明:type可用值,online(默认值),max范例:system.cpu.num经实践检查此处的key值为逻辑核心,CPU逻辑核心、线程(超线程,一般是核心数的2倍)windows系统下管理处理器,看到的数量。监控项配置:5.1.5监控结果5.2内存信息获取memery内存信息:包括序号、制造商、容量、序列号、型号、速率memery内存主板支持:最大容量,最大槽位数5.2.1创建监控项创建:memery内存信息、memery内存主板支持键值:memory_biso_support_info、memory_hardware_info应用集:Memory内存硬件5.2.2监控结果1、监测中>最新数据>Memory内存硬件>memery内存信息可以看到,序列依次为:内存序号、容量、制造商、型号、序列号、速率。2、监测中>最新数据>Memory内存硬件>memery内存主板支持第一列为主板支持最大容量,第二列为主板支持最大槽位数。5.3操作系统信息OS操作系统信息:主机名、操作系统版本、运行时长、统线程数、系统时间。其中操作系统版本是自定义程序获取,主机名、运行时长、统线程数、系统时间是zabbix自带监控模板,自带模板直接套用。5.3.1创建监控项创建:系统时间、操作系统版本、绝对秒、系统线程数、系统运行时长、主机名键值:system.localtime[local]、os_version、system.localtime[]、perf_counter[2250]、system.uptime、system.hostname[]应用集:OS操作系统5.3.2监控结果监测中>最新数据>OS操作系统5.4服务器信息监控服务器信息:品牌、型号、序列号。5.4.1创建监控项创建:OS服务器序列号、OS服务器型号、OS服务器品牌键值:os_device_serialnumber、os_device_mode、os_device_manufacturer应用集:OS服务器信息5.4.2监控结果监测中>最新数据>OS服务器信息

6Linux系统状态监控Linux系统监控,监控项原则上能利用zabbix提供模板就尽量使用,zabbix提供不了的就编写shell脚本,这样就省去大部分代码编写时间,减少工作量。状态信息原则上已使用率为主要观察点,不需要再监控剩余率,Linux系统监控模板,与window系统监控应用集、监控项命名保持统一,监控模板如下所示:应用集:CPU状态、CPU硬件、Disk硬盘、Disk磁盘状态、Memory内存状态、Memory内存硬件、OS操作系统、OS服务器信息、agent模板链接。6.1Linux部署zabbix_agent说明:为了支持批量安装,一键化安装linux5、6、7不同版本安装,需要有脚本程序支撑,自己编写的一建安装脚本,易于批量部署,至于zabbixagent安装配置也很简单,网上搜索很多,这里就给读者讲一些我的实践过程。zabbix_agent_linux_install脚本目录,上传至被监控linux主机,执行shinstall.shIPIP为zabbix服务IP,当前环境为23,该脚本一键化安装,无需配置/etc/zabbix/下配置,自动识别linux版本,脚本内安装选项可以调整。安装完毕后,zabbix界面添加主机,并关联模板。当然可以配置IP范围使用自动发现主机。6.2Linux系统CPU监控应用集:CPU状态

CPU状态:CPU使用率、CPU负载1分钟、5分钟、15分钟。

linux系统CPU状态监控,官方已提供监控项,可以直接使用,无需自行编写脚本。具体参考官方链接:/documentation/3.4/zh/manual/appendix/items/supported_by_platform?s[]=system&s[]=hw&s[]=cpu&s[]=info,支持linux与windows系统。监控项配置:注意:实际环境采用user系统使用率代替cpu整体使用率,因linux系统占用的cpu资源比较少1%。此处cpuload负载监控的值为top命令下看到的数值。6.3Linux系统内存监控应用集:Memory内存状态Memory内存状态主要监控项有:Memory内存使用率、Memory内存使用量、Memory内存总量(带上Memory方便了排序归类)。Swap交换分区使用率、Swap交换分区使用量、Swap交换分区总量。注意:此处的内存使用率为真实使用,会计算上缓存里占用的内存空间。不使用zabbix系统提供的vm.memory.size[pused](会将缓存计算进去),而使用通过shell脚本计算的真实内存。监控项配置:说明:配置与windows下内存监控方法一样不在详述。1、提供计算真实内存脚本/etc/zabbix/script/memory_fact_used.sh:2、在/etc/zabbix/zabbix_agentd.d/目录下创建规范文件名.conf结尾,添加如下内容:UserParameter=mem.fact.used,/etc/zabbix/script/memory_fact_used.sh3、监控项配置:6.4Linux磁盘使用监控应用集:Disk磁盘使用Linux磁盘使用监控主要信息是:磁盘目录的使用情况,包括容量与索引。监控方式:采用zabbix自动发现,将信息批量获取。监控项配置:

监控项原型配置:

6.5Linux磁盘读写监控应用集:Disk磁盘读写Disk磁盘读写主要监控的信息有:读写速率、IO使用率、IO响应时间等1、采用zabbix自发现,编写代码生成含有sda磁盘信息的json文件Shell代码:discovery_disk.sh或Python代码:discovery_disk.py2、编写代码获取IO信息:iocheck.sh,脚本使用了iostat命令进行数据获取,关于iostat获取的数据信息解释,可翻阅资查看。主要对读写速率、IO使用率、IO响应时间关键指标进行监控。3、创建自发现规则4、创建监控项原型,如下图所示,在zabbix界面的最新数据可查看监控信息。6.5Linux网卡状态监控使用zabbix已有自发现规则进行监控,方法比较简单,配置截图如下:1、自发现规则配置2、过滤器配置此项是为了过滤不需要监控的网卡,采用正则匹配3、监控项原型配置7Linux系统硬件信息获取这里linux硬件信息获取,类比windows硬件信息获取,都是在OS操作系统层面,如果想监控更多硬件,推荐使用服务器的管理口。实践过程中,原则是尽可能使用zabbix系统已有监控项,直接使用效率高。7.1CPU信息获取应用集:CPU硬件cpu信息主要有:CPU型号、CPU颗数、CPU核数、CPU逻辑核与线程(超线程,一般是核心数的2倍)监控项配置:7.1.1CPU型号使用zabbix自带key:监控key值:

system.hw.cpu[,]说明:cpu为数量或是默认all,info:full(默认),curfreq,maxfreq,model或者vendor。监控项配置:7.1.2CPU颗数此处的CPU颗数指的是物理个数,如果是虚拟机则不具备参考依据。使用编写的命令获取CPU物理个数:监控key值:

UserParameter=server.cpu.num,cat/proc/cpuinfo|grep-E'physical[t]+id'|sort|uniq|wc-l监控项配置:7.1.3CPU核数使用编写的命令获取CPU核数,此处的核数为单个CPU的核心数,总核数为:CPU颗数*单个CPU的核数。在/etc/zabbix/zabbix_agentd.d/目录下创建规范文件名.conf结尾,添加如下内容:UserParameter=server.cpu.corenum,echo"$(cat/proc/cpuinfo|grep-E'cpu[t]+cores'|sort|uniq|awk'{print$NF}')"监控项配置:7.1.4CPU逻辑核与线程使用zabbix自带key:监控key值:system.cpu.num[]说明:type可用值,online(默认值),max范例:system.cpu.num经实践检查此处的key值为逻辑核心,CPU逻辑核心、线程(超线程,一般是核心数的2倍)Linux系统下top命令输入1,看到的cpu数量。监控项配置:7.1.5监控结果7.2Memory内存信息获取应用集:Memory内存硬件Memory内存硬件信息主要有:主板支持情况、每个内存条硬件信息。监控项配置:7.2.1Memory内存主板支持编写的命令获取内存主板支持情况:在/etc/zabbix/zabbix_agentd.d/目录下创建规范文件名.conf结尾,添加如下内容:UserParameter=,dmidecode-t16|grep-E'Maximum|Devices'|sed-e's/^[t]//g;s/[t]$//g;s/[t]//g;s/MaximumCapacity/支持容量/g;s/NumberOfDevices/支持槽位/g'监控项配置:最新数据:7.2.2Memory内存信息编写的命令获取每个内存条硬件信息:在/etc/zabbix/zabbix_agentd.d/目录下创建规范文件名.conf结尾,添加如下内容:UserParameter=.num,dmidecode-t17|grep-E"Size:[0-9]"-A12|grep-E'Locator:|Size:|Manufacturer:|PartNumber|Speed:|Type:'|sed-e's/^[t]//g;s/[t]$//g;s/[t]//g;s/Size/容量/g;s/Locator/槽位/g;s/Type/类型/g;s/Speed/速率/g;s/Manufacturer/制造商/g;s/PartNumber/序列号/g'|grep-v'Bank'|awk'{if(NR%6==0){print$0}else{printf"%st",$0}}'监控项配置:最新数据:7.3Disk硬盘信息获取因有的服务器安装了RAID卡或是连接了EMC等SAN存储设备,而且企业里大量使用了虚拟机,增加了硬盘信息获取的难度。对于linux与windows系统服务器获取硬盘信息,将在后续文章中详细介绍,下面介绍的方法,最适用于服务器安装linux系统的场景,可简单了解。应用集:Disk硬盘Disk硬盘主要获取两类信息:硬盘的硬件信息、硬盘的状态(包括只读):1、直通硬盘直通硬盘使用hdparm-i/dev/sda命令获取硬盘信息直通硬盘使用smartctl-H/dev/sda命令获取硬盘健康状态编写脚本,读写/dev/sdX硬盘,获取硬盘读写检查2、RAID硬盘需要安装MegaCli等软件,使用软件命令来实现监控结果:7.4OS操作系统信息获取应用集:OS操作系统OS操作系统信息主要有:主机名、操作系统版本、登录用户数量、系统时间、系统运行时长。除过操作系统版本需要编写脚本外,其他都是zabbix系统已有监控项,可以直接使用。监控项配置:监控结果:7.5OS服务器信息获取应用集:OS服务器信息OS服务器信息主要有:服务器品牌、型号、序列号。注意:如果是虚拟机则反应的是虚拟化平台的厂家。如:VMware,Inc.监控项配置:脚本命令:

在/etc/zabbix/zabbix_agentd.d/目录下创建规范文件名.conf结尾,添加如下内容:UserParameter=pany,dmidecode-ssystem-manufacturer|grep-v^#

UserParameter=,dmidecode-ssystem-product-name|grep-v^#

UserParameter=server.serial.number,dmidecode-ssystem-serial-number|grep-v^#|tr-d""监控结果:8Vmware虚拟平台监控阅读zabbix官方文档,官方提供了Vmware虚拟机监控模板,并对模板进行了解释说明,但未对相应名词做解释,如果不了解Vmware组件,可能对出现的名词不容易理解。官方监控虚拟机相关文档URL:/documentation/3.4/zh/manual/vm_monitoring/documentation/3.4/zh/manual/config/items/itemtypes/simple_checks/vmware_keys重要信息说明:VMwarevCenter:VMware平台用于管理的服务端,管理群集、主机、虚拟机、存储等。VMwarehypervisors:主机,安装了ESXI软件的服务器。TemplateVMVMware“模板应用于VMwarevCenter和VMwarehypervisors监控。TemplateVMVMwareHypervisor和TemplateVMVMwareGuest模板由自动发现使用,通常设置为自动链接到主机。low-leveldiscovery规则自动发现VMwarehypervisors和虚拟机,LDD就是自动发现。采用官方提供的监控模板流程是这样实现的,首先建立监控主机,可以监控的对象是VMwarevCenter虚拟化平台或者是ESXI主机,链接TemplateVMVMware模板,等待zabbixserver服务自动发现,而后对群集、主机、虚拟机等进行监控。有一节单讲组配置,制定VMware下群集、主机、虚拟机、存储等命名规范。8.1自发现模板配置主要通过创建主机VMwarevCenter和ESXI,连接TemplateVMVMware模板,进行自发现获取群集、主机、虚拟机、存储等信息。8.1.1创建主机此处创建主机为VmwareVcenter平台,配置如下:主机名称:IP地址端口默认使用:80主机组命名为:Vmware平台Center数据中心组宏配置:{$PASSWORD}密码{$URL}

https://IP

地址/sdk{$USERNAME}账号模板:TemplateVMVMware(zabbix自带模板)8.1.2数据验证在配置--主机中查看是否已有虚拟机自生成,在最新数据--查看是否有最新数据,这样就实现了Vmware平台上的数据监控,但平台分组不易读,还要制定分组命名规范。8.2制定分组命名规范为了使zabbix平台Vmware分组分类整洁明了,方便管理审阅,规范zabbix下虚拟化平台分组名称。1.首先宏观分3大类,Vmware平台、ESXI主机和WM虚拟机Zabbix创建主机组的命名规范:用于添加VmwareVcenter的组项目类别规范VmwareVcenter平台组Vmware平台Center数据中心组VmwareESXI平台组Vmware平台Center数据中心组注:如果确实存在VmwareESXI未加入到VmwareVcenter中,视ESXI为一个平台。如果VmwareESXI已经加入到VmwareVcenter中,就不要单独监控了,只监控VmwareVcenter即可。Zabbix创建主机组的命名规范:用于自动发现ESXI主机时,添加所有ESXI主机项目类别规范VmwareESXI主机组Vmware平台ESXI主机组Zabbix创建主机组的命名规范:用于自动发现WM虚拟机时,添加所有WM虚拟机项目类别规范VmwareVM虚拟机组Vmware平台VM虚拟机组2.细分在某一VmwareVcenter下进行分组,WM虚拟机组有:数据中心(VmwareVcenter)、群集与主机。项目类别规范VmwareVcenter虚拟机组Vmware虚拟机组数据中心Datecenter:VmwareCluster虚拟机组Vmware虚拟机组群集Cluster:VmwareESXI虚拟机组Vmware虚拟机组主机ESXI:3.细分在某一VmwareVcenter下进行分组,ESXI主机组有:数据中心(VmwareVcenter)与群集。项目类别规范VmwareVcenter虚拟机组Vmware主机组数据中心Datecenter:VmwareCluster虚拟机组Vmware主机组群集Cluster:为了使VmwareVcenter数据中心,虚拟机方便管理审阅,规范Vmware下虚拟化平台分组名称。命名规范:项目规范范例数据中心DadaCenter描述功能用途数据中心群集CLUSTER描述功能用途XXX平台主机ESXIIP地址虚拟机VM系统-版本-功能描述-IPlinux-redhat-6.7-zabbix测试-8.3规范模板中组的命名

TemplateVMVMware模板修改,需要修改Vmware自动发现主机与自动发现虚拟机的主机模板。8.3.1Vmware自动发现主机根据8.2节,zabbix命名规范,修改组模板的两项:1、Wmare主机组群集Cluster:{#CLUSTER.NAME}2、Wmare主机组数据中心DateCenter:{#DATACENTER.NAME}说明:1是群集组分组,2是数据中心分组,此组下均为ESXI主机信息要先创建zabbix主机组:Vmware平台Center数据中心组,才能在此处的“群组”中添加。说明:包括所有ESXI主机,跨数据中心。8.3.2Vmware自动发现虚拟机根据8.2节,zabbix命名规范,修改组模板的三项:1、Vmware虚拟机组群集Cluster:{#CLUSTER.NAME}2、Vmware虚拟机组数据中心Datecenter:{#DATACENTER.NAME}3、Vmware虚拟机组主机ESXI:{#HV.NAME}要先创建zabbix主机组:Vmware平台VM虚拟机组,才能在此处的“群组”中添加。说明:包括所有虚拟机,跨数据中心。8.3.3对模板进行汉化TemplateVMVMware、TemplateVMVMwareHypervisor、TemplateVMVMwareGuest8.4创建触发器Zabbix自带Vmware监控模板无触发器配置,需要自研配置触发器,且能配置触发器项较少,尽量依靠部署agent进行全面监控告警。简而言之,此触发器告警是宏观上的,为虚拟平台整体状态告警,不能详尽描述虚拟机某一指标。但有几个关键性指标,在OS下体现不出来,需要在VMware平台上做监控:如CPUreadytime、内存ballon、swap等,依次要判断VM运行情况。8.4.1ESXI主机触发器1、VMwareESXI主机运行状况配置如下图:2、VMware虚拟传感器运行状况配置如下图:3、主机不通,获取不到数据在主机是关机或网络不通状态下,那肯定获取不到某一监控项。可使用5分钟内获取不到数据判断为主机不通。在主机是在开机状态下,已经死机,CPU、内存某些监控项,数据是否恒为定值不确定,是停留某个值还是归为0,要以此为参考依据建立触发器,目前死机状态值未获取到,此项触发器无法建立。只能提供思路。名称:主机不通,获取不到数据:{HOST.NAME}表达式:{TemplateVMVMwareHypervisor:vmware.hv.cpu.usage[{$URL},{HOST.HOST}].nodata(5m)}=14、主机产生balloon内存Balloon产生会在某种程度上说明:内存资源不足。此情况发生在,需要vmkernel调度其他VM虚拟机上空闲的内存资源,给内存不足的VM虚拟机。此具体问题需要分析,目前此量值无法在实践中确定,首先进行提升信息,再根据VM或是ESXI主机内存资源情况进行合理判断。8.4.2VM虚拟机触发器可配置触发器较少,对于虚拟机监控告警,只是辅助告警,尽量依靠部署agent,因此,重点关注2虚拟机电源关闭触发器。创建磁盘使用率触发器,C、D、E等磁盘剩余空间不足10%告警。说明:此处监控针对windows系统,创建该触发器必然与agent监控告警重复,建议关闭此处触发器。(也可以创建使用空间超过90%,依赖关系99%提升告警级别)创建触发器:名称:磁盘剩余空间不足10%:on{#FSNAME}表达式:{TemplateVMVMwareGuest:vmware.vm.vfs.fs.size[{$URL},{HOST.HOST},{#FSNAME},pfree].last()}<10允许手动关闭效果截图:创建虚拟机电源状态翻转的触发器,当关闭虚拟机时,提示信息“虚拟机电源关闭”,当虚拟机重新打开电源时,恢复表达式。因虚拟机电源开关可控,有可能存在误关机操作。虚拟机开启不做告警。创建触发器:名称:虚拟机电源关闭:{HOST.NAME}问题表现形式:{TemplateVMVMwareGuest:vmware.vm.powerstate[{$URL},{HOST.HOST}].abschange()}=1恢复表达式:{TemplateVMVMwareGuest:vmware.vm.powerstate[{$URL},{HOST.HOST}].last()}<>0注意:表达式多种多样,但有的并不一定能实现。1.经研究,虚拟机触发器可告警项较少,构建出发器也是可行,但总会与agent监控重复,效果并不理想,以上只做参考。比如C、D盘使用率监控,CPU,内存使用率,而且有时候虚拟机不安装VMwaretools工具下监控不到C盘(如果是linux系统则是目录),因此,针对虚拟机电源有必要监控告警,其他项不再深入研究。2.CPUreadytimeCPU就绪时间关键重要指标,如果此值大于2000ms或是2s,说明CPU性能不足,需要关注。可以通过ssh到ESXI主机上使用esxtop命令查看。此处实践配置成10个周期内的均值3000ms告警。虚拟机设置CPU核心数,如果ESXI主机CPU核心数较少,VM设置的过多,会造成VM虚拟机直接抢占CPU资源造成,CPUreadytime值偏高,所以说虚拟机CPU核心数设置的并不是越多越好,只要满足计算量即可。3.内存触发器重要关键指标:共享内存大小、气球内存大小、交换内存大小、压缩内存大小。内存资源严重性逐步提高。共享、气球内存是VM合理利用内存的方式,避免:交换内存、压缩内存的产生。共享内存大小:气

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论