当前位置:首页 » 《我的小黑屋》 » 正文

配置 Linux 的 SNMP 服务

23 人参与  2024年04月16日 11:44  分类 : 《我的小黑屋》  评论

点击全文阅读


1. 安装 SNMP 服务

参考链接:https://blog.csdn.net/zhaomax/article/details/81085764
理想状况下安装,由于依赖较多,可考虑建立本地软件源进行安装
参考教程:https://www.cnblogs.com/diantong/p/10105805.html

2. 修改 SNMP 配置文件

1. 基本配置流程

配置文件路径:/etc/snmp/snmpd.conf
修改配置文件
重启 SNMP 服务
snmp 服务名:snmpd.service
# 启动/停止/查看 snmp 服务systemctl start/stop/status snmpd.service# 开启/禁用 snmp 自启动服务systemctl enable/disable snmpd.service

2. snmp.conf 中的配置项详解

参考资料:https://blog.csdn.net/qq_27204267/article/details/51316261

com2sec 配置

image.png

**命令格式一: **com2sec [-Cn context] sec.name source community 功能:map the community name (COMMUNITY) into a security name
将实体(community) 字符串映射为安全的名字,v1 和v2版本都是明文密码,也就无所谓安全性了。v3 中增加了安全性。参数说明: -Cn context:可选的,在v3版本中使用sec.name:内被映射的名字,字符串source: 可以访问的ip地址范围,默认值”default”,即任何ip都可以访问。
也可以限制ip地址范围,有两种方式:IP/MASK和IP/BITS
IP/MASK: 10.10.10.0/255.255.255.0
IP/BITS: 10.10.10.0/24:只有ip地址在10.10.10.0,mask为24个1,
即255.255.255.0 命令格式二:com2sec6 [-Cn context] sec.name source community 功能:针对ipv6,其他和 com2sec 相同 命令格式三:com2secunix [-Cn context] sec.name sockpath community 功能:针对本地 socket 的配置,其他和 com2sec 相同

举例
定义一个共同体(community),安全名 mynetwork,mynetwork 的密码相当于 public

com2sec mynetwork default public

group 配置

image.png
命令格式:group groupName securityModel sec.name

功能: 将 sec.name 映射到一个 group 中,组中具有相同的存取权限。参数说明 groupName:组名securityModel:v1、v2c、usm、tsm、ksm
v1 = 使用 SNMP V1 协议
V2c = 使用 SNMP V2c 协议

view 配置

image.png
命令格式:view viewNam type oid[mask]

功能:定义一个view,表示整个OID树的子树,同一个子树可以定义多个view。参数说明 viewName:view 名字type:有两个值 include 和 excludeoid:可以访问的 oid[mask]:对 oid 的 mask
例:view all include 1.3.6.1.2.1.4 0xf0
0xf0:1111 0000,即访问的oid的前4位必须是1.3.6.1,否则不能访问,
即可以访问1.3.6.1下所有的子oid

access 配置

image.png
命令格式:**access groupName context sec.model sec.level prefx read write notify**

功能:设置访问某一个view的存取权限参数说明 groupName:控制存取权限的组名context:上下文,用于 v3
v1和v2c版本,context必须设置为""sec.model:v1、v2c、usm、tsm、ksm v1 = 使用 SNMP V1 版本协议v2c = 使用 SNMP V2c 版本协议最后 3 种是 SNMP v3 版本的授权模式 usm(User-Based Security Model) = 默认授权模式tsm 用于 SSH or DTLSksm 用于支持 erberos sec.level:可以取3种值:noauth、auth、priv noauth:允许无权限访问(v1,v2c使用)auth:必须有权限才能访问priv:强制加密访问 prefix:exact 或 prefixread、write、notify:指明某一个 view 的权限是否可以GET*, SET*、TRAP/INFORM
如果该 view 不能 read,则置 none

3. 使用 SNMP 软件获取 服务器信息

1. SNMP 中比较重要的配置

