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:16GB used: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=================================================================== 查看阅读 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 [...]
推荐阅读
-
php+snmp监控远程服务器信息
-
php+snmp监控远程服务器信息
-
python websocket网页实时显示远程服务器日志信息
-
详解用Python实现自动化监控远程服务器
-
详解用Python实现自动化监控远程服务器
-
nagios自定义简单监控脚本远程监控服务器
-
通过SSIS监控远程服务器磁盘空间并发送邮件报警!
-
通过SSIS监控远程服务器磁盘空间并发送邮件报警!
-
python3 使用wmi远程链接windows服务器,并查询系统信息
-
服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。