1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 运维 - 正文

君子好学,自强不息!

Zabbix 如何监控服务器硬件信息?

2022-11-06 | 运维 | admin | 584°c
A+ A-

做为Linux系统工程师,在服务器的维护管理当中,除了对系统进行维护管理之外,最重要的还要对服务器的硬件进行监控,比如服务器Raid状态是否正常(如果Raid卡出问题,会影响数据的读写速度),服务器硬盘是否正常(如果硬盘坏掉,严重的情况会丢失数据),服务器电源是否有故障等。除此之外还要对服务器的CPU,内存,处理器等重要设备的温度进行监控,如果温度超过服务器的临界温度则进行报警通知。

HP的服务器在硬件管理方面提供了自己管理工具hpacucli,通过该工具可以查看HP服务器的RAID信息,服务器硬盘等信息。 1)安装hpacucli工具(下载地址:HP hpacucli管理工具)

[root@monitor~]#rpm-ivhhpacucli-9.40-12.0.x86_64.rpm

2)查看服务器RAID信息,硬盘是否正常。

[root@monitor~]#hpacuclictrlallshowconfig
SmartArrayP410iinSlot0(Embedded)(sn:5001438018042FF0)
arrayA(SAS,UnusedSpace:0MB)
logicaldrive1(279.4GB,RAID1,OK)
physicaldrive1I:1:1(port1I:box1:bay1,SAS,300GB,OK)
physicaldrive1I:1:2(port1I:box1:bay2,SAS,300GB,OK)

3)通过hpacucli ctrl all show config detail命令可以详细地查看RAID和硬盘的信息。

[root@monitor~]#hpacuclictrlallshowconfigdetail
SmartArrayP410iinSlot0(Embedded)
BusInterface:PCI
Slot:0
SerialNumber:5001438018042FF0
CacheSerialNumber:PBCDH0CRH1FH62
RAID6(ADG)Status:Disabled
ControllerStatus:OK
ChassisSlot:
HardwareRevision:RevC
FirmwareVersion:5.14
RebuildPriority:Medium
ExpandPriority:Medium
SurfaceScanDelay:15secs
MonitorandPerformanceDelay:60min
ElevatorSort:Enabled
DegradedPerformanceOptimization:Disabled
InconsistencyRepairPolicy:Disabled
PostPromptTimeout:0secs
CacheBoardPresent:True
CacheStatus:OK
AcceleratorRatio:25%Read/75%Write
DriveWriteCache:Disabled
TotalCacheSize:512MB
No-BatteryWriteCache:Disabled
CacheBackupPowerSource:Capacitors
Battery/CapacitorCount:1
Battery/CapacitorStatus:OK
SATANCQSupported:True
Array:A
InterfaceType:SAS
UnusedSpace:0MB
Status:OK
LogicalDrive:1
Size:279.4GB
FaultTolerance:RAID1
Heads:255
SectorsPerTrack:32
Cylinders:65535
StripeSize:128KB
Status:OK
ArrayAccelerator:Enabled
UniqueIdentifier:600508B1001034373220202020200002
DiskName:/dev/cciss/c0d0
MountPoints:/boot99MB
LogicalDriveLabel:A00ADBD9PR7AMU1472898D
MirrorGroup0:
physicaldrive1I:1:1(port1I:box1:bay1,SAS,300GB,OK)
MirrorGroup1:
physicaldrive1I:1:2(port1I:box1:bay2,SAS,300GB,OK)
physicaldrive1I:1:1
Port:1I
Box:1
Bay:1
Status:OK
DriveType:DataDrive
InterfaceType:SAS
Size:300GB
RotationalSpeed:10000
FirmwareRevision:HPD4
SerialNumber:ECA1PC80GTS31234
Model:HPEG0300FBDSP
PHYCount:2
PHYTransferRate:6.0GBPS,Unknown
physicaldrive1I:1:2
Port:1I
Box:1
Bay:2
Status:OK
DriveType:DataDrive
InterfaceType:SAS
Size:300GB
RotationalSpeed:10000
FirmwareRevision:HPD7
SerialNumber:PMX6902D
Model:HPEG0300FBDBR
PHYCount:2
PHYTransferRate:6.0GBPS,Unknown

