简介
service_snmp
插件支持 SNMP V1,V2,V3。可以转化用户输入并对指定 ip 的机器执行 SNMP-GET 指令获取机器信息。
运行本插件需要本地已运行 snmp 程序,开放snmpget
需要的端口,且可正常执行snmptranslate
命令和snmptable
命令。
版本
版本说明
推荐版本:iLogtail v1.0.27 及以上
配置参数
SNMPV1,V2 使用的验证方式:community
。默认为"public"
SNMPV3 使用的验证方式:验证协议。默认为NoAuth
SNMPV3 使用的验证方式:验证密码。当验证协议(AuthenticationProtocol)设置为 MD5 或 SHA 时,本项是必需的。默认为空
SNMPV3 使用的验证方式:隐私协议。默认为NoPriv
SNMPV3 使用的验证方式:隐私协议密码。当隐私协议设置为 DES 或 AES 时,本项是必需的。默认为与用户密码一致
SNMP 的通讯方法,可以填写"udp"
,"tcp"
,默认为"udp"
对目标机器查询的 Fields 列表。本插件会先对 Fields 进行翻译,查找本地 MIB 将之翻译为 Oids 并一起查询,默认为空
对目标机器查询的 Tables 列表。本插件会首先查询 Table 内所有的 Field,查找本地 MIB 将之翻译为 Oids 并一起查询,默认为空
配置文件及结果示例
插件设置示例一
在config.json
中:
"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"
]
}
}
],
本示例采用了 SNMPV2 协议,团体名为"public"
采集结果:
{"_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"}
采集字段含义:
目标收集的机器在本插件所有目标机器组中的排序。本例中仅有一个目标机器127.0.0.1
因此本项恒为 0
目标收集的 Oid 经过本地 MIB 翻译后的内容
收集结果进行了哪种类型转换,目前支持"ipaddr"
和"hwaddr"
两种,分别会对 ip 地址和设备地址进行转换。若为空则未发生类型转换
插件设置示例二
在config.json
中:
"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"
}
}
],
本示例采用了 SNMPV3 协议,查询的目标机器组仅有一台机器"127.0.0.1"
即本机。用户名为"snmpreadonly"
, 验证协议为"SHA"
, 用户密码为"SecUREDpass"
, 隐私协议为"AES"
, 隐私密码为"StRongPASS"
。
若希望在本地复现该配置,可以运行:
net-snmp-create-v3-user -ro -A SecUREDpass -a SHA -X StRongPASS -x AES snmpreadonly
采集结果:
{"_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"}