采集SNMP协议机器信息

本文介绍如何使用Logtail的input_snmp插件采集SNMP协议机器信息。

前提条件

已有可用的机器用于安装Logtail,且该机器需具备如下条件。

  • 已在机器上运行snmp程序。

  • 已在机器上开放snmpget所需端口。

  • 该机器支持执行snmptranslate命令和snmptable命令。

操作步骤

  1. 登录日志服务控制台

  2. 接入数据区域,选择自定义数据插件

  3. 选择目标Project和Logstore,单击下一步

  4. 创建机器组。

    • 如果您已有可用的机器组,请单击使用现有机器组

    • 如果您还没有可用的机器组,请执行以下操作(以ECS为例)。

      1. ECS机器页签中,通过手动选择实例方式选择目标ECS实例,单击创建

        具体操作,请参见安装Logtail(ECS实例)

        重要

        如果您的服务器是与日志服务属于不同账号的ECS、其他云厂商的服务器和自建IDC时,您需要手动安装Logtail。具体操作,请参见安装Logtail(Linux系统)安装Logtail(Windows系统)。手动安装Logtail后,您必须在该服务器上手动配置用户标识。具体操作,请参见配置用户标识

      2. 安装完成后,单击确认安装完毕

      3. 创建机器组页面,输入名称,单击下一步

        日志服务支持创建IP地址机器组和用户自定义标识机器组,详细参数说明请参见创建IP地址机器组创建用户自定义标识机器组

  5. 选中目标机器组,将该机器组从源机器组移动到应用机器组,单击下一步

    重要

    创建机器组后立刻应用,可能因为连接未生效,导致心跳为FAIL,您可单击自动重试。如果还未解决,请参见Logtail机器组问题排查思路(主机场景)

  6. 数据源设置页签中,设置配置名称插件配置,然后单击下一步

    • inputs为数据源配置,必选项。

    • processors为处理配置,用于解析数据。可选项,您可以配置一种或多种处理方式。

      如果当前的inputs配置无法满足日志解析需求,您可以在中插件配置添加processors配置,即添加Logtail插件处理数据。例如提取字段、提取日志时间、脱敏数据、过滤日志等。更多信息,请参见使用Logtail插件处理数据

    "inputs":[
            {
                "type":"service_snmp",
                "detail":{
                "Targets": ["127.0.0.1"],
                "Port": "161",
                "Community": "public",
                "Timeout": 5,
                "Version":2,
                "Transport":"udp",
                "MaxRepetitions":0,
                "Oids":[
                "1.3.6.1.2.1.1.3.0"
                ]
            }
        }
    ],

    参数

    类型

    是否必选

    参数说明

    Targets

    string list

    必选

    目标机器组的IP地址。

    Port

    string

    可选

    SNMP协议使用的端口,默认值为161

    Community

    string

    可选

    团体名称,默认值为public

    SNMPv1和SNMPv2使用团体名进行认证。

    UserName

    string

    可选

    用户名,默认值为空。

    SNMPv3支持使用用户名进行认证。

    AuthenticationProtocol

    string

    可选

    验证协议,默认值为NoAuth

    SNMPv3支持使用验证协议进行认证。

    AuthenticationPassphrase

    string

    可选

    验证密码,默认值为空。

    设置AuthenticationProtocolMD5SHA时,需要设置AuthenticationPassphrase

    PrivacyProtocol

    string

    可选

    隐私协议,默认值为NoPriv

    SNMPv3支持使用隐私协议进行认证。

    PrivacyPassphrase

    string

    可选

    隐私协议密码,默认与验证密码一致。

    当设置PrivacyProtocolDESAES时,必须设置PrivacyPassphrase

    Timeout

    int

    可选

    一次查询操作的超时时间,单位为秒。默认值为5

    Version

    int

    可选

    SNMP协议版本,默认值为2

    可选值为123

    Transport

    string

    可选

    SNMP通讯方法,默认值为udp

    可选值为udptcp

    MaxRepetitions

    int

    可选

    查询超时后的重试次数,默认值为0

    Oids

    string list

    可选

    在目标机器中查询的对象标识符,默认值为空。

    Fields

    string list

    可选

    在目标机器中查询的字段,默认值为空。

    本插件会先对字段进行翻译,即查找本地管理信息库,将其翻译为对象标识符并一起查询。

    Tables

    string list

    可选

    在目标机器中查询的表,默认值为空。

    本插件会先查询表内所有的字段,然后查找本地管理信息库,将其翻译为对象标识符并一起查询。

  7. 预览数据及创建索引,然后单击下一步

    日志服务默认开启全文索引。您也可以根据采集到的日志,手动创建字段索引,或者单击自动生成索引,日志服务将自动生成字段索引。更多信息,请参见创建索引

配置示例

