python脚本,通过snmp方式获取远程服务器的CPU内存和硬盘的使用率
时间: 2023-12-30 07:03:47 浏览: 253
SNMP查看CPU及内存使用率
4星 · 用户满意度95%
你可以使用Python的PySNMP库来通过SNMP方式获取远程服务器的CPU内存和硬盘使用率。以下是一个简单的示例脚本:
```python
from pysnmp.hlapi import *
# SNMP团体字符串
community_string = 'public'
# 远程服务器IP地址
ip_address = '192.168.1.1'
# SNMP端口号,默认为161
snmp_port = 161
# CPU利用率OID
cpu_oid = '1.3.6.1.4.1.2021.11.9.0'
# 内存使用率OID
memory_oid = '1.3.6.1.4.1.2021.4.6.0'
# 磁盘使用率OID
disk_oid = '1.3.6.1.4.1.2021.9.1.9.1'
# 使用SNMP获取指定OID的值
def get_snmp_value(oid):
error_indication, error_status, error_index, var_binds = next(
getCmd(SnmpEngine(),
CommunityData(community_string),
UdpTransportTarget((ip_address, snmp_port)),
ContextData(),
ObjectType(ObjectIdentity(oid)))
)
if error_indication:
print(f"SNMP错误:{error_indication}")
return None
if error_status:
print(f"SNMP错误:{error_status.prettyPrint()}")
return None
for var_bind in var_binds:
return var_bind[-1]
# 获取CPU利用率
cpu_usage = get_snmp_value(cpu_oid)
print(f"CPU利用率:{cpu_usage}%")
# 获取内存使用率
memory_usage = get_snmp_value(memory_oid)
print(f"内存使用率:{memory_usage}%")
# 获取磁盘使用率
disk_usage = get_snmp_value(disk_oid)
print(f"磁盘使用率:{disk_usage}%")
```
请确保你已经安装了PySNMP库,可以使用以下命令进行安装:
```shell
pip install pysnmp
```
在脚本中,你需要指定远程服务器的IP地址、SNMP团体字符串、SNMP端口号以及要获取的OID。然后,使用`get_snmp_value`函数获取相应的OID的值,并打印出来。
注意:这只是一个简单的示例,实际的SNMP OID可能因设备而异。你可以使用SNMP浏览器来查找你所需的OID。
阅读全文