CentOS 下的 SNMP 及 PHP如何連接

YUM 安裝

1  yum install -y net-snmp net-snmp-utils

3、啓動snmp服務

若安裝成功,則可使用命令:

$ service snmpd start

提示:Starting snmpd: [  OK  ],則啓動snmp服務成功。

 

你可以將snmp服務設置爲開機自啓動,這樣免去手動啓動的麻煩。

使用命令:$ chkconfig snmpd on,將snmpd服務設爲開機自啓動。

 

然後使用命令:$ chkconfig –list | grep snmpd,查看是否已經設置成功。

 

 

4、驗證snmp服務

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

 

如上,獲取到本機主機名爲Oracle.domain.com,則表示snmp服務已經可以正常使用。

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

 

如上,查出了部分oid,則表示snmp工具可以正常使用。

(3)測試遠端主機是否可以獲取數據。

我這裏登陸了另外一臺Linux主機,該主機也按照上面的步驟安裝好snmp服務及snmp工具。通過這臺主機,獲取遠端主機的數據,這時需指定遠端主機的IP地址:

 

如上,可以看到通過遠端主機獲取到的主機名,與在本機獲取到的主機名是一致的。

 

二、配置snmp服務

以上安裝完成後,使用的是snmp的默認配置,通過這些默認配置,我們只能獲取主機的部分信息。但一些其他的重要信息,無法獲取。如主機的CPU使用情況,內存使用情況等。

 

如上,無法獲取CPU的空閒率(注:1.3.6.1.4.1.2021.11.11.0是主機CPU空閒率的oid)。

這時候,若要獲取主機的一些重要信息,則要修改snmp的默認配置。

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

 

 

1、修改查看設備節點的權限 

在該文件中,找到如下位置:

 

view:定義了可以查看哪些節點設備的信息。

snmp默認配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1節點下的設備信息,而主機CPU和內存等設備都不在這些節點下,所以無法獲取這些數據。

因此,可以修改這個配置,如下:

 

在此處添加了一行:

view    systemview    included   .1

表示可以查看.1節點下的所有設備信息。 

 

2、修改Process checks的配置

找到如下位置:

 

# proc mountd

# proc ntalkd 4

# proc sendmail 10 1

三行前的“#”號去掉,取消註釋,結果爲:

 

 

  

3、修改Executables/scripts配置

找到如下位置:

 

#exec echotest /bin/echo hello world

一行前的“#”號去掉,取消註釋。

 

4、修改disk checks配置

找到如下位置:

 

#disk / 10000

一行前的“#”號去掉,取消註釋。

 

5、修改load average checks配置

找到如下位置:

 

將 #load 12 14 14

一行前的“#”號去掉,取消註釋。

6、保存修改,重啓snmp服務

 

7、驗證修改配置後的snmp服務

 

如上,通過本機localhost獲取到CPU的空閒率爲97%。

 

如上,通過遠端主機獲取到CPU的空閒率爲93%。

 

PHP代碼如下

<?php
function get_server_info(host, community, objectid) {<br /> $a = snmpget($host, $community, $objectid);<br /> $tmp = explode(":", $a);<br /> if (count($tmp) &gt; 1) {<br /> $a = trim($tmp[1]);<br /> }<br /> return $a;<br />}<br /> host=”172.19.66.32”;
community="public";<br/>// host服務器的1分鐘平均負載
load1=getserverinfo( host,community,"1.3.6.1.4.1.2021.11.11.0");<br/>echo host.”當前CPU空閒率爲”.$load1.”%”;
?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章