Nagios监控Dell服务器硬件状态

简介:

Server:

check_openmanage 是一个 Nagios 的插件,它基于 OMSA 获取相关的报道信息,用来检测安装有 OpenManage Server Administrator (OMSA) 的戴尔服务器的运行状态,包括存储系统、电源、温度等信息。

官网:http://folk.uio.no/trondham/software/check_openmanage.html

最新版本下载链接:http://folk.uio.no/trondham/software/files/check_openmanage-3.7.12.tar.gz

nagios提供了两种方式进行监控信息的获取。

      1、nagios 服务器端 check_nrpe 调用被监控端的 check_openmanage 来实现,这种方式要在被监控端安装 OMSA 和 check_openmanage,check_nrpe会消耗服务器性能,不建议使用

      2、nagios 服务器端直接通过 check_openmanage 来远程监控。这种方式要在 nagios 服务器端安装 perl-Net-SNMP,在被监控端安装SNMP和OMSA。这种方式也适合使用zabbix的运维监控环境。

wKioL1c3V-yxxiR4AAFwH0VInF4810.jpg

1、安装 perl-Net-SNMP

1
  [root@localhost src] # yum install -y perl-Net-SNMP

2、check_openmanage安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
[root@localhost src] # tar zxvf check_openmanage-3.7.12.tar.gz 
[root@localhost src] # cd check_openmanage-3.7.12
[root@localhost check_openmanage-3.7.12] # cp check_openmanage /usr/local/nagios/libexec
[root@localhost check_openmanage-3.7.12] # cd /usr/local/nagios/libexec
[root@localhost libexec] # chown nagios:nagios check_openmanagenew 
[root@localhost libexec] # ./check_openmanage --help 
【通用选项】
-f,--config          # 指定配置文件
-p,--perfdata        # 输出性能数据,常和--only连用,不要和-d连用
-t,--timeout 时间值  # 设定check_openmanage的执行超时时间
-c,--critical        # 自定义温度的critical阈值
-w,--warning         # 自定义温度的warning阈值
-F,--fahrenheit      # 使用华氏温度作为温度单位
-d,--debug           # 显示所有检查项目
-h,--help            # 获取check_openmanage帮助信息
-V,--version         # 获取check_openmanage的版本信息
【SNMP选项】
-H,-- hostname        # 使用snmp协议,获取指定主机名或ip的服务器硬件信息
-C,--community       # 自定义snmp的团体名,默认为public
-P,--protocol        # 自定义snmp的协议版本,默认为2c
--port                # 自定义snmp的端口号,默认为161
-6,--ipv6            # 使用ipv6替代ipv4,默认为no
--tcp                 # 使用TCP协议替代UDP协议,默认为no
【输出选项】
-i,--info            # 输出的警告信息加上服务器的SN号作为前缀
-e,--extinfo         # 输出系统信息
-s,--state           # 输出的信息之前自带警告级别,如warning或critical
-S,--short-state     # 输出的信息之前自带警告级别缩写,如W或C
-o,--okinfo          # 输出信息为一行(默认)
-B,--show-blacklist  # 输出黑名单列表信息,如果加入黑名单的信息多了,可以通过-B查看黑名单的列表信息
-I,--htmlinfo        # 输出带可点击链接的html格式信息
【检查控制和黑名单】
-a,--all             # 获取日志统计和详细日志输出
-b,--blacklist component=ID号   # 黑名单,指定某个组件的指定ID信息不显示。ID信息通过./check_openmanage -d可以看到。./check_openmanage -H 10.15.98.177 -d
--only                # 仅输入某项监控数据
--check component=[0|1],esmlog=[0|1]   # 检查单个项目或组合项目,0为不检查,1为检查,单独使用
--no-storage          # 不检查存储信息
--vdisk-critical      # 将虚拟磁盘的任何警告都提升为崩溃级别critical
  
【自定义输出信息】
--postmsg  '自定义信息'   # 在输出的结尾输出该自定义信息
在自定义信息中,我们可以使用如下变量
        %m   # 系统型号
        %s   # 系统SN号
        %b   # BIOS版本
        %d   # BIOS发型时间
        %o   # 操作系统名称
        %r   # 操作系统内核版本
        %p   # 物理磁盘数量
        %l   # 逻辑磁盘数量
        %n   # 表示换行符
        %%   # 表示%百分号
  [root@localhost libexec] # ./check_openmanage   如果提示"Storage Error",则需要加上--no-storage参数,不带任何参数默认输出服务器的warning和critical的报警信息
  [root@localhost libexec] # ./check_openmanage -s     输出带有状态提示的信息 
  [root@localhost libexec] # ./check_openmanage -s -b ctrl_fw=0  不检查Firmware固件版本更新提示
  [root@localhost libexec] # ./check_openmanage -s -b pdisk_cert=all   不检查磁盘未认证的提示
  [root@localhost libexec] # ./check_openmanage -b ctrl_fw=0\/pdisk=0:0:1:0    不检查ID为0的Firmware固件版本更新提示和ID为0:0:1:0的物理磁盘的未认证提示
  [root@localhost libexec] # ./check_openmanage -b ctrl_fw=0\/pdisk=ALL   不检查ID为0的Firmware固件版本更新提示和未认证的物理磁盘提示
