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 上报的信息。