当前位置 : 主页 > 网络编程 > 其它编程 >

zabbix硬件功能_ipmi基于zabbix的硬件监控

来源:互联网 收集:自由互联 发布时间:2023-07-02
一实验对象操作系统版本RedHatEnterpriseLinuxServerrelease6.6(Santiago)监控对象通过服务 一实验对象 操作系统版本Red Hat Enterprise Linux Server release 6.6 (Santiago) 监控对象通过服务器传感器获取到的所
一实验对象操作系统版本RedHatEnterpriseLinuxServerrelease6.6(Santiago)监控对象通过服务

一实验对象

操作系统版本Red Hat Enterprise Linux Server release 6.6 (Santiago)

监控对象通过服务器传感器获取到的所有在使用的硬件信息

zabbix版本4.0.4

二zabbix介绍

zabbix适合中小型企业、大型企业的用户使用。单个Server节点可以支持上万台设备每秒可以处理1.5万次请求理论上可以支持5万台设备。

三为什么要选择zabbix

1、首先zabbix的几乎支持我们工作中的所有环境。

2、其中zabbix的Server和Agent都采用C语言编码对系统资源占用非常小数据采集的性能和速度非常快。

3、可以将数据永久存储在数据库也可以设置存储时长便于对监控数据的二次分析。

4、非常丰富的扩展能力自定义监控项和实现数据采集几乎监控所有的数据。

四zabbix架构

1、zabbix的通用架构是C/S架构

2、还有一种分布式架构Client/Proxy/Server或者叫Client/Node/Server(我们后期主要以分布式架构去实现)

五zabbix运行流程

六zabbix的常见组件

下面是我们会用到的

zabbix-serverzabbix的核心程序(老师)

zabbix-agentzabbix的代理程序(学生)

zabbix-proxyzabbix的分布式部署程序(班长)

常见的监控流程是

1、老师直接找学生要作业学生交作业(直接监控)

2、老师找班长要作业班长去找学生收作业后给老师(分布式监控)

七zabbix安装

yum安装非常简单请参见官方文档https://www.zabbix.com/download

八IPMI获取服务器状态值

[rootzabbixServer ~]# ipmitool -I open sensor list

获取的信息

UID Light | 0x0 | discrete | 0x0080| na | na | na | na | na | na

Sys. Health LED | 0x0 | discrete | 0x0080| na | na | na | na | na | na

Power Supply 1 | 85 | Watts | ok | na | na | na | na | na | na

Power Supply 2 | 20 | Watts | ok | na | na | na | na | na | na

Power Supplies | 0x0 | discrete | 0x0180| na | na | na | na | na | na

Fan 1 | 6.272 | percent | ok | na | na | na | na | na | na

Fan 2 | 6.272 | percent | ok | na | na | na | na | na | na

Fan 3 | 6.272 | percent | ok | na | na | na | na | na | na

Fan 4 | 34.496 | percent | ok | na | na | na | na | na | na

Fan 5 | 43.120 | percent | ok | na | na | na | na | na | na

Fan 6 | 43.120 | percent | ok | na | na | na | na | na | na

Fans | 0x0 | discrete | 0x0180| na | na | na | na | na | na

01-Inlet Ambient | 21.000 | degrees C | ok | na | na | na | na | 42.000 | 46.000

02-CPU 1 | 40.000 | degrees C | ok | na | na | na | na | 70.000 | 0.000

03-CPU 2 | 40.000 | degrees C | ok | na | na | na | na | 70.000 | 0.000

04-P1 DIMM 1-3 | 25.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

05-P1 DIMM 4-6 | 26.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

06-P1 DIMM 7-9 | 24.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

07-P1 DIMM 10-12 | 24.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

08-P2 DIMM 1-3 | 29.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

09-P2 DIMM 4-6 | 30.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

10-P2 DIMM 7-9 | 26.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

11-P2 DIMM 10-12 | 25.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000

12-HD Max | 35.000 | degrees C | ok | na | na | na | na | 60.000 | 0.000

13-Chipset | 44.000 | degrees C | ok | na | na | na | na | 105.000 | 0.000

14-P/S 1 | 28.000 | degrees C | ok | na | na | na | na | 0.000 | 0.000

