php4 snmpget函数,php+snmp监控远程服务器信息

=================================================================== 查看阅读 HOST-RESOURCES 的 MIB 文件 more net-snmp源码/mibs/HOST-RESOURCES-MIB.txt =================================================================== host 所有资源hrSystem

===================================================================

查看阅读 HOST-RESOURCES 的 MIB 文件

more net-snmp源码/mibs/HOST-RESOURCES-MIB.txt

===================================================================

host 所有资源

hrSystem 系统日期/时间,初始化设备,内核引导参数,系统当前的登录用户数,当前的进程数,支持的最大进程数

hrStorage 内存大小,磁盘大小,使用情况等

hrDevice 设备ID,设备类型,对设备的描述,引导盘,挂载分区等

hrSWRun 线上系统的进程ID,进程名,涉及的参数,运行状态等

hrSWRunPerf 线上系统进程占用 CPU 的时间,占用内存的大小

hrSWInstalled 已安装的软件包名

hrMIBAdminInfo

获取内存大小,磁盘大小,使用情况等

/usr/local/snmp/bin/snmpwalk -v3 -t 500 ip:161 -u '用户名' -l 'auth' -a 'MD5' -A '密码' HOST-RESOURCES-MIB::hrStorage

===================================================================

查看阅读 IF-MIB 的 MIB 文件

# more net-snmp源码/mibs/IF-MIB.txt

===================================================================

ifIndex InterfaceIndex,

ifDescr DisplayString,

ifType IANAifType,

ifMtu Integer32,

ifSpeed Gauge32,

ifPhysAddress PhysAddress,

ifAdminStatus INTEGER,

ifOperStatus INTEGER,

ifLastChange TimeTicks,

ifInOctets Counter32,

ifInUcastPkts Counter32, 输入流量

ifInNUcastPkts Counter32, -- deprecated

ifInDiscards Counter32, 已经丢弃的收到的数据包的总数

ifInErrors Counter32,

ifInUnknownProtos Counter32,

ifOutOctets Counter32,

ifOutUcastPkts Counter32, 输出流量

ifOutNUcastPkts Counter32, -- deprecated

ifOutDiscards Counter32,

ifOutErrors Counter32,

ifOutQLen Gauge32, -- deprecated

ifSpecific OBJECT IDENTIFIER -- deprecated

① 查看网卡设备

/usr/local/snmp/bin/snmpwalk -v3 -t 500 ip:161 -u '用户名' -l 'auth' -a 'MD5' -A '密码' IF-MIB:ifDescr

② 监控IF-MIB::ifInUcastPkts(输入流量),IF-MIB::ifOutUcastPkts(输出流量),格式为.,如监控本地的第二块网卡 instance 为 2

/usr/local/snmp/bin/snmpwalk -v3 -t 500 ip:161 -u '用户名' -l 'auth' -a 'MD5' -A '密码' IF-MIB::ifInUcastPkts.2

/usr/local/snmp/bin/snmpwalk -v3 -t 500 ip:161 -u '用户名' -l 'auth' -a 'MD5' -A '密码' IF-MIB::ifOutUcastPkts.2

③ 监控 ifInDiscards(已经丢弃的收到的数据包的总数),格式同上

/usr/local/snmp/bin/snmpwalk -v3 -t 500 ip:161 -u '用户名' -l 'auth' -a 'MD5' -A '密码' ifInDiscards.2

===================================================================

用 snmptranslate 命令在 MIB OID 在数字和文字名称之间进行转换

===================================================================

① 用 snmptranslate 把 symbol 格式的 HOST-RESOURCES-MIB::hrSystem 转换为 numberic 格式的 oid,用-On(输出数字格式的 oid),使用 -IR(允许“随机”访问 MIB)

/user/local/snmp/bin/snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem

② 用 snmptranslate 把 symbol 格式的 HOST-RESOURCES-MIB::hrSystem 转换为 symbol 格式的 oid,用-Onf(输出符号格式的 oid)

/user/local/snmp/bin/snmptranslate -Onf -IR HOST-RESOURCES-MIB::hrSystem

③ 用 snmptranslate 输出该对象(iso.org.dod.internet.mgmt.mib-2)的详细定义,用 -Td(包括文字名称、所属 MIB、类型、状态、读写权限、描述信息,数字格式的 OID)

/user/local/snmp/bin/snmptranslate -Td iso.org.dod.internet.mgmt.mib-2

