snmp 输出

1.功能描述

“Simple Network Management Protocol”=“简单网络管理协议”,应用层协议,传输层一般采用UDP. SNMP 协议使网络管理员能够使用各种机制(包括电子邮件、警报和陷阱)从远程位置配置和监控他们的网络。

2.依赖模块

helper snmp modules/njt_helper_snmp_module.so modules/snmp.lua;

3.配置说明

conf/njet.conf 需要加载 snmp copilot

helper snmp modules/njt_helper_snmp_module.so modules/snmp.lua;

conf/snmp.conf

-------------------------------------------------------------------------------
-- SmithSNMP Configuration File
-------------------------------------------------------------------------------

protocol = 'snmp'
port = 2222
metrics_url = "http://localhost:8081/metrics/format/json"
trap_server_ip = '127.0.0.1'
--trap_server_ip = '192.168.40.157'
trap_server_port = 162

mib_module_path = lvm.prefix..'modules/mibs'

--mib_module_path = './modules/mibs'
communities = {
  { community = 'public', views = { ["."] = 'ro' } },
  { community = 'private', views = { ["."] = 'rw' } },
}

users = {
  { user = 'roNoAuthUser', views = { ["."] = 'ro' } },
  { user = 'rwNoAuthUser', views = { ["."] = 'rw' } },
  { user = 'roAuthUser', auth_mode = "md5", auth_phrase = "roAuthUser", views = { ["."] = 'ro' } },
  { user = 'rwAuthUser', auth_mode = "md5", auth_phrase = "rwAuthUser", views = { ["."] = 'rw' } },
  { user = 'roAuthPrivUser', auth_mode = "md5", auth_phrase = "roAuthPrivUser", encrypt_mode = "aes", encrypt_phrase = "roAuthPrivUser", views = { ["."] = 'ro' } },
  { user = 'rwAuthPrivUser', auth_mode = "md5", auth_phrase = "rwAuthPrivUser", encrypt_mode = "aes", encrypt_phrase = "rwAuthPrivUser", views = { ["."] = 'rw' } },
}

mib_modules = {
    [1]= { ["oid"] ="1.3.6.1.6.3.1.1.4" , ["m"] = 'snmptrap' },
    [2]= { ["oid"] ="1.3.6.1.4.1.99999.2.1" , ["m"] = 'njet_sysinfo' },
    [3]= { ["oid"] ="1.3.6.1.4.1.99999.2.2" , ["m"] = 'njet_conninfo' },
    [4]= { ["oid"] ="1.3.6.1.4.1.99999.2.3" , ["m"] = 'njet_serverinfo' },
}

conf/snmp.conf snmp 一些关键配置

配置项 描述 样例
port Snmp 监听端口 2000
metrics_url Njet 运行指标采集地址 http://localhost:8081/metrics/format/json
trap_server_ip Trap Server IP 代理往这个地址​​发送​​告警消息 127.0.0.1
trap_server_port Trap Server Port 代理通过这个端口发送告警 162

指标:

分组 对象名 类型 OID 描述
njetSystemInfo njetVersion OCTET STRING (SIZE(0..128)) 1.3.6.1.4.1.99999.2.1.1 NJet’s version
njetSystemInfo njetUptime OCTET STRING (SIZE(0..1024)) 1.3.6.1.4.1.99999.2.1.2 NJet’s uptime
njetSystemInfo njetHostname OCTET STRING (SIZE(0..512)) 1.3.6.1.4.1.99999.2.1.3 Host name
njetConnInfo njetConnActive Gauge32 1.3.6.1.4.1.99999.2.2.1 Number of Open Connections
njetConnInfo njetConnReading Gauge32 1.3.6.1.4.1.99999.2.2.2 Number of Connections that NJet reads request headers
njetConnInfo njetConnWriting Gauge32 1.3.6.1.4.1.99999.2.2.3 Number of Connections that NJet reads request bodies, processes requests, or writes responses to a client
njetConnInfo njetConnWaiting Gauge32 1.3.6.1.4.1.99999.2.2.4 Number of Keep-Alive connections
njetConnInfo njetConnAccepted Counter32 1.3.6.1.4.1.99999.2.2.5 All accepted connections
njetConnInfo njetConnHandled Counter32 1.3.6.1.4.1.99999.2.2.6 All handled connections
njetConnInfo njetConnRequest Counter32 1.3.6.1.4.1.99999.2.2.7 Total number of handled requests
njetServerInfo njetServerRequestCount Counter32 1.3.6.1.4.1.99999.2.3.1 Request Counter of NJet
njetServerInfo njetServerInBytes Counter32 1.3.6.1.4.1.99999.2.3.2 In Bytes Counter of NJet
njetServerInfo njetServerOutBytes Counter32 1.3.6.1.4.1.99999.2.3.3 Out Bytes Counter of NJet
njetServerInfo njetServerRespCount1xx Counter32 1.3.6.1.4.1.99999.2.3.4 Response 1xx Counter of NJet
njetServerInfo njetServerRespCount2xx Counter32 1.3.6.1.4.1.99999.2.3.5 Response 2xx Counter of NJet
njetServerInfo njetServerRespCount3xx Counter32 1.3.6.1.4.1.99999.2.3.6 Response 3xx Counter of NJet
njetServerInfo njetServerRespCount4xx Counter32 1.3.6.1.4.1.99999.2.3.7 Response 4xx Counter of NJet
njetServerInfo njetServerRespCount5xx Counter32 1.3.6.1.4.1.99999.2.3.8 Response 5xx Counter of NJet

4.调用样例

Linux 下安装snmp 工具, yum install net-snmp net-snmp-utils

GET 方式查询指标

使用 snmpwalk 命令进行查询,oid 参见指标描述

snmpwalk -v 2c -c public localhost:2000 1.3.6.1.4.1.99999.2.1

Trap 功能测试

使用 snmptrapd 进行trap 报文接收的测试

创建 snmptrapd.conf 配置文件,输入内容:authCommunity log,execute,net public

然后启动snmptrapd :

 sudo snmptrapd -C -c ./snmptrapd.conf  -df -Lo

设置上报的时间间隔,目前用 1.3.6.1.6.3.1.1.4.42 这个oid 表示。使用 snmpset 命令进行设置,如设置时间间隔为2秒:

snmpset -v2c -c private ``localhost:2000`` .1.3.6.1.6.3.1.1.4.42.0 t 200

设置的时间间隔 大于0 时,将触发trap 方式的指标上报,之前启动的snmptrapd 是直接打印接受的报文到控制台, 因此控制台中将显示 njet 上报的信息。