YAMAHA WLX302 cacti script

先日の記事でYAMAHA WLX302 cacti templateのscriptを修正した。

前回は、curlで取得したHTTP DATAを加工して利用していたが、データの取得が不安定だった。
原因は特定していませんが、HTTPから取得する際にデータの取りこぼしがありました。

今回は、telenetを利用して取得していきます。
wlx302のtelnetは1ユーザーしか許可していない。
よって別端末からwlx302にtelnetでログインしていると、データは取得出来ません。

まずは、telnetにログインしてデータを取得するscriptを設置
使用しているwlx302のtelnetはloginIDとpasswdは設定していない。
設定している場合は、一番最初のechoのあとに、ID
次のechoの後に、passwdを入力

#!/bin/sh
sleep 1;echo
sleep 1;echo
sleep 3;echo "show status wlan-controller ap list member"
sleep 3;echo "show environment"
sleep 1;echo exit

これを、wlxauto.shで保存し、telnetへパイプで渡す。sleepはネットワーク環境等で調整する。

/bin/sh /usr/share/cacti/site/scripts/wlxauto.sh |telnet 192.168.xxx.xxx
Trying 192.168.xxx.xxx...
Connected to 192.168.xxx.xxx.
Escape character is '^]'.


Password: 

WLX302 BootROM Ver.1.xx

WLX302 Rev.12.xx.xx (Tue Jan  5 17:53:58 2016)
  Copyright (c) 1994-2015 Yamaha Corporation. All Rights Reserved.
00:a0:de:xx:xx:xx, 00:a0:de:xx:xx:xx, 00:a0:de:xx:xx:xx
Memory 256Mbytes
> 
> show status wlan-controller ap list member 
[00:a0:de:xx:xx:xx]
Connection      : --
Last update     : Mar 30 09:14:24 2016
System name     : WLX302_S44xxxxxx
System location : 
IP address      : 192.168.xxx.xxx
 [module1]
 Channel              : 1
 Transmit power rate  : 100
 Number of connection : 1
 [module2]
 Channel              : 36
 Transmit power rate  : 100
 Number of connection : 3

> show environment 
WLX302 BootROM Ver.1.xx
WLX302 Rev.12.xx.xx (Tue Jan  5 17:53:58 2016)
  main:  WLX302 ver=00 serial=S44xxxxxx MAC-Address=00:a0:de:xx:xx:xx MAC-Addre
ss=00:a0:de:xx:xx:xx MAC-Address=00:a0:de:xx:xx:xx
CPU:   1%(5sec)   4%(1min)   4%(5min)    Memory: 28% used
Firmware: internal  Config. file: 0  
Boot time: 2016/03/25 21:52:58 +09:00
Current time: 2016/03/30 09:14:58 +09:00
Elapsed time from boot: 4days 11:22:00
Security Class: 1, FORGET: ON, TELNET: OFF
Inside Temperature(C.): 36
Power: PoE
State of cooperation: NONE
> Connection closed by foreign host.

このようにデータが流れれば取得出来ている。
wlxget.shを書き直す。
データ加工はうまく書けないので、いじくり回した結果このようになりました。

/bin/sh /usr/share/cacti/site/scripts/wlxauto.sh |telnet 192.168.xxx.xxx > /tmp/wlxtelnetget.log

wlxload=`cat /tmp/wlxtelnetget.log |sed  -e '36,36!d'|cut -c29-30`
wlxmem=`cat /tmp/wlxtelnetget.log |sed  -e '36,36!d'|cut -c50-51`
wlxtemp=`cat /tmp/wlxtelnetget.log |sed  -e '42,42!d'|cut -c25-26`
wlx24as=`cat /tmp/wlxtelnetget.log |sed  -e '25,25!d'|cut -c24-25`
wlx5as=`cat /tmp/wlxtelnetget.log | sed -e '29,29!d'|cut -c24-25`

wlxload=`echo $wlxload`
wlxmem=`echo $wlxmem`
wlxtemp=`echo $wlxtemp`
wlx24as=`echo $wlx24as`
wlx5as=`echo $wlx5as`

# wlxload:4 wlxmem:29 wlxtemp:38 wlx24as:1 wlx5as:4

#CPU (5sec)
printf ' wlxload:'$wlxload
printf ' wlxmem:'$wlxmem
printf ' wlxtemp:'$wlxtemp
printf ' wlx24as:'$wlx24as
printf ' wlx5as:'$wlx5as

rm /tmp/wlxtelnetget.log

exit 0

走らせてみる。

$ sh wlxget.sh 
Connection closed by foreign host.
 wlxload:4 wlxmem:28 wlxtemp:36 wlx24as:1 wlx5as:3$

wlx302_graph_image

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です