HP官方还有一个hpasmcli管理工具,可以很详细查看服务器CPU,内存,处理器,电源等的温度信息。

1)安装hpasmcli工具(下载地址:HP hpasmcli管理工具)

[root@monitor~]#rpm-ivhhp-health-9.40-1602.44.rhel6.x86_64.rpm

2)通过工具hpasmcli可以查看服务器各部件的温度信息,其中Temp表示各部件当前的温度,Threshold表示临界温度,当当前温度超过临界温度的时候就要注意啦。

[root@monitor~]#hpasmcli-s'showtemp'
SensorLocationTempThreshold
---------------------------
#1AMBIENT23C/73F42C/107F
#2CPU#140C/104F82C/179F
#3CPU#240C/104F82C/179F
#4MEMORY_BD33C/91F87C/188F
#5MEMORY_BD33C/91F78C/172F
#6MEMORY_BD-87C/188F
#7MEMORY_BD32C/89F78C/172F
#8MEMORY_BD32C/89F87C/188F
#9MEMORY_BD32C/89F78C/172F
#10MEMORY_BD-87C/188F
#11MEMORY_BD32C/89F78C/172F
#12POWER_SUPPLY_BAY33C/91F59C/138F
#13POWER_SUPPLY_BAY47C/116F73C/163F
#14MEMORY_BD29C/84F72C/161F
#15PROCESSOR_ZONE32C/89F73C/163F
#16PROCESSOR_ZONE30C/86F64C/147F
#17MEMORY_BD28C/82F63C/145F
#18PROCESSOR_ZONE39C/102F69C/156F
#19SYSTEM_BD35C/95F69C/156F
#20SYSTEM_BD38C/100F71C/159F
#21SYSTEM_BD44C/111F65C/149F
#22SYSTEM_BD45C/113F71C/159F
#23SYSTEM_BD39C/102F69C/156F
#24SYSTEM_BD47C/116F69C/156F
#25SYSTEM_BD35C/95F63C/145F
#26SYSTEM_BD45C/113F66C/150F
#27SCSI_BACKPLANE_ZONE35C/95F60C/140F
#28SYSTEM_BD73C/163F110C/230F

3)通过hpasmcli -s ‘show’查看类似于help的帮助信息,监控的时候要重点关注 DIMM(内存)、FANS(风扇)、POWERSUPPLY(电源模块)、SERVER(系统)、CPU、TEMP(温度)等信息。

[root@monitor~]#hpasmcli-s'show'
InvalidArguments
SHOWASR
SHOWBOOT
SHOWDIMM[SPD]
SHOWF1
SHOWFANS
SHOWHT
SHOWIML
SHOWIPL
SHOWNAME
SHOWPORTMAP
SHOWPOWERMETER
SHOWPOWERSUPPLY
SHOWPXE
SHOWSERIAL[BIOS|EMBEDDED|VIRTUAL]
SHOWSERVER
SHOWTEMP
SHOWTPM
SHOWUID
SHOWWOL

4)hpasmcli几种常用的例子。

  • 查看内存信息:hpasmcli -s ‘show dimm’|egrep -i ‘module|stat’
  • 查看风扇信息:hpasmcli -s ‘show fans’
  • 查看硬件温度:hpasmcli -s ‘show temp’
  • 查看电源模块:hpasmcli -s ‘show powersupply’
  • 查看机器型号,序列号,CPU,内存大小:hpasmcli -s ‘show server’

由于各种服务器的厂商不同,管理工具不同,因此Zabbix对服务器硬件方面没有很详细,全面的解决方案。之前dl528888写过zabbix通过omsa工具监控DEL服务器,也是一种很好的思路,我也借鉴过,这里非常感谢。