[root@localhost libexec] # ./check_openmanage -d   输出所有检查项目
[root@localhost libexec] # ./check_openmanage -i   将服务器的SN号作为警告信息的输出前缀
[root@localhost libexec] # ./check_openmanage --no-storage   不检查存储
[root@localhost libexec] # ./check_openmanage -e -b ctrl_fw=0\/pdisk=ALL   不显示Firmware固件版本更新和未认证磁盘提示信息,并输出系统信息
[root@localhost libexec] # ./check_openmanage -H 10.15.98.177 -C public -e -b bat=0:0 -b ctrl_fw=0\/pdisk=ALL --postmsg %o
Controller 1 [PERC H800 Adapter]: Firmware  '12.10.4-0001'  is out of  date
[root@localhost libexec] # ./check_openmanage -H 10.15.98.177 -d|grep -C3 "is out of date"
   STATE  |    ID    |  MESSAGE TEXT                                          
---------+----------+--------------------------------------------------------
       OK |        0 | Controller 0 [PERC H310 Adapter] is Ready
CRITICAL |        1 | Controller 1 [PERC H800 Adapter]: Firmware  '12.10.4-0001'  is out of  date                 #id为1
       OK |        1 | Controller 1 [PERC H800 Adapter] is Degraded
       OK |  0:0:1:0 | Physical Disk 0:1:0 [SAS-HDD 300GB] on ctrl 0 is Online
       OK |  1:0:0:2 | Physical Disk 0:0:2 [SAS-HDD 2.0TB] on ctrl 1 is Online
[root@localhost libexec] # ./check_openmanage -H 10.15.98.177 -C public -e -b ctrl_fw=1 -b bat=0:0 -b ctrl_fw=0\/pdisk=ALL --postmsg %o
OK - System:  'PowerEdge R620' , SN:  '马赛克' , 16 GB  ram  (4 dimms), 2 logical drives, 7 physical drives
[root@localhost libexec] # ./check_openmanage -H 10.17.205.164 -C public -e -b bat=0:0 -b ctrl_fw=0 -b ctrl_fw=0\/pdisk=ALL --postmsg %o
Controller 0 [PERC H700 Integrated]: Driver  '4.05.01.64'  is out of  date
[root@localhost libexec] # ./check_openmanage -H 10.17.205.164 -d|grep -i "is out of date"
CRITICAL |        0 | Controller 0 [PERC H700 Integrated]: Firmware  '12.10.1-0001'  is out of  date    #-b ctrl_fw=0 忽略此项
CRITICAL |        0 | Controller 0 [PERC H700 Integrated]: Driver  '4.05.01.64'  is out of  date        #-b ctrl_driver=0 忽略此项
[root@localhost libexec] # ./check_openmanage -H 10.17.205.164 -C public -e -b bat=0:0 -b ctrl_fw=0 -b ctrl_driver=0 -b ctrl_fw=12.10.4-0001\/pdisk=ALL --postmsg %o
OK - System:  'PowerEdge R710 II' , SN:  '3D4973X' , 32 GB  ram  (8 dimms), 2 logical drives, 5 physical drives
[root@localhost libexec] # ./check_openmanage -H 192.168.100.165 -C public -e -b bat=0:0 -b ctrl_driver=ALL\/ctrl_fw=ALL\/pdisk=ALL --postmsg %o
Battery probe 0 [System Board CMOS Battery] is Unknown reading
------ SYSTEM: PowerEdge R630, SN: 马赛克
Microsoft Windows Server 2008 R2, Enterprise x64 Edition
[root@localhost libexec] # ./check_openmanage -H 192.168.100.165 -C public -e -b bat=0:0\/bp=ALL\/ctrl_driver=ALL\/ctrl_fw=ALL\/pdisk=ALL --postmsg %o
OK - System:  'PowerEdge R630' , SN:  '马赛克' , 128 GB  ram  (8 dimms), 1 logical drives, 3 physical drives    #bp=ALL  忽略电池检测
[root@localhost libexec] #

