配置 Linux 的 SNMP 服务

  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
      在这里插入图片描述

    2. 修改配置文件
      配置 Linux 的 SNMP 服务_第1张图片

  3. 重启 SNMP 服务
    snmp 服务名:snmpd.service

    # 启动/停止/查看 snmp 服务
    systemctl start/stop/status snmpd.service
    
    # 开启/禁用 snmp 自启动服务
    systemctl enable/disable snmpd.service
    
  4. 使用 SNMP 软件获取 服务器信息

    1. SNMP 中比较重要的配置

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

      1. HOST-RESOURCE-MIB用于查看主机(服务器)的基础状态信息
        主要包含.1.3.6.1.2.1.25中的信息,这部分内容大多数电脑、服务器都有
      2. UCD-SNMP-MIB Linux 和 Unix 系统通用的 MIB 描述文件
        主要包含.1.3.6.1.4.1.2021中的信息
      3. 以上文件在安装net-snmp软件时会同时安装,存储于/usr/share/snmp/mibs/路径下
        配置 Linux 的 SNMP 服务_第2张图片 4. 使用的 SNMP 软件 在这里插入图片描述
        软件操作教程:https://www.bilibili.com/video/BV1nE411u7Xa
    3. 常用的 OID 地址
      https://blog.csdn.net/qq_41262248/article/details/89500802?spm=1001.2101.3001.4242.1&utm_relevant_index=4
      配置 Linux 的 SNMP 服务_第3张图片
      配置 Linux 的 SNMP 服务_第4张图片

  5. 调试过程中遇到的相关问题

  6. 自定义 MIB 文件和 OID

    1. 在 Linux 系统的 net-snmp 服务中添加自定义的 OID,并使用软件制作包含自定义 OID 的 MIB 文件用于客户快速调试自定义的 OID
    2. 这里演示使用extend配置自定义的 OID 执行 bash 脚本
    3. 在 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
      1. 编写测试小脚本,用于 SNMP 程序调用,输出第一个入参,返回值指定为 154

        #!/bin/sh
        # 脚本文件路径 /tmp/shtest/shtest3.sh
        var_in=$1
        echo this is file 3 # 输出固定文本
        echo your input is: $var_in # 输出传入脚本的第一个参数
        echo $(date -R) # 输出指令的执行结果
        exit 154 # 这里的返回值范围 (0-255),更高的值可考虑用 echo 输出为字符串
        
      2. 在 snmp 配置文件中,添加以下内容

        # 指令格式
        extend 自定义OID地址 显示的描述 脚本执行语句
        	
        # 示例
        # 自定义 OID = .1.3.6.1.4.1.2021.300
        # 显示的描述 = testOID
        # 执行脚本 /tmp/shtest1.sh haha
        extend .1.3.6.1.4.1.2021.300 testOID /tmp/shtest1.sh haha
        

        输出结果分析:使用 MIB Browser 获取.1.3.6.1.4.1.2021.300下的数据
        配置 Linux 的 SNMP 服务_第5张图片
        输入刚才在配置文件设置的 OID,我这里设置的是1.3.6.1.4.1.2021.300,搜索结果
        配置 Linux 的 SNMP 服务_第6张图片
        搜索过程中,如果出现以下提示,询问软件是否可以根据 OID 智能匹配已经导入数据库但没有被当前项目导入的 MIB 文件,选择“No To All”,表示不需要匹配(因为这里的 OID 是自定义的,官方自带的 MIB 文件肯定不能匹配,强制导入只会带来很多无用的信息)
        配置 Linux 的 SNMP 服务_第7张图片
        得到以下结果
        配置 Linux 的 SNMP 服务_第8张图片
        此结果实际是根据net-snmp软件中的NET-SNMP-EXTEND-MIB文件生成的数据,“挂载到”在自定义的 OID 上。
        由于这里指定了 OID,与文件定义的 OID 地址不同,因此 MIB Browser 无法解析,只能显示原始数据
        根据NET-SNMP-EXTEND-MIB文件的介绍,每一项表示的内容如下:
        配置 Linux 的 SNMP 服务_第9张图片 对象与查询结果的对应关系:配置 Linux 的 SNMP 服务_第10张图片
        实际应用中,查询右侧对应的 OID,即可获取脚本执行基本信息、输出值、返回值

      3. 重启 snmp 服务,即完成配置

    4. 使用 MG-SOFT Mib Browser 制作包含自定义 OID 的 MIB 文件
      参考网址:https://blog.csdn.net/fuyuande/article/details/83349786

你可能感兴趣的:(环境搭建,linux,运维,服务器)