顯示具有 OID 標籤的文章。 顯示所有文章
顯示具有 OID 標籤的文章。 顯示所有文章

2025/08/15

最近有個新的需求
希望在市電斷電
但發電机無作動是能關几
而且關几要有先後順序
首先詢問環控系統看看能不能讓我捉乾接點的訊號
廠商回覆是沒辦法
但他們可以增加這個功能
要收費
於是換個思考方式
目前就打算捉UPS的snmp值
只捉輸入電壓跟電池剩餘電量
由於現況是使用 AELTA 
找了一下SNMP的oid

輸入電壓有三相
1.3.6.1.2.1.33.1.3.3.1.3.1.0
1.3.6.1.2.1.33.1.3.3.1.3.2.0
1.3.6.1.2.1.33.1.3.3.1.3.3.0

旁路供電 三相

1.3.6.1.2.1.33.1.5.3.1.2.1.0
1.3.6.1.2.1.33.1.5.3.1.2.2.0
1.3.6.1.2.1.33.1.5.3.1.2.3.0 


只捉一相即可

電池剩餘電量

1.3.6.1.2.1.33.1.2.4.0

shell如下

#!/bin/bash

battery=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.2.4.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $battery

input_voltage=$(/usr/bin/snmpwalk -v 2c -c public 10.0.0.1 1.3.6.1.2.1.33.1.3.3.1.3.1.0 | awk '{print $NF}'|cut -d '.' -f 1 )
#echo $input_voltage

if [ $battery -lt 80 ] && [ $input_voltage -lt 50 ]; then

#       echo "ok"
        /usr/sbin/init 0

fi


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


https://blog.xuite.net/jyoutw/xtech/516688911-Centos+6+%E5%BB%BA%E7%AB%8B%E8%87%AA%E5%AE%9A%E7%BE%A9%E7%9A%84+SNMP+OID

2020/08/24

早上試了一下先前說過的 librenms 的Custom OID

還滿方便的

記錄一下

首先到設備的管理頁面



點擊上圖中的edit


接下來點上圖中的 Custom OID



點 Add New OID



再來設定名稱並給OID值

也可以設定告警的上限值

測試無誤後就可以存檔



等個几分鐘後就可以在Graphs 看到自訂OID畫出來的圖了

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

把往前找的時間加長到 3000秒

By default, the plugin will read the last 800 seconds of data, and find the most recent within that to use. You might need to make it read back further, if you are updating your rrd files slowly. You can do this with the SET command, by adding 'SET rrd_period 3000' (any value in seconds) at the top of your map config file, before any NODE or LINK lines.

最後到每個port的圖形上方點

show rrd command

就可以找到每個port相對應的rrd file 用來畫圖了


https://network-weathermap.com/manual/0.97/pages/targets.html


2017/10/06

the oid of  clients connected to one ruckus AP

1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.2.1 is 2.4 GHz clients
1.3.6.1.4.1.25053.1.1.12.1.1.1.3.1.2.2 is 5 GHz clients

2013/12/22

borcade

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

取得設備的OID之後要在cacti上畫圖的方法如下

先增加一個
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

Notice that the snmpwalk came back with an OID of 12356.17.102.3.1.2.1 The extra trailing ‘.1’ would be 
the OID that should be put into the Data Template Custom Data section. 

snmpwalk撈出來是有值沒錯
但在Data Template必須在最OID的最後再加上.1

之後如果再發生類似的情況 snmpwalk有值卻畫不出來
把OID最後再加上.0或.1試看看
原則上再加上去smnpwalk也還是能撈出值而且值跟沒加時相同
同時cacti也會正常
終於解開了長久以來的疑惑




2013/07/03

brocade mac snmp

暑假要把大部分的L2 換成brocade ICX
查了一下資料
做個記錄

在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