黑名单功能中可以使用的参数表

wKiom1jtg3iAymNsAADcQlgbc3E462.png

wKioL1jtg3nR3FkXAABAHAQrg7o896.png

wKiom1jtg3myYE6bAAAbm9ykI90608.png

更多信息查看官方文档http://folk.uio.no/trondham/software/check_openmanage.html

wKiom1jtidngkQEyAADOdBdtioE627.png

Tips:最近发现一台服务器硬盘坏了,nagios里还是显示warning,所以将check_openmange里的344行的warning改成critical,便于及时发现

1
2
3
4
5
6
7
8
  [root@localhost libexec] # vim check_openmanage
  341 %reverse_exitcode
  342   = (
  343      $E_OK       =>  'OK' ,
  344      $E_WARNING  =>  'CRITICAL' ,
  345      $E_CRITICAL =>  'CRITICAL' ,
  346      $E_UNKNOWN  =>  'UNKNOWN' ,
  347     );



3、配置command

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[root@localhost libexec] # vim /usr/local/nagios/etc/objects/commands.cfg
#检查存储设备
define  command  {
     command_name check_storage
     command_line $USER1$ /check_openmanage  -H $HOSTADDRESS$ --only storage -p -s -b ctrl_fw=0
}
#检查cpu
define  command  {
     command_name check_cpu
     command_line $USER1$ /check_openmanage  -H $HOSTADDRESS$ --only cpu -p -s -b ctrl_fw=0
}
#检查内存
define  command  {
     command_name check_memory
     command_line $USER1$ /check_openmanage  -H $HOSTADDRESS$ --only memory -p -s -b ctrl_fw=0
}
#检查电源
define  command  {
     command_name check_power
     command_line $USER1$ /check_openmanage  -H $HOSTADDRESS$ --only power -p -s -b ctrl_fw=0
}
#检查温度
define  command  {
     command_name check_temp
     command_line $USER1$ /check_openmanage  -H $HOSTADDRESS$ --only temp -p -s -w $ARG1$ -c $ARG2$ -b ctrl_fw=0
}

--only是指只监控某一项,-p是进行画图,-s是状态描述,-b是黑名单,由于我们的服务器固件版本低,为不影响其他监控项在此我们将其加入黑名单将其剔除。


4、配置监控服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
define service{
     use                      local -service    
     host_name               usvr-131,usvr-119,usvr-70,usvr-71,usvr-72,usvr-73,usvr-82,usvr-83,usvr-84,usvr-85,usvr-86,usvr-87
     service_description     omsa_storage
     check_command           check_storage
     service_groups          dell-openmanage
     notifications_enabled   1  
     }   
define service{
     use                      local -service    
     host_name               usvr-131,usvr-119,usvr-70,usvr-71,usvr-72,usvr-73,usvr-82,usvr-83,usvr-84,usvr-85,usvr-86,usvr-87
     service_description     omsa_cpu
     check_command           check_cpu
     service_groups          dell-openmanage
     notifications_enabled   1  
     }   
define service{
     use                      local -service    
     host_name               usvr-131,usvr-119,usvr-70,usvr-71,usvr-72,usvr-73,usvr-82,usvr-83,usvr-84,usvr-85,usvr-86,usvr-87
     service_description     omsa_memory
     check_command           check_memory
     service_groups          dell-openmanage
     notifications_enabled   1  
     }   
define service{
     use                      local -service    
     host_name               usvr-131,usvr-119,usvr-70,usvr-71,usvr-72,usvr-73,usvr-82,usvr-83,usvr-84,usvr-85,usvr-86,usvr-87
     service_description     omsa_power
     check_command           check_power
     service_groups          dell-openmanage
     notifications_enabled   1  
     }   
define service{
     use                      local -service    
     host_name               usvr-131,usvr-119,usvr-70,usvr-71,usvr-72,usvr-73,usvr-82,usvr-83,usvr-84,usvr-85,usvr-86,usvr-87
     service_description     omsa_temp
     check_command           check_temp! "0=30/15" ! "0=40/10"
     service_groups          dell-openmanage
     notifications_enabled   1  
     }



报错1:

ERROR: You need perl module Net::SNMP to run check_openmanage in SNMP mode

原因:

SNMP监控模式下,check_openmanage 需要 perl-Net-SNMP 支持

解决方案:

安装perl-Net-SNMP包

# yum install -y perl-Net-SNMP

报错2:

ERROR: (SNMP) OpenManage is not installed or is not working correctly

