免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2377 | 回复: 0
打印 上一主题 下一主题

通过PHP+SNMP获取远程服务器状态的方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-22 17:25 |只看该作者 |倒序浏览
在这里,关于apache和mysql的安装就不介绍了,可以参考网上大量的帖子。
1、安装apache
2、安装mysql
3、先安装snmp
(1)下载wget http://jaist.dl.sourceforge.net/sourceforge/net-snmp/net-snmp-5.1.3.1.tar.gz
(2)解压tar zxvf net-snmp-5.1.3.1.tar.gz
(3)cd net-snmp-5.1.3.1;./configure --prefix=/usr/local/net-snmp-5.1.3.1
(4)由于直接编译PHP不支持snmp,所以在这里得小小改动下,在目录/usr/local/net-snmp-5.1.3.1/include/net-snmp/中,编辑net-snmp-config.h这个文件,大概在1331行左右,找到

Quote:


/* UNdefine to allow specifying zero-length community string */
/*#define NO_ZEROLENGTH_COMMUNITY 1 */


改为:

Quote:


/* UNdefine to allow specifying zero-length community string */
#define NO_ZEROLENGTH_COMMUNITY 1 */


这样就PHP就支持SNMP了。
(4)接着make;make install。在make install时,系统会提示相关问题,根据实际情况选择,我选择了snmp v1,其它的一路回车
(5)安装完成后,就要启动snmp服务了。首先,编辑snmpd.conf配置文件,我是内容是:vi /etc/snmpd.conf

Quote:


com2sec notConfigUser default   public

group  notConfigGroup v1      notConfigUser

view all included .1.3.6.1
access notConfigGroup ""   any    noauth  exact all none none

disk /
disk /home
disk /usr/local
disk /tmp


(6)下面的命令启动snmp,相关参数的涵义请参考帮助命令
/usr/local/net-snmp-5.1.3.1/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd -a -c /etc/snmpd.conf
(7)测试,如果有下列数据显示,snmp就成功启动了

Quote:


[root@localhost net-snmp]# /usr/local/net-snmp-5.1.3.1/bin/snmpwalk -c public localhost
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.12 #1 Wed Aug 24 16:34:55 CST 2005 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
SNMPv2-MIB::sysUpTime.0 = Timeticks: (237707) 0:39:37.07
SNMPv2-MIB::sysContact.0 = STRING: root@
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
SNMPv2-MIB::sysLocation.0 = STRING: Unknown
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB
......


4、安装PHP
在PHP的安装目录中进行编译:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/httpd-2.0.54/bin/apxs --with-mysql=/usr/local/mysql --with-snmp=/usr/local/net-snmp/

make;makeinstall
5、测试PHP+snmp
在apache中的Document目录中编辑文件:

Quote:


vi index.php
<?php
$a = snmpwalkoid("127.0.0.1","public","1.3.6.1.4.1.2021.11.52";
for (reset($a);$i = key($a);next($a)){
echo "$i: $a[$i]<br>;\n";
}
?>;


在浏览器中如有相关显示,则说明已经成功了!虽然已经有数值显示出来了,但是我只是需要结果,这应该如何做呢?呵呵,当然有办法:

Quote:


<?php
snmp_set_valueretrieval(SNMP_VALUE_PLAIN);
$a = snmpwalk("127.0.0.1","public","1.3.6.1.4.1.2021";

foreach($a as $port)
{
echo "$port<br>;\n";
}
?>;


主要是这条命令snmp_set_valueretrieval(SNMP_VALUE_PLAIN)就可以实现我们的目标了,到这里,PHP+SNMP的配置基本成功了,接着就要进行相关的开发了,呵呵!开发好了,再帖出来和大家分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP