Linux通过snmp采集cpu,内存,磁盘

Linux SNMP OID's for CPU, Memory and Disk Statistics 
SNMP stands for Simple Network Management Protocol and consists of three key components: managed devices, agents, and network-management systems (NMSs). A managed device is a node that has an SNMP agent and resides on a managed network. These devices can be routers and access server, switches and bridges, hubs, computer hosts, or printers. An agent is a software module residing within a device. This agent translates information into a compatible format with SNMP. An NMS runs monitoring applications. They provide the bulk of processing and memory resources required for network management. 
SNMP MIBs, OIDs Overview 
MIB stands for Management Information Base and is a collection of information organized hierarchically. These are accessed using a protocol such as SNMP. There are two types of MIBs: scalar and tabular. Scalar objects define a single object instance whereas tabular objects define multiple related object instances grouped in MIB tables. 
MIB files for specific devices or systems can be downloaded from here 
OIDs or Object Identifiers uniquely identify manged objects in a MIB hierarchy. This can be depicted as a tree, the levels of which are assigned by different organizations. Top level MIB object IDs (OIDs) belong to different standard organizations. Vendors define private branches including managed objects for their own products. 
Here is a sample structure of an OID 
Iso (1). Org (3). Dod (6). Internet (1). Private (4). Transition (868). Products (2). Chassis (4). Card (1). SlotCps (2) - ; 
.- CpsSlotSummary (1). CpsModuleTable (1). CpsModuleEntry (1). CpsModuleModel (3) .3562.3 
Most of the people may be looking for OID's for Linux OID's for CPU, Memory and Disk Statistics for this first you need to install SNMP server and clients. If you want to install SNMP server and client installation in linux learning check here

CPU Statistics 
Load 
1 minute Load: .1.3.6.1.4.1.2021.10.1.3.1 
5 minute Load: .1.3.6.1.4.1.2021.10.1.3.2 
15 minute Load: .1.3.6.1.4.1.2021.10.1.3.3 
CPU 
percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0 
raw user cpu time: .1.3.6.1.4.1.2021.11.50.0 
percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0 
raw system cpu time: .1.3.6.1.4.1.2021.11.52.0 
percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0 
raw idle cpu time: .1.3.6.1.4.1.2021.11.53.0 
raw nice cpu time: .1.3.6.1.4.1.2021.11.51.0 
Memory Statistics 
Total Swap Size: .1.3.6.1.4.1.2021.4.3.0 
Available Swap Space: .1.3.6.1.4.1.2021.4.4.0 
Total RAM in machine: .1.3.6.1.4.1.2021.4.5.0 
Total RAM used: .1.3.6.1.4.1.2021.4.6.0 
Total RAM Free: .1.3.6.1.4.1.2021.4.11.0 
Total RAM Shared: .1.3.6.1.4.1.2021.4.13.0 
Total RAM Buffered: .1.3.6.1.4.1.2021.4.14.0 
Total Cached Memory: .1.3.6.1.4.1.2021.4.15.0 Disk Statistics 
The snmpd.conf needs to be edited. Add the following (assuming a machine with a single '/' partition): 
disk / 100000 (or) 
includeAllDisks 10% for all partitions and disks 
The OIDs are as follows 
Path where the disk is mounted: .1.3.6.1.4.1.2021.9.1.2.1 
Path of the device for the partition: .1.3.6.1.4.1.2021.9.1.3.1 
Total size of the disk / partion (kBytes): .1.3.6.1.4.1.2021.9.1.6.1 
Available space on the disk: .1.3.6.1.4.1.2021.9.1.7.1 
Used space on the disk: .1.3.6.1.4.1.2021.9.1.8.1 
Percentage of space used on disk: .1.3.6.1.4.1.2021.9.1.9.1 
Percentage of inodes used on disk: .1.3.6.1.4.1.2021.9.1.10.1 
System Uptime: .1.3.6.1.2.1.1.3.0 
Examples 
These Commands you need to run on the SNMP server 
Get available disk space for / on the target host 
# Snmpget-v 1-c "community" target_name_or_ip .1.3.6.1.4.1.2021.9.1.7.1 
this will return available disk space for the first entry in the 'disk' section of snmpd.conf; replace 1 with n for the nth entry 
Get the 1-minute system load on the target host 
# Snmpget-v 1-c "community" target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.1 
Get the 5-minute system load on the target host 
# Snmpget-v 1-c "community" target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.2 
Get the 15-minute system load on the target host 
# Snmpget-v 1-c "community" target_name_or_ip .1.3.6.1.4.1.2021.10.1.3.3 
Get amount of available swap space on the target host 
# Snmpget-v 1-c "community" target_name_or_ip .1.3.6.1.4.1.2021.4.4.0


作者:儱剑阿攵
转载请注明链接:http://blog.csdn.net/awenluck/article/details/50220221

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以PySNMP库来实现Python通过SNMP采集信息。PySNMP是一个纯Python的SN库,可以用于发送SNMP请求并解响应。以下是一个简单的示代码: ```python from pysnmp.hlapi import * # 定义MP协议版本、目标主机和认证信息 snmp_version = SNMPVersion(SNMPv2c) target_host = '192.168.1.1' community_string = 'public' # 定义SNMP请求的OID system_desc_oid = ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0) # 发起SNMP请求 error_indication, error_status, error_index, var_binds = next( getCmd(SnmpEngine(), CommunityData(community_string), UdpTransportTarget((target_host, 161)), ContextData(), ObjectType(system_desc_oid)) ) # 处理SNMP响应 if error_indication: print(f'SNMP请求错误:{error_indication}') else: if error_status: print(f'SNMP错误状态:{error_status.prettyPrint()}') else: for var_bind in var_binds: print(f'{var_bind.prettyPrint()}') ``` 在上述代码中,我们首先定义了SNMP协议版本、目标主机和认证信息。然后,我们定义了要获取的服务器信息的OID(在此示例中是sysDescr)。 接下来,我们使用`getCmd`函数发起SNMP请求。`getCmd`函数接受包含上述定义的参数的一系列对象,并返回一个生成器。我们可以使用`next`函数来获取生成器的下一个值,即SNMP响应。响应的结果存储在`error_indication`、`error_status`、`error_index`和`var_binds`变量中。 最后,我们检查错误指示、错误状态和变量绑定,并进行相应的处理。 你可以根据自己的需求修改代码中的目标主机、OID和认证信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值