Liunx 下的 SNMP 及 PHP如何链接

YUM 安装php

1  yum install -y net-snmp net-snmp-utilslinux

三、启动snmp服务

若安装成功,则可以使用命令:服务器

$ service snmpd startoracle

提示:Starting snmpd: [  OK  ],则启动snmp服务成功。dom

 

你能够将snmp服务设置为开机自启动,这样免去手动启动的麻烦。工具

使用命令:$ chkconfig snmpd on,将snmpd服务设为开机自启动。测试

 

而后使用命令:$ chkconfig --list | grep snmpd,查看是否已经设置成功。spa

 

 

四、验证snmp服务

(1)使用snmpwalk命令,查看本机localhost的主机名:.net

 

如上,获取到本机主机名为Oracle.domain.com,则表示snmp服务已经能够正常使用。pwa

(2)使用snmptranslate命令,检查snmp工具是否可使用:

 

如上,查出了部分oid,则表示snmp工具能够正常使用。

(3)测试远端主机是否能够获取数据。

我这里登录了另一台Linux主机,该主机也按照上面的步骤安装好snmp服务及snmp工具。经过这台主机,获取远端主机的数据,这时需指定远端主机的IP地址:

 

如上,能够看到经过远端主机获取到的主机名,与在本机获取到的主机名是一致的。

 

2、配置snmp服务

以上安装完成后,使用的是snmp的默认配置,经过这些默认配置,咱们只能获取主机的部分信息。但一些其余的重要信息,没法获取。如主机的CPU使用状况,内存使用状况等。

 

如上,没法获取CPU的空闲率(注:1.3.6.1.4.1.2021.11.11.0是主机CPU空闲率的oid)。

这时候,若要获取主机的一些重要信息,则要修改snmp的默认配置。

配置方法:修改/etc/snmp/snmpd.conf文件

 

 

一、修改查看设备节点的权限 

在该文件中,找到以下位置:

 

view:定义了能够查看哪些节点设备的信息。

snmp默认配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,而主机CPU和内存等设备都不在这些节点下,因此没法获取这些数据。

所以,能够修改这个配置,以下:

 

在此处添加了一行:

view    systemview    included   .1

表示能够查看.1节点下的全部设备信息。 

 

二、修改Process checks的配置

找到以下位置:

 

# proc mountd

# proc ntalkd 4

# proc sendmail 10 1

三行前的“#”号去掉,取消注释,结果为:

 

 

  

三、修改Executables/scripts配置

找到以下位置:

 

#exec echotest /bin/echo hello world

一行前的“#”号去掉,取消注释。

 

四、修改disk checks配置

找到以下位置:

 

#disk / 10000

一行前的“#”号去掉,取消注释。

 

五、修改load average checks配置

找到以下位置:

 

将 #load 12 14 14

一行前的“#”号去掉,取消注释。

六、保存修改,重启snmp服务

 

七、验证修改配置后的snmp服务

 

如上,经过本机localhost获取到CPU的空闲率为97%。

 

如上,经过远端主机获取到CPU的空闲率为93%。

 

PHP代码以下

<?php function get_server_info($host, $community, $objectid) { $a = snmpget($host, $community, $objectid); $tmp = explode(":", $a); if (count($tmp) > 1) { $a = trim($tmp[1]); } return $a;}$host="172.19.66.32";$community="public";//获取$host服务器的1分钟平均负载$load1 = get_server_info($host,$community,"1.3.6.1.4.1.2021.11.11.0") ;echo $host."当前CPU空闲率为".$load1."%";?>

相关文章
相关标签/搜索