Zabbix监控总结起来有两种思路:第一就是server通过agentd方式获取数据,这种方式需要定义UserParameter参数,即KEY。第二就是server通过trapper的方式获取数据,即agentd将数据主动sender给server或者proxy。我这里是通过第二种traper的方式监控的。第一种方式server有时候会取不到数据:

becamenotsupported:Receivedvalue[]isnotsuitableforvaluetype[Numeric(unsigned)]anddatatype[Decimal]

会产生上面的错误。

首先查看我监控的脚本,由于是通过traper的思路进行监控,log_file文件依次定义了要监控服务器的主机名(hostname),监控项key以及监控的值。

[root@monitorscripts]#cathpacuclizabbix.sh
#!/bin/sh
#createbysfzhang20140517
#ThisscriptsmonitoringHPserver,suchassmartarraystatus,Hardwareinformationandservertemperature。
zabbix_server="*.*.*.*"#IPfromZabbixServerorproxywheredatashouldbesendto.
zabbix_sender="/usr/local/zabbix/bin/zabbix_sender"
log_file='/tmp/hpacuclizabbix.log'#Inthefiletodefinethemonitorhost,keyandvalue
hpacucli='/usr/sbin/hpacucli'
options='ctrlallshowconfigdetail'
hpacucli_log="/tmp/result.log"
PATH=$PATH:/usr/sbin:/sbin
${hpacucli}${options}>${hpacucli_log}
Cache_status=`cat${hpacucli_log}|awk'/CacheStatus:/{print$NF}'`
Controller_status=`cat${hpacucli_log}|awk'/ControllerStatus:/{print$NF}'`
Battery_capacitor_status=`cat${hpacucli_log}|awk'/Battery\/CapacitorStatus:/{print$NF}'`
Physicaldrive_status=$(awk-vtotal=`hpacuclictrlslot=0pdallshowstatus|grepphysicaldrive|wc-l`-vnormal=`hpacuclictrlslot=0pdallshowstatus|awk'/physicaldrive/{if($NF=="OK")count+=1}END{printcount}'`'BEGIN{if(total==normal){print"OK"}else{print"NO"}}')
Memory_status=$(awk-vtotal=`hpasmcli-s'SHOWDIMM'|grep-i'Status'|wc-l`-vnormal=`hpasmcli-s'SHOWDIMM'|awk'/Status:/{if($NF=="Ok")count+=1}END{printcount}'`'BEGIN{if(total==normal){print"OK"}else{print"NO"}}')
Fans_status=$(awk-vtotal=`hpasmcli-s'SHOWFANS'|grep"#"|wc-l`-vnormal=`hpasmcli-s'SHOWFANS'|awk'/#/{if($3=="Yes")count+=1}END{printcount}'`'BEGIN{if(total==normal){print"OK"}else{print"NO"}}')
Power_status=$(awk-vtotal=`hpasmcli-s'SHOWPOWERSUPPLY'|grep"Powersupply"|wc-l`-vnormal=`hpasmcli-s'SHOWPOWERSUPPLY'|awk'/Condition:/{if($NF=="Ok")count+=1}END{printcount}'`'BEGIN{if(total==normal){print"OK"}else{print"NO"}}')
Processor_status=$(awk-vtotal=`hpasmcli-s'SHOWSERVER'|grep"Processor:"|wc-l`-vnormal=`hpasmcli-s'SHOWSERVER'|awk'/Status/{if($NF=="Ok")count+=1}END{printcount}'`'BEGIN{if(total==normal){print"OK"}else{print"NO"}}')
Power_temp_num=$(hpasmcli-s'SHOWTEMP'|awk'/POWER_SUPPLY_BAY/{print$3}'|awk-F"C"'{print$1}'|awk'BEGIN{max=0}{if($1>max)max=$1fi}END{printmax}')
Ambient_temp_num=$(hpasmcli-s'SHOWTEMP'|awk'/AMBIENT/{print$3}'|awk-F"C"'{print$1}')
Cpu_temp_num=$(hpasmcli-s'SHOWTEMP'|awk'/CPU/{print$3}'|awk-F"C"'{print$1}'|awk'BEGIN{max=0}{if($1>max)max=$1fi}END{printmax}')
Memory_temp_num=$(hpasmcli-s'SHOWTEMP'|awk'/MEMORY_BD/{print$3}'|awk-F"C"'{print$1}'|awk'BEGIN{max=0}{if($1>max)max=$1fi}END{printmax}')
System_temp_num=$(hpasmcli-s'SHOWTEMP'|awk'/SYSTEM_BD/{print$3}'|awk-F"C"'{print$1}'|awk'BEGIN{max=0}{if($1>max)max=$1fi}END{printmax}')
Processor_temp_num=$(hpasmcli-s'SHOWTEMP'|awk'/PROCESSOR_ZONE/{print$3}'|awk-F"C"'{print$1}'|awk'BEGIN{max=0}{if($1>max)max=$1fi}END{printmax}')
echo$HOSTNAMEhp_smart_array.cache_status$Cache_status>${log_file}
echo$HOSTNAMEhp_smart_array.controller_status$Controller_status>>${log_file}
echo$HOSTNAMEhp_smart_array.battery_capacitor_status$Battery_capacitor_status>>${log_file}
echo$HOSTNAMEhp_hardware.hpysicaldrive_status$Physicaldrive_status>>${log_file}
echo$HOSTNAMEhp_hardware.memory_status$Memory_status>>${log_file}
echo$HOSTNAMEhp_hardware.fans_status$Fans_status>>${log_file}
echo$HOSTNAMEhp_hardware.power_status$Power_status>>${log_file}
echo$HOSTNAMEhp_hardware.processor_status$Processor_status>>${log_file}
echo$HOSTNAMEhp_power.temp_num$Power_temp_num>>${log_file}
echo$HOSTNAMEhp_ambient.temp_num$Ambient_temp_num>>${log_file}
echo$HOSTNAMEhp_cpu.temp_num$Cpu_temp_num>>${log_file}
echo$HOSTNAMEhp_memory.temp_num$Memory_temp_num>>${log_file}
echo$HOSTNAMEhp_system.temp_num$System_temp_num>>${log_file}
echo$HOSTNAMEhp_processor.temp_num$Processor_temp_num>>${log_file}
$zabbix_sender-z$zabbix_server-i${log_file}>/tmp/zabbix.temp