SNMP TABLE ERROR : Requested table is empty or does not exist

原因:

snmp未配置导致。如果先安装snmp,在安装omsa的时候会自动帮你配置好snmp

解决方案:

1、先安装net-snmp,再安装omsa(即srvadmin-all)

or

2、手动配置信息如下:

vim /etc/snmp/snmpd.conf

view all included .1    

access notConfigGroup "" any noauth exact all none none

smuxpeer .1.3.6.1.4.1.674.10892.1 一般安装srvadmin的时候会自动加上的

报错3:

SNMP CRITICAL: No response from remote host 'X.X.X.X'

原因:

被监控端没有安装snmp服务

解决方案:

安装snmp服务

# yum install -y net-snmpd



Client:

对Dell服务器的硬件监控需要安装DELL的OMSA,DELL OMSA的全称为Dell Openmanage Server Administrator,它是戴尔公司基于自主研发力量开发的IT系统管理解决方案,


nagios监控Dell linux系统

1、安装snmp服务

1
[root@BETA6 yum.repos.d] # yum -y install net-snmp net-snmp-devel net-snmp-utils


2、安装dell的yum源

wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash

或者

wget -q -O - http://linux.dell.com/repo/hardware/OMSA_7.2/bootstrap.cgi | bash

注意:只适用rhel系统,CentOS系统无法安装

1
2
3
4
[root@BETA6 src] # wget -q -O - http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash
Cleaning up Everything
Done!
[root@BETA6 src] #

3、安装dell osma

yum -y install OpenIPMI srvadmin-all

或者

yum install -y srvadmin-base srvadmin-storageservices   推荐,安装必要的软件,速度快

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@BETA6 yum.repos.d] # yum -y install OpenIPMI srvadmin-all
[root@BETA6 yum.repos.d] # /opt/dell/srvadmin/sbin/srvadmin-services.sh start
[root@BETA6 yum.repos.d] # /etc/init.d/dataeng stop
[root@BETA6 yum.repos.d] # /etc/init.d/dataeng start
[root@BETA6 yum.repos.d] # chkconfig dataeng on
或者
[root@BETA6 yum.repos.d] # /opt/dell/srvadmin/sbin/srvadmin-services.sh enable  推荐
instsvcdrv         0:off   1:off   2:on    3:on    4:on    5:on    6:off
dataeng         0:off   1:off   2:on    3:on    4:on    5:on    6:off
dsm_om_shrsvc     0:off   1:off   2:on    3:on    4:on    5:on    6:off
ipmi             0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@BETA6 yum.repos.d] # /opt/dell/srvadmin/sbin/srvadmin-services.sh status
dell_rbu(module) is running
ipmidriver is running
dsm_sa_datamgrd(pid 1331 1197) is running
dsm_sa_eventmgrd(pid 1381) is running
dsm_sa_snmpd(pid 1440) is running
dsm_om_shrsvcd(pid 1508) is running...
dsm_om_connsvcd(pid 1562) is running...
[root@BETA6 yum.repos.d] # netstat -antlp|grep :1311

如果有此端口则说明我们的srvadmin安装成功,如果没有可能是安装出现问题了;dsm_om_connsvc服务监听了TCP协议的1311端口,并且提供了http访问的功能。另外我们安装完后首次启动用/opt/dell/srvadmin/sbin/srvadmin-services.sh start,否则用service dataeng start启动可能会有问题,导致omsa没有完全启动。dsm_om_connsvc服务监听了TCP协议的1311端口,并且提供了http访问的功能。


注意:

(1)一定要先安装snmp服务再安装omsa,这样omsa会自动将你的snmp服务进行配置,如果顺序颠倒则可能会导致报一下错误:


ERROR: (SNMP) OpenManage is not installed or is not working correctly


这是因为我们的/etc/snmp/snmpd.conf配置文件有漏改的地方,主要是以下几处:(改正以后如下)

view  all included   .1

view  systemview  included       .1.3.6.1.2.1.1

view  systemview  included      .1.3.6.1.2.1.25.1.1

access notConfigGroup ""any noauth exact all all none


(2)如果报一下错误“SNMP CRITICAL: No response from remote host 'X.X.X.X'”,则说明被监控端没有安装snmp服务


4、查看本机的硬件状态

1)查看系统主要组件的温度

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@BETA6 yum.repos.d] # /opt/dell/srvadmin/bin/omreport chassis temps
Temperature Probes Information
 
------------------------------------
Main System Chassis Temperatures: Ok
------------------------------------
 