示例一

  • Logtail插件配置示例

    本示例使用SNMPv2协议,团体名为public

    "inputs":[
            {
                "type":"service_snmp",
                "detail":{
                "Targets": ["127.0.0.1"],
                "Port": "161",
                "Community": "public",
                "Timeout": 5,
                "Version":2,
                "Transport":"udp",
                "MaxRepetitions":0,
                "Oids":[
                "1.3.6.1.2.1.1.3.0",
                "1.3.6.1.2.1.1.4.0",
                "1.3.6.1.2.1.1.7.0",
                "1.3.6.1.2.1.1.1.0"
                ]
            }
        }
    ],
  • 采集结果

    {"_target_":"127.0.0.1","_field_":"DISMAN-EXPRESSION-MIB::sysUpTimeInstance","_oid_":".1.3.6.1.2.1.1.3.0","_conversion_":"","_type_":"TimeTicks","_content_":"10522102","_targetindex_":"0"}
    {"_target_":"127.0.0.1","_field_":"SNMPv2-MIB::sysContact.0","_oid_":".1.3.6.1.2.1.1.4.0","_conversion_":"","_type_":"OctetString","_content_":"Me <me@example.org>","_targetindex_":"0"}
    {"_conversion_":"","_type_":"Integer","_content_":"72","_targetindex_":"0","_target_":"127.0.0.1","_field_":"SNMPv2-MIB::sysServices.0","_oid_":".1.3.6.1.2.1.1.7.0"}
    {"_targetindex_":"0","_target_":"127.0.0.1","_field_":"SNMPv2-MIB::sysDescr.0","_oid_":".1.3.6.1.2.1.1.1.0","_conversion_":"","_type_":"OctetString","_content_":"Linux 4be69bf59c36 5.10.25-linuxkit #1 SMP Tue Mar 23 09:27:39 UTC 2021 x86_64"}

示例二

  • Logtail插件配置示例

    本示例采用SNMPv3协议,查询的目标机器组中仅有一台机器,用户名为snmpreadonly,验证协议为SHA,验证协议密码为SecUREDpass,隐私协议为AES,隐私密码为StRongPASS

    "inputs":[
        {
            "type":"service_snmp",
            "detail":{
            "Targets":["127.0.0.1"],
            "Port": "161",
            "Community": "public",
            "Timeout": 5,
            "Version":3,
            "UserName":"snmpreadonly",
            "AuthenticationProtocol":"SHA",
            "AuthenticationPassphrase":"SecUREDpass",
            "PrivacyProtocol":"AES",
            "PrivacyPassphrase":"StRongPASS",
            "Oids":[
            "1.3.6.1.2.1.1.3.0",
            "1.3.6.1.2.1.1.1.0"
            ],
            "Fields":[
            "SNMPv2-MIB::sysContact.0",
            "SNMPv2-MIB::sysServices.0"
            ],
            "Transport":"udp"
            }
        }
    ],
  • 采集结果

    {"_target_":"127.0.0.1","_field_":"DISMAN-EXPRESSION-MIB::sysUpTimeInstance","_oid_":".1.3.6.1.2.1.1.3.0","_conversion_":"","_type_":"TimeTicks","_content_":"10423593","_targetindex_":"0"}
    {"_type_":"OctetString","_content_":"Linux 4be69bf59c36 5.10.25-linuxkit #1 SMP Tue Mar 23 09:27:39 UTC 2021 x86_64","_targetindex_":"0","_target_":"127.0.0.1","_field_":"SNMPv2-MIB::sysDescr.0","_oid_":".1.3.6.1.2.1.1.1.0","_conversion_":""}
    {"_content_":"Me <me@example.org>","_targetindex_":"0","_target_":"127.0.0.1","_field_":"SNMPv2-MIB::sysContact.0","_oid_":".1.3.6.1.2.1.1.4.0","_conversion_":"","_type_":"OctetString"}
    {"_conversion_":"","_type_":"Integer","_content_":"72","_targetindex_":"0","_target_":"127.0.0.1","_field_":"SNMPv2-MIB::sysServices.0","_oid_":".1.3.6.1.2.1.1.7.0"}

字段说明

采集SNMP协议机器信息后,日志中存在如下固定字段。

字段

说明

_target_

采集的目标机器IP地址。

_targetindex_

目标机器在本插件机器组中的排序。

本文的示例中仅有一个目标机器127.0.0.1,因此该字段值为0。

_field_

采集的目标对象标识符经过本地管理信息库翻译后的内容。

_oid_

采集的目标对象标识符。

_conversion_

对采集结果进行转换的类型。

  • ipaddr:对IP地址进行转换。

  • hwaddr:对设备地址进行转换。

  • 空值:未发生类型转换。

_type_

采集结果的类型。

_content_

采集内容。