读写设备的密码: 在 SNMP 中称为 读Community写Community
若使用 SNMP v3 协议版本,则密码设置比较复杂,需要密码配对被读取的内容 :类似于被读取的参数的寄存器/地址,在 SNMP 中称为 OID OID的描述方式:类似IP地址,如1.3.6.1.4.1.2021.1.1 MIB文件:各厂商制作的,包含设备OID的配置文件 利用 SNMP 调试软件加载 MIB 文件,即可快速调试,读写设备的相关信息MIB 文件中包含丰富内容:参数、参数的描述(帮助/含义)、参数的类型(数据类型)、参数的 OID 地址等不同厂商可根据自己设备的特点,修改 MIB 文件,以添加专属的可用于 SNMP 协议的参数加载错误的 MIB 文件,则 MIB 文件中记录的 OID 可能在设备中查询不到返回值

2. 使用的 MIB 文件

HOST-RESOURCE-MIBUCD-SNMP

HOST-RESOURCE-MIB用于查看主机(服务器)的基础状态信息
主要包含.1.3.6.1.2.1.25中的信息,这部分内容大多数电脑、服务器都有UCD-SNMP-MIB Linux 和 Unix 系统通用的 MIB 描述文件
主要包含.1.3.6.1.4.1.2021中的信息以上文件在安装net-snmp软件时会同时安装,存储于/usr/share/snmp/mibs/路径下

3. 使用的 SNMP 软件


软件操作教程:https://www.bilibili.com/video/BV1nE411u7Xa

4. 常用的 OID 地址

https://blog.csdn.net/qq_41262248/article/details/89500802?spm=1001.2101.3001.4242.1&utm_relevant_index=4


4. 自定义 MIB 文件和 OID

在 Linux 系统的 net-snmp 服务中添加自定义的 OID,并使用软件制作包含自定义 OID 的 MIB 文件用于客户快速调试自定义的 OID这里演示使用extend配置自定义的 OID 执行 bash 脚本在 Linux 系统的 net-snmp 服务自定义 OID
参考网址1-中文较简略:https://blog.csdn.net/nerissa/article/details/21297769
参考网址2-redhat文档,胎教级:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/deployment_guide/sect-system_monitoring_tools-net-snmp-extending#sect-System_Monitoring_Tools-Net-SNMP-Extending-Shell 编写测试小脚本,用于 SNMP 程序调用,输出第一个入参,返回值指定为 154
#!/bin/sh# 脚本文件路径 /tmp/shtest/shtest3.shvar_in=$1echo this is file 3 # 输出固定文本echo your input is: $var_in # 输出传入脚本的第一个参数echo $(date -R) # 输出指令的执行结果exit 154 # 这里的返回值范围 (0-255),更高的值可考虑用 echo 输出为字符串
在 snmp 配置文件中,添加以下内容
# 指令格式extend 自定义OID地址 显示的描述 脚本执行语句# 示例# 自定义 OID = .1.3.6.1.4.1.2021.300# 显示的描述 = testOID# 执行脚本 /tmp/shtest1.sh hahaextend .1.3.6.1.4.1.2021.300 testOID /tmp/shtest1.sh haha
输出结果分析:使用 MIB Browser 获取.1.3.6.1.4.1.2021.300下的数据

输入刚才在配置文件设置的 OID,我这里设置的是1.3.6.1.4.1.2021.300,搜索结果

搜索过程中,如果出现以下提示,询问软件是否可以根据 OID 智能匹配已经导入数据库但没有被当前项目导入的 MIB 文件,选择“No To All”,表示不需要匹配(因为这里的 OID 是自定义的,官方自带的 MIB 文件肯定不能匹配,强制导入只会带来很多无用的信息)

得到以下结果

此结果实际是根据net-snmp软件中的NET-SNMP-EXTEND-MIB文件生成的数据,“挂载到”在自定义的 OID 上。
由于这里指定了 OID,与文件定义的 OID 地址不同,因此 MIB Browser 无法解析,只能显示原始数据
根据NET-SNMP-EXTEND-MIB文件的介绍,每一项表示的内容如下:
对象与查询结果的对应关系:
实际应用中,查询右侧对应的 OID,即可获取脚本执行基本信息、输出值、返回值重启 snmp 服务,即完成配置使用 MG-SOFT Mib Browser 制作包含自定义 OID 的 MIB 文件
参考网址:https://blog.csdn.net/fuyuande/article/details/83349786

点击全文阅读


本文链接:http://zhangshiyu.com/post/95962.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1