最后只需开启crontab,5分钟运行一次。

[root@monitor~]echo"*/5****/etc/zabbix/scripts/hpacuclizabbix.sh">>/var/spool/cron/root

查看zabbix监控HP服务器硬件KEY的定义,数据的收集都是通过trapper的方式收集的。

/zb_users/upload/2022/10/23/20221017181338-634d9b52ca903.jpg

查看zabbix监控HP服务器硬件triggers定义,其中nodata(600)这个trigger是为了防止被监控端数据采集出问题而设置的,比如crontab不正常,脚本被误删除等等。如果server10分钟之内收集不到被监控端的数据就会报警。

/zb_users/upload/2022/10/23/20221017181340-634d9b544def4.jpg

在zabbix server lastdata查看zabbix server 通过trapper收到的数据。

/zb_users/upload/2022/10/23/20221017181341-634d9b55c1eed.jpg

查看被监控端服务器各部件温度信息。

/zb_users/upload/2022/10/23/20221017181343-634d9b573b52a.jpg

当被监控端出问题时Zabbix会及时报警。

/zb_users/upload/2022/10/23/20221017181344-634d9b58b8ee0.jpg

说明:Zabbix监控HP服务器硬件操作方法:

1)在HP服务器上面安装hpacucli和hpasmcli管理工具。

2)修改hpacuclizabbix.sh脚本的zabbix_server ip地址,指定为自己的server或者proxy的地址,并把该脚本添加到crontab。

3)导入附件中的模板,Link到要监控的主机上面即可。

4)如果有其它问题,欢迎多多交流。

本文来源:1818IP

本文地址:https://www.1818ip.com/post/7383.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。