15-P/S 2 | 28.000 | degrees C | ok | na | na | na | na | 0.000 | 0.000

16-P/S 2 Zone | 29.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000

17-VR P1 | 35.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000

18-VR P2 | 38.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000

19-VR P1 Mem | 35.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000

20-VR P1 Mem | 32.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000

21-VR P2 Mem | 33.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000

22-VR P2 Mem | 35.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000

23-VR P1Vtt Zone | 28.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000

24-VR P2Vtt Zone | 30.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000

25-HD Controller | 56.000 | degrees C | ok | na | na | na | na | 100.000 | 0.000

26-iLO Zone | 31.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000

27-LOM Card | na | | na | na | na | na | na | 100.000 | 0.000

28-PCI 1 | na | | na | na | na | na | na | 100.000 | 0.000

29-PCI 2 | na | | na | na | na | na | na | 100.000 | 0.000

30-PCI 3 | na | | na | na | na | na | na | 100.000 | 0.000

31-PCI 4 | na | | na | na | na | na | na | 100.000 | 0.000

32-PCI 5 | na | | na | na | na | na | na | 100.000 | 0.000

33-PCI 6 | na | | na | na | na | na | na | 100.000 | 0.000

34-PCI 1 Zone | 26.000 | degrees C | ok | na | na | na | na | 65.000 | 70.000

35-PCI 2 Zone | 27.000 | degrees C | ok | na | na | na | na | 66.000 | 71.000

36-PCI 3 Zone | 27.000 | degrees C | ok | na | na | na | na | 66.000 | 71.000

37-PCI 4 Zone | na | | na | na | na | na | na | 65.000 | 70.000

38-PCI 5 Zone | na | | na | na | na | na | na | 65.000 | 70.000

39-PCI 6 Zone | na | | na | na | na | na | na | 65.000 | 70.000

40-I/O Board 1 | 29.000 | degrees C | ok | na | na | na | na | 66.000 | 71.000

41-I/O Board 2 | na | | na | na | na | na | na | 66.000 | 71.000

42-VR P1 Zone | 26.000 | degrees C | ok | na | na | na | na | 95.000 | 100.000

43-BIOS Zone | 36.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000

44-System Board | 29.000 | degrees C | ok | na | na | na | na | 80.000 | 85.000

45-SuperCap Max | 21.000 | degrees C | ok | na | na | na | na | 65.000 | 0.000

46-Chipset Zone | 33.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000

47-Battery Zone | 30.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000

48-I/O Zone | 30.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000

49-Sys Exhaust | 29.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000

50-Sys Exhaust | 31.000 | degrees C | ok | na | na | na | na | 75.000 | 80.000

Memory | 0x0 | discrete | 0x4080| na | na | na | na | na | na

Power Meter | 92 | Watts | ok | na | na | na | na | na | na

Clr 1 Bay 1 | 0x1 | discrete | 0x0180| na | na | na | na | na | na

Clr 1 Bay 2 | 0x1 | discrete | 0x0180| na | na | na | na | na | na

IPMI获取的值由于参考资料有限并不能全部理解其中的意思所以这在开始做监控的时候带来了很大的困扰最后考虑用SNMP协议取值SNMP有个MIB库记录了服务器状态值和OID的对应关系但是最后发现现在的服务器厂商并不是把所有的OID都公开出去了这就导致用SNMP监控也遇到了一个困难我们也不可能找厂商要这些OID的值既然HP服务器ILO口需要授权那能给你OID吗所以SNMP监控我排除了还是把思路转向了IPMI最后查资料发现第二列是各硬件的温度(也有电压值)信息要是温度或者电压为0就说明硬件已经不工作了(测试发现的)但是里面还有一些没有数值的信息如0x00x1na等这些是什么意思呢

na传感器返回的值要是na这个硬件就是没使用被关闭的状态可以用命令去查看:

[rootzabbixServer ~]# ipmitool -v sensor list # 获取到的值为na

Sensor ID : 28-PCI 1 (0x28)

Entity ID : 11.2

Sensor Type (Threshold) : Temperature

Sensor Reading : Unable to read sensor: Device Not Present

查看这个Entity ID的信息