④ 用 snmptranslate 打印从指定OID(.1.3.6.1.2.1)开始一直到该 OID(.1.3.6.1.2.1)所属的 MIB 子树末端的树型结构信息

/user/local/snmp/bin/snmptranslate -Tp iso.org.dod.internet.mgmt.mib-2

⑤ 用snmptranslate导出所有已经加载的 MIB 的数据,每个对象一行

/user/local/snmp/bin/snmptranslate -Ta iso.org.dod.internet.mgmt.mib-2

⑥ 用snmptranslate导出所有已经加载的 MIB 的对象,并且输出完整的 oid 路径

/user/local/snmp/bin/snmptranslate -Tl iso.org.dod.internet.mgmt.mib-2

⑦ 用snmptranslate导出已经加载的所有 MIB 的数字格式的 oid ,不含值和类型,仅仅有 oid 而已

/user/local/snmp/bin/snmptranslate -To iso.org.dod.internet.mgmt.mib-2

⑧ 用snmptranslate只输出文字格式的 OID 名称而已

/user/local/snmp/bin/snmptranslate -Ts iso.org.dod.internet.mgmt.mib-2

===================================================================

利用snmp监控实例

===================================================================

//根据oid获取单个信息

//exec("/usr/local/snmp/bin/snmpget -O vt -v3 -t 500 -r 3 IP:161 -u '用户名' -l 'auth' -a 'MD5' -A '密码' .1.3.6.1.2.1.25.2.3.1.6.31", $snmp);

exec("/usr/local/snmp/bin/snmpwalk -v3 -t 500 IP:161 -u '用户名' -l 'auth' -a 'MD5' -A '密码' HOST-RESOURCES-MIB::hrStorage", $snmp);

foreach($snmp as $value)

{

if(stristr($value,'hrStorageIndex'))

{

$arr = explode('=',$value);

$num = str_replace('INTEGER:','',$arr[1]);

$num_arr[] = intval($num);

$result[trim($arr[0])] = trim($arr[1]);

}

else

{

$arr = explode('=',$value);

$result[trim($arr[0])] = trim($arr[1]);

}

}

foreach($num_arr as $v)

{

$k_descrc = 'HOST-RESOURCES-MIB::hrStorageDescr.'.$v;

$k_units = 'HOST-RESOURCES-MIB::hrStorageAllocationUnits.'.$v;

$k_size = 'HOST-RESOURCES-MIB::hrStorageSize.'.$v;

$k_used = 'HOST-RESOURCES-MIB::hrStorageUsed.'.$v;

$desc = str_replace('STRING: ','',$result[$k_descrc]);

$unit = intval(str_replace('INTEGER:','',$result[$k_units]));

$size = intval(str_replace('INTEGER:','',$result[$k_size]));

$used = intval(str_replace('INTEGER:','',$result[$k_used]));

$total = ($size/1024)*($unit/1024);

$total = ($total >= 1024) ? ceil($total/1024).'GB ' : ceil($total).'MB ';

$used = ($used/1024)*($unit/1024);

$used = ($used >= 1024) ? ceil($used/1024).'GB ' : ceil($used).'MB ';

echo '【'.$desc.'】 total:'.$total.'used:'.$used."\n";

}

结果:

【Physical memory】 total:16GB used:6GB

【Virtual memory】 total:32GB used:6GB

【Memory buffers】 total:16GBused:373MB

【Cached memory】 total:2GB used:2GB

【Swap space】 total:16GB used:0MB

【/】 total:214GB used:96GB

【/boot】 total:194MB used:29MB

【/opt/hiker】 total:886GB used:62GB

imgr?src=http%3A%2F%2Fwww1.feedsky.com%2Ft1%2F730481830%2FDevOps%2Ffeedsky%2Fs.gif%3Fr%3Dhttp%3A%2F%2Fblog.jiunile.com%2Fsnmp%25e7%259b%2591%25e6%258e%25a7%25e8%25bf%259c%25e7%25a8%258b%25e6%259c%258d%25e5%258a%25a1%25e5%2599%25a8%25e4%25bf%25a1%25e6%2581%25af.html

