28.03.2020, 09:33
Finally I found how do it working.
thanks to admin, he gives us solutions or ways where to possible find answers..
Code:
require "snmp"
local IP_Mikrotik = "192.168.10.1"
local OID_Mikrotik = {
{'38/5/1',".1.3.6.1.2.1.25.2.3.1.5.65536"}, --Total Memowy
{'38/5/2',".1.3.6.1.2.1.25.2.3.1.6.65536"}, --Used-Memory
{'38/5/3',".1.3.6.1.2.1.25.3.3.1.2.1"}, --CPU Frecuency
{'38/5/5',".1.3.6.1.4.1.14988.1.1.3.14.0"}, -- CPU Load
{'38/5/11',".1.3.6.1.4.1.14988.1.1.14.1.1.2.1"}, --Interface 1 Name
{'38/5/12',".1.3.6.1.4.1.14988.1.1.14.1.1.2.2"}, --Interface 2 Name
{'38/5/13',".1.3.6.1.4.1.14988.1.1.14.1.1.2.3"}, --Interface 3 Name
{'38/5/14',".1.3.6.1.4.1.14988.1.1.14.1.1.2.4"}, --Interface 4 Name
{'38/5/15',".1.3.6.1.4.1.14988.1.1.14.1.1.2.5"}, --Interface 5 Name
{'38/5/16',".1.3.6.1.4.1.14988.1.1.14.1.1.2.6"}, --Interface 6 Name
{'38/5/17',".1.3.6.1.4.1.14988.1.1.14.1.1.2.7"}, --Interface 7 Name
{'38/5/21',".1.3.6.1.4.1.14988.1.1.14.1.1.11.1"}, --Interface 1 TX bytes
{'38/5/22',".1.3.6.1.4.1.14988.1.1.14.1.1.11.2"}, --Interface 2 TX bytes
{'38/5/23',".1.3.6.1.4.1.14988.1.1.14.1.1.11.3"}, --Interface 3 TX bytes
{'38/5/24',".1.3.6.1.4.1.14988.1.1.14.1.1.11.4"}, --Interface 4 TX bytes
{'38/5/25',".1.3.6.1.4.1.14988.1.1.14.1.1.11.5"}, --Interface 5 TX bytes
{'38/5/26',".1.3.6.1.4.1.14988.1.1.14.1.1.11.6"}, --Interface 6 TX bytes
{'38/5/27',".1.3.6.1.4.1.14988.1.1.14.1.1.11.7"}, --Interface 7 TX bytes
{'38/5/31',".1.3.6.1.4.1.14988.1.1.14.1.1.13.1"}, --Interface 1 RX bytes
{'38/5/32',".1.3.6.1.4.1.14988.1.1.14.1.1.13.2"}, --Interface 2 RX bytes
{'38/5/33',".1.3.6.1.4.1.14988.1.1.14.1.1.13.3"}, --Interface 3 RX bytes
{'38/5/34',".1.3.6.1.4.1.14988.1.1.14.1.1.13.4"}, --Interface 4 RX bytes
{'38/5/35',".1.3.6.1.4.1.14988.1.1.14.1.1.13.5"}, --Interface 5 RX bytes
{'38/5/36',".1.3.6.1.4.1.14988.1.1.14.1.1.13.6"}, --Interface 6 RX bytes
{'38/5/37',".1.3.6.1.4.1.14988.1.1.14.1.1.13.7"}, --Interface 7 RX bytes
{'38/5/0',".1.3.6.1.2.1.2.2.1.8.1"}, --Interface 1 Up/Down (To find out if ISP is active)
}
ups1, err = snmp.open{
version = snmp.SNMPv1,
community = "public",
port = 161,
peer = IP_Mikrotik,
}
assert(ups1, err)
for _, item in ipairs(OID_Mikrotik) do
vbind, err = ups1:get(item[2])
if vbind then
if tonumber(tostring(vbind.value)) ~=nil then
grp.checkupdate(item[1], tonumber(tostring(vbind.value))) --- Here we receive correct digital values
--log(item[1],vbind.value)
else
grp.checkupdate(item[1], vbind.value) --- Here we receive correct string values
end
else
alert('error reading from snmp: ' .. tostring(err))
end
end
ups1:close()