2025/08/15
2020/08/27
cacti 轉換到 librenms 的過程還有一個問題就是cacti可以自己寫shell 餵值來畫圖
目前還沒看到librenms有支援
所以想到應該可以把shell 拿到的值轉成snmp丟出來
查了一下文件
總共有三種方式可以做
pass
exec
extend
在snmpd.conf裡有說明及範例
但目前 exec 試不出來
extend 看來最方便使用
在/etc/snmp/snmpd.conf 最後加上
extend script1 /tmp/test
test的內容如下
#!/bin/sh
echo "aaa"
echo "bbb"
重啟 snmpd
systemctl restart snmpd
接下來使用 snmpwalk snmpwalk 捉值就可以了
snmpwalk -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1'
得到
NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1 = STRING: aaa
snmpwalk -v2c -c public localhost 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1'
NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1 = STRING: bbb
最後產出 OID
snmptranslate -On 'NET-SNMP-EXTEND-MIB::nsExtendOutLine."script1".1'
得到
.1.3.6.1.4.1.8072.1.3.2.4.1.2.7.115.99.114.105.112.116.49.1
2020/08/24
2020/08/22
延續之前的問題
目前打算把所有的設備流量全部移轉到librenms
其實之前就一直有這個打算
但一直沒做
原因是librenms如果要使用自訂的oid畫圖
支援程度不高而且很麻煩
現在好像有看到custom oid的功能
不過還沒試
然後cacti就只留非標準snmp畫出來的圖
再來另一個問題是 weathermap
因為librenms必須使用到 php 7的版本
可是wearhermap目前在php 7 上還是不支援
所以做法是在原來的cacti上把librenms的rrd 捉過來使用
但是
本來以為捉過來就可以直接使用
結果
weathermap weathermap 畫圖時預設是捉
traffic_in 和 traffic_out 這二個DS
cacti產生的rrd file 是這二個沒錯
但librenms產生的並不是
librenms rrd file的DS如下
INOCTETS OUTOCTETS INERRORS OUTERRORS
INUCASTPKTS OUTUCASTPKTS INNUCASTPKTS OUTNUCASTPKTS I
NDISCARDS OUTDISCARDS INUNKNOWNPROTOS INBROADCASTPKTS OUTBROADCASTPKTS
INMULTICASTPKTS OUTMULTICASTPKTS
所以要使用時必須指定DS
範例如下
TARGET /var/www/html/weathermap/librenms_rrd/10.0.0.1/port-id456.rrd:INOCTETS:OUTOCTETS
接下來的另一個問題是 weather weather 預設只會往前找 800 秒 rrd 的記錄時間
可是有可能會找不到值 而沒辦法畫圖
這個問題在cacti上沒碰過
可是使用librenms 的 rrd rrd 確實有發生讀不到的問題
所以必須在 weathermap的config 加上以下參數
SET rrd_period 3000
https://network-weathermap.com/manual/0.97/pages/targets.html
2017/10/06
2013/12/22
http://www.brocade.com/downloads/documents/product_manuals/MIB/IPMIB_Reference_Jun2013.pdf
OID前要加上 1.3.6.1.4.1.1991
1.3.6.1.4.1.1991.1.1.1.1.18 机器溫度
cisco 溫度相關oid
iso.3.6.1.4.1.9.9.13.1.3.1.2.1005 = STRING: "SW#1, Sensor#1, GREEN "
iso.3.6.1.4.1.9.9.13.1.3.1.2.2005 = STRING: "SW#2, Sensor#1, GREEN "
iso.3.6.1.4.1.9.9.13.1.3.1.3.1005 = Gauge32: 30
iso.3.6.1.4.1.9.9.13.1.3.1.3.2005 = Gauge32: 33
iso.3.6.1.4.1.9.9.13.1.3.1.4.1005 = INTEGER: 65
iso.3.6.1.4.1.9.9.13.1.3.1.4.2005 = INTEGER: 65
iso.3.6.1.4.1.9.9.13.1.3.1.5.1005 = INTEGER: 0
iso.3.6.1.4.1.9.9.13.1.3.1.5.2005 = INTEGER: 0
iso.3.6.1.4.1.9.9.13.1.3.1.6.1005 = INTEGER: 1
iso.3.6.1.4.1.9.9.13.1.3.1.6.2005 = INTEGER: 1
以下為目前實際值
.1.3.6.1.4.1.9.9.13.1.3.1.3.1005
舊型机器(2U)不支援此OID
2013/12/11
先增加一個
Data Templates
在設定Data Templates時
Associated RRA's 的第一個選項 Hourly一定要取消(預設是全選的)
否則會造成圖畫不出來的問題
之後再依據這個Data Templates加上
Graph Templates
詳細步驟如下連結
http://kb.fortinet.com/kb/viewAttachment.do?attachID=Fortigate%20SNMP%20Graphs%20with%20Cacti.pdf&documentID=13833
但加完後卻發生一個問題就是圖有出來但是沒有資料
看了一下rra file
rrdtool fetch 123.rrd AVERAGE
data
1386653400: -nan
1386653700: -nan
1386654000: -nan
1386654300: -nan
1386654600: -nan
1386654900: -nan
1386655200: -nan
1386655500: -nan
1386655800: -nan
1386656100: -nan
1386656400: -nan
1386656700: -nan
1386657000: -nan
1386657300: -nan
1386657600: -nan
完全沒有收到資料
可是用snmpwalk去撈是有資料啊
再仔細看了一下上面的文件
發現了一句話
snmpwalk -v 2c -c public 10.69.69.1 .1.3.6.1.4.1.12356.17.102.3.1.2
SNMPv2-SMI::enterprises.12356.17.102.3.1.2.1 = Counter32: 1229
之後如果再發生類似的情況 snmpwalk有值卻畫不出來
把OID最後再加上.0或.1試看看
原則上再加上去smnpwalk也還是能撈出值而且值跟沒加時相同
同時cacti也會正常
2013/07/03
brocade mac snmp
查了一下資料
做個記錄
在ubuntu 12.04中
iso.3.6.1.2.1.4.22.1.2.5.192.168.101.178 = Hex-STRING: 00 0D 54 A0 A6 C9
iso.3.6.1.2.1.4.22.1.2 這一段是由snmp要撈取的固定OID
5 代表的則是這個 ip mac所在的實體port
192.168.101.178 是 mac 所對應到的ip
00 0D 54 A0 A6 C9 是机器的 mac 一定要是大寫
轉換大小寫的語法如下
echo AbcDEFg | tr a-z A-Z
ABCDEFG
iso.3.6.1.2.1.2.2.1.7.9 9 代表實体port
可使用snmp set 1:up 2:down