=================================================================== 查看阅读 HOST-RESOURCES 的 MIB 文件 more net-snmp源码/mibs/HOST-RESOURCES-MIB.txt =================================================================== 获取内存大小,磁盘大小,使用情况等 =================================================================== 查看阅读 IF-MIB 的 MIB 文件 # more net-snmp源码/mibs/IF-MIB.txt =================================================================== ① 查看网卡设备 ② 监控IF-MIB::ifInUcastPkts(输入流量),IF-MIB::ifOutUcastPkts(输出流量),格式为.,如监控本地的第二块网卡 instance 为 2 ③ 监控 ifInDiscards(已经丢弃的收到的数据包的总数),格式同上 =================================================================== 用 snmptranslate 命令在 MIB OID 在数字和文字名称之间进行转换 =================================================================== ① 用 snmptranslate 把 symbol 格式的 HOST-RESOURCES-MIB::hrSystem 转换为 numberic 格式的 oid,用-On(输出数字格式的 oid),使用 -IR(允许“随机”访问 MIB) ② 用 snmptranslate [...]

imgr?src=http%3A%2F%2Fwww1.feedsky.com%2Ft1%2F730481830%2FDevOps%2Ffeedsky%2Fs.gif%3Fr%3Dhttp%3A%2F%2Fblog.jiunile.com%2Fsnmp%25e7%259b%2591%25e6%258e%25a7%25e8%25bf%259c%25e7%25a8%258b%25e6%259c%258d%25e5%258a%25a1%25e5%2599%25a8%25e4%25bf%25a1%25e6%2581%25af.html

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

#CactiEZ v10.1 install text cdrom mediacheck lang en_US.UTF-8 keyboard us rootpw CactiEZ firewall --service=ssh --service=snmp --service=http authconfig --enableshadow --passalgo=sha512 --enablefingerprint selinux --disabled timezone Asia/Shanghai network --bootproto=static --ip=192.168.0.32 --netmask=255.255.255.0 --gateway=192.168.0.1 --nameserver 8.8.8.8 --hostname=CactiEZ.local --noipv6 --onboot=yes bootloader --location=mbr zerombr yes clearpart --all --initlabel part /boot --fstype=ext4 --size=200 part pv.cZWdAb-3EW9-0foh-Bl0a-To6S-TJez-7moyho --grow --size=200 volgroup vg_cactiezv10 --pesize=4096 pv.cZWdAb-3EW9-0foh-Bl0a-To6S-TJez-7moyho logvol / --fstype=ext4 --name=LogVol00 --vgname=vg_cactiezv10 --grow --size=8192 logvol swap --name=LogVol01 --vgname=vg_cactiezv10 --size=1024 repo --name="CactiEZ" --baseurl=file:///mnt/source --cost=100 %packages --nobase --excludedocs @core @server-policy man file vim-enhanced openssh-clients lftp ftp wget curl elinks net-snmp-utils net-snmp httpd php mysql-server php-mysql php-gd expect ntp rsyslog-mysql pango system-config-network-tui %post --nochroot mkdir -p /mnt/sysimage/tmp/cactiez >> /tmp/ins.log 2>&1 cp /mnt/source/Packages/cactiez-i386.tgz /mnt/sysimage/tmp/cactiez >> /tmp/ins.log 2>&1 %post cd /tmp/cactiez >> /tmp/ins.log 2>&1 tar zxvf cactiez-i386.tgz >> /tmp/ins.log 2>&1 cp -rf /tmp/cactiez/var/www/html/* /var/www/html >> /tmp/ins.log 2>&1 cp -rf /tmp/cactiez/usr/* /usr >> /tmp/ins.log 2>&1 cp -rf /tmp/cactiez/etc/* /etc >> /tmp/ins.log 2>&1 service mysqld start >> /tmp/ins.log 2>&1 /usr/bin/mysqladmin --user=root create cacti >> /tmp/ins.log 2>&1 mysql -e "GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'cactiuser'" >> /tmp/ins.log 2>&1 mysql cacti > /tmp/ins.log 2>&1 chmod -R 777 /var/www/html/log/ chmod -R 7755 /var/www/html/rra/ chmod -R 755 /var/www/html/scripts/ chmod -R 755 /usr/local/spine/bin/ chmod -R 755 /usr/local/rrdtool/bin/ chown -R apache:apache /var/www/html/ echo '*/10 * * * * /usr/sbin/ntpdate 0.rhel.pool.ntp.org && /sbin/clock -w' > /tmp/crontab2.tmp echo '*/5 * * * * php /var/www/html/poller.php > /dev/null 2>&1' >> /tmp/crontab2.tmp crontab /tmp/crontab2.tmp rm /tmp/crontab2.tmp for service in httpd mysqld snmpd do chkconfig --level 235 $service on done #rm -rf /tmp/* %end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值