[rootzabbixServer ~]# ipmitool sdr entity 11.2 # 发现状态是disabled

28-PCI 1 | 28h | ns | 11.2 | Disabled

0x0、0x1这些值并不是说硬件未使用而是记录一个总的过程但是具体代码代表什么目前还没查到所以这个信息可以排除掉只要有硬件在使用过程中发生故障不使用那状态绝对是0所以我们只要监0的值就可以了。

1 #!/usr/bin/python3

2 #3

4 importos5

6 hardware_status os.popen(cat /tmp/zabbix_*.info | awk -F "|" \{print $2}\ | grep -vE "[a-z|A-Z]")7 result_status hardware_status.readlines()8

9 for i inresult_status:10 if i.strip() "0":11 print(1)12 break

13 else:14 print(0)15 break

九引入zabbix监控

1、创建键值对

[rootzabbixServer ~]# vim /etc/zabbix/zabbix_agentd.conf #切换到296行

UserParameterHP_hardware,/etc/zabbix/scripts/test.py

前面的HP_ hardware是键

后面的/etc/zabbix/scripts/test.py是值

我们创建好了之后测试一下是否能通过zabbix-agent获取到值

[rootzabbixServer ~]# zabbix_get -s 192.168.2.1 -k "HP_hardware"

0

发现能获取到值要是获取不到值说明脚本是有问题的。

2、创建主机组

3、 创建模板

4、 创建应用集

5、 创建items

6、 创建触发器

7、 创建趋势图

8、 创建报警动作

用脚本报警需要查看zabbix-server.conf里面435行内容

[rootlinux-node1 ~]# vim /etc/zabbix/zabbix_server.conf

AlertScriptsPath/usr/lib/zabbix/alertscripts

这里说明了zabbix脚本的配置路径我们把脚本放在这里面即可

添加报警媒介

配置报警动作

恢复通知

附告警通知内容

告警标题:故障({TRIGGER.STATUS}),服务器:({HOSTNAME1}发生:{TRIGGER.NAME})故障

告警信息:

告警事件ID: {EVENT.ID}

告警主机IP: {HOST.IP}

告警主机: {HOSTNAME1}

告警时间: {EVENT.DATE}-{EVENT.TIME}

告警等级: {TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目: {TRIGGER.KEY1}

问题详情: {ITEM.NAME}:{ITEM.VALUE}

当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}

恢复标题:恢复({TRIGGER.STATUS}),服务器:({HOSTNAME1}:{TRIGGER.NAME})已恢复

恢复信息:

告警事件ID: {EVENT.ID}

告警主机IP: {HOST.IP}

告警主机: {HOSTNAME1}

告警时间: {EVENT.DATE}-{EVENT.TIME}

告警等级: {TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目: {TRIGGER.KEY1}

问题详情: {ITEM.NAME}:{ITEM.VALUE}

当前状态: {TRIGGER.STATUS}

十达到条件触发微信报警

恢复后提醒

十一zabbix部署架构图

十二附企业微信报警脚本

企业号添加第三方应用参见技术大佬的技术博文

https://blog.csdn.net/qq_31613055/article/details/78831607

1 #!/usr/bin/python3

2 #3 #-*- coding:utf-8 -*-

4

5 importrequests6 importsys7 importjson8

9 corpid企业ID10 appsecret企业号的信息11 agentid应用组ID12

13 #获取accesstoken

14 token_urlhttps://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid corpid appsecret15 reqrequests.get(token_url)16 accesstokenreq.json()[access_token]17

18 #发送消息

19 msgsend_urlhttps://qyapi.weixin.qq.com/cgi-bin/message/send?access_token accesstoken20

21 tousersys.argv[1]22 subjectsys.argv[2]23 toparty22

24 messagesys.argv[3]25

26 params{27 "touser": touser,28 "toparty": toparty,29 "msgtype": "text",30 "agentid": agentid,31 "text": {32 "content": message33 },34 "safe":035 }36

37 reqrequests.post(msgsend_url,datajson.dumps(params,ensure_asciiFalse).encode(utf-8))

【本文来自:台湾服务器 http://www.558idc.com/tw.html 复制请保留原URL】
上一篇:为何国内外的汽车功能按键不设置成中文
下一篇:没有了
网友评论