Index                     : 0
Status                    : Ok
Probe Name                : System Board Inlet Temp
Reading                   : 27.0 C
Minimum Warning Threshold : 3.0 C
Maximum Warning Threshold : 42.0 C
Minimum Failure Threshold : -7.0 C
Maximum Failure Threshold : 47.0 C
......


2)查看虚拟硬盘的状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@BETA6 yum.repos.d] # /opt/dell/srvadmin/bin/omreport storage vdisk controller=0
Virtual Disk 0 on Controller PERC H710 Mini (Embedded)
 
Controller PERC H710 Mini (Embedded)
ID                        : 0
Status                    : Ok
Name                      : Virtual Disk 0
State                     : Ready
Hot Spare Policy violated : Not Assigned
Encrypted                 : No
Layout                    : RAID-5
Size                      : 1,675.50 GB (1799054426112 bytes)
Device Name               :  /dev/sda
......


3)查看控制器(即RAID卡)的属性

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[root@BETA6 yum.repos.d] # /opt/dell/srvadmin/bin/omreport storage controller
  Controller  PERC H710 Mini (Embedded)
 
Controllers
ID                                            : 0
Status                                        : Ok
Name                                          : PERC H710 Mini
Slot ID                                       : Embedded
State                                         : Ready
Firmware Version                              : 21.2.0-0007
Latest Available Firmware Version             : Not Applicable
Driver Version                                : 00.00.06.15-rh
Minimum Required Driver Version               : Not Applicable
Storport Driver Version                       : Not Applicable
Minimum Required Storport Driver Version      : Not Applicable
Number of Connectors                          : 2
Rebuild Rate                                  : 30%
......


5、防火墙配置

由于我们使用的是SNMP来监控,因此我们需要在被监控端对nagios服务器开启snmp端口udp 161

/sbin/iptables -A INPUT -i em1 -p udp -s 10.10.5.89 --dport 161 -m comment --comment "nagios snmp" -j ACCEPT



OMSA在Windows服务器上安装部署


访问戴尔技术支持的官方网站:http://www.dell.com/support/home/cn/zh/cnbsd1?c=cn&l=zh&s=bsdi,根据sn号查找驱动程序选项栏里统管理标签下下载对应的版本

wKioL1cZ7viC1FfDAACKVdNfT3s401.png具体安装过程参照此贴:http://zh.community.dell.com/techcenter/systems-management/w/wiki/559.omsawindows




本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1766745,如需转载请自行联系原作者

相关文章
|
1月前
|
弹性计算 监控 数据可视化
ecs自定义监控
ecs自定义监控
22 1
|
1月前
|
Arthas 弹性计算 运维
阿里云ECS监控服务
阿里云ECS监控服务
401 2
|
1月前
|
弹性计算 监控 数据可视化
ECS网络流量监控
ECS网络流量监控
50 2
|
25天前
|
弹性计算 运维 监控
ECS资源监控
ECS资源监控涉及CPU、内存、磁盘I/O、网络流量、系统负载和进程的关键指标,通过云服务商控制台、监控服务、API与SDK、运维工具进行实时监控和告警设置。支持历史数据查询、事件监控,以及使用Windows资源监视器和Linux系统工具进行操作系统层面监控。全面监控确保ECS实例稳定运行、资源有效利用和问题及时处理。如需特定云服务商的指导,请询问。
28 3
|
28天前
|
弹性计算 运维 监控
ecs监控与评估
阿里云ECS提供全面的监控与评估解决方案,包括云监控服务(实时资源指标、告警)、ECS实例详情页(运行状态查看)、资源负载评估(综合性能得分)、ECS Insight(多维度分析)、报警配置、流量管理优化(负载均衡、CDN)。这些工具帮助用户有效管理资源、识别潜在风险、优化性能,确保云服务稳定高效。
15 1
|
1月前
|
监控 JavaScript 安全
监控内网电脑软件设计与实现:基于Node.js的服务器端架构分析
在当今信息技术高度发达的时代,监控内网电脑的需求日益增长。企业需要确保网络安全,个人用户也需要监控家庭网络以保护隐私和安全。本文将介绍一种基于Node.js的服务器端架构,用于设计和实现监控内网电脑软件。
90 0
|
1月前
|
弹性计算 监控 网络协议
ECS操作系统监控
ECS操作系统监控
16 2
|
24天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
28天前
|
存储 弹性计算 数据可视化
要将ECS中的文件直接传输到阿里云网盘与相册(
【2月更文挑战第31天】要将ECS中的文件直接传输到阿里云网盘与相册(
414 4
|
29天前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程

热门文章

最新文章