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

YAMAHA WLX302 cacti template

ヤマハ 無線LANアクセスポイント WLX302会社の無線LAN APは、YAMAHA WLX302を使っています。

WLX302はsnmpを話せますので、cactiのAssociated Data QueriesでSNMP – Interfaces Statistics追加することで、Interfaceの監視が出来ます。

他にもCPU loadやメモリ使用率、wireless associationなども監視したいのですが、snmpの項目が見当たりません。

しかし、ブラウザで見ると(http://wlx302/cgi-bin/admin/manage-system.sh)、内部的には、情報を持っているようなので、その情報をcurlやwgetを利用し取得して、cactiに渡すようにします。

wlx302-1

wlx302-2

今回データの取得には、curlを利用しました。
取得する情報の行数を確認し、設定する。
例えば、temptureだと、186行目にあるので、

sed -e '186,186!d'|sed '$s/.$//'

とすれば、温度の数値のみ取り出せます。

WLX302のファームウェアなどの変更で、情報取得行の変更があれば、この行数を変更する。

cactiにscriptを設置する。

ubuntu なので、/usr/share/cacti/site/scripts/wlxget.shを配置する。

#!/bin/sh

#CPU load
#Memory Usage
#Tempture
#2.4G Assosiation
#5G Assosiation
#Change to Your WLX302 address and userID,password

/usr/bin/curl -o /tmp/wlxlog -u [userID]:[passwd] http://[wlx302]/cgi-bin/admin/manage-system.sh

wlxload=`cat /tmp/wlxlog |sed  -e '182,182!d'|sed '$s/.$//'`
wlxmem=`cat /tmp/wlxlog |sed  -e '186,186!d'|sed '$s/.$//'`
wlxtemp=`cat /tmp/wlxlog |sed  -e '202,202!d'|sed '$s/.$//'`
wlx24as=`cat /tmp/wlxlog |sed  -e '237,237!d'|sed '$s/.$//'`
wlx5as=`cat /tmp/wlxlog |sed  -e '264,264!d'|sed '$s/.$//'`

printf ' wlxload:'$wlxload
printf ' wlxmem:'$wlxmem
printf ' wlxtemp:'$wlxtemp
printf ' wlx24as:'$wlx24as
printf ' wlx5as:'$wlx5as

exit 0

設置できたら、実際に情報を取得してみる。

$ /usr/share/cacti/site/scripts/wlxget.sh

wlxload:1 wlxmem:36 wlxtemp:37 wlx24as:2 wlx5as:3

のように、表示出来れば情報の取得は出来ています。
念のため、/tmp/wlxlogを削除しておく。

$ rm /tmp/wlxlog

あとは、templateを流し込み、Graph Managementからaddすれば、グラフの描画が始まります。

Graph templateとdata templateを置いておく。

cacti_template_wlx302_-_system

wlx_graph_image

wlx302には、見える化ツールという機能があるのですが、これをONにするとCPU負荷がスゴク高くなります。もうすこし負荷が下がると常時ONに出来るのですがね。

wlx_graph_image2

ネットワークだと、こんな感じに仕上がった。

cactiGraph

今後、必要に応じて、tholdを設定すればOKだ。ちなみに、今はRTX1200とQNAPの温度監視とプリンタ トナーの監視を行っている。

thold

一通り、cactiの設定は出来たが、あと自宅で使っているBrother MFC-960DNのインクレベルのsnmpデータがわからない。

 

NEC MultiWriter 8450n for cacti

1502-02
cactiのホストを新規に作成したので、いろいろテンプレートを探し直して、ようやくcactiを復旧できた。
つかったpluginとtemplateを載せておこう。

以前から、cactiを使って機材の監視を行っていたが、MultiWriter 8450nのprinter suplyのデータが、16進で帰ってくるので、変換してみた。

ちなみに、使っているcacti templateは、SNMP Printer Templateです。

このtemplateで取得しているのは、iR-ADV C2230Fとこの記事のMultiWriter 8450nです。

iR-ADV C2230Fでは、Waste Tonerのデータは取得出来ていません。

cacti template

WmultiWirterの文字列対応は、下記の通り。

45:50:E3:82:AB:E3:83:BC:E3:83:88:E3:83:AA:E3:83:83:E3:82:B8 - EPカートリッジ
E5:AE:9A:E7:9D:80:E3:83:A6:E3:83:8B:E3:83:83:E3:83:88 - 定着ユニット
E6:89:8B:E5:B7:AE:E3:81:97:E3:83:88:E3:83:AC:E3:82:A4:E3:83:AD:E3:83:BC:E3:83:AB:E3:82:AD:E3:83:83:E3:83:88 - 手差しトレイロールキット
E3:82:AB:E3:82:BB:E3:83:83:E3:83:88:E3:83:AD:E3:83:BC:E3:83:AB:E3:82:AD:E3:83:83:E3:83:88:28:E7:94:A8:E7:B4:99:E3:83:88:E3:83:AC:E3:82:A4:31:29 - カセットロールキット(用紙トレイ1)
E3:82:AB:E3:82:BB:E3:83:83:E3:83:88:E3:83:AD:E3:83:BC:E3:83:AB:E3:82:AD:E3:83:83:E3:83:88:28:E7:94:A8:E7:B4:99:E3:83:88:E3:83:AC:E3:82:A4:32:29 - カセットロールキット(用紙トレイ2)
E3:82:AB:E3:82:BB:E3:83:83:E3:83:88:E3:83:AD:E3:83:BC:E3:83:AB:E3:82:AD:E3:83:83:E3:83:88:28:E7:94:A8:E7:B4:99:E3:83:88:E3:83:AC:E3:82:A4:33:29 - カセットロールキット(用紙トレイ3)
52:4F:53:E3:83:A6:E3:83:8B:E3:83:83:E3:83:88 - ROSユニット
E3:82:AB:E3:82:BB:E3:83:83:E3:83:88:E3:82:B7:E3:83:A5:E3:83:BC:E3:83:88:E3:82:AD:E3:83:83:E3:83:88:28:E7:94:A8:E7:B4:99:E3:83:88:E3:83:AC:E3:82:A4:31:29 - カセットシュートキット(用紙トレイ1)
E3:82:AB:E3:82:BB:E3:83:83:E3:83:88:E3:82:B7:E3:83:A5:E3:83:BC:E3:83:88:E3:82:AD:E3:83:83:E3:83:88:28:E7:94:A8:E7:B4:99:E3:83:88:E3:83:AC:E3:82:A4:32:29 - カセットシュートキット(用紙トレイ2)
E3:82:AB:E3:82:BB:E3:83:83:E3:83:88:E3:82:B7:E3:83:A5:E3:83:BC:E3:83:88:E3:82:AD:E3:83:83:E3:83:88:28:E7:94:A8:E7:B4:99:E3:83:88:E3:83:AC:E3:82:A4:33:29 - カセットシュートキット(用紙トレイ3)

RasPi2 Zabbix

RasbianOSをインストールしたRasPi2にZabbixをインストールしてみる。
インストールはapt-getで入れる。

# apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-agent
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common dbconfig-common fping
  heirloom-mailx javascript-common libaio1 libapache2-mod-php5 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libdbd-mysql-perl libdbi-perl libhtml-template-perl libjs-prototype
  libjs-scriptaculous libmysqlclient16 libmysqlclient18 libonig2 libopenipmi0 libqdbm14 lsof
  mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 php5 php5-cli
  php5-common php5-gd php5-mysql snmpd ssl-cert wwwconfig-common
提案パッケージ:
  apache2-doc apache2-suexec apache2-suexec-custom virtual-mysql-client mysql-client
  postgresql-client exim4 mail-transport-agent php-pear libipc-sharedcache-perl
  libterm-readkey-perl tinyca openssl-blacklist
推奨パッケージ:
  mailx
以下のパッケージが新たにインストールされます:
  apache2 apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common dbconfig-common fping
  heirloom-mailx javascript-common libaio1 libapache2-mod-php5 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libdbd-mysql-perl libdbi-perl libhtml-template-perl libjs-prototype
  libjs-scriptaculous libmysqlclient16 libmysqlclient18 libonig2 libopenipmi0 libqdbm14 lsof
  mysql-client-5.5 mysql-common mysql-server mysql-server-5.5 mysql-server-core-5.5 php5 php5-cli
  php5-common php5-gd php5-mysql snmpd ssl-cert wwwconfig-common zabbix-agent zabbix-frontend-php
  zabbix-server-mysql
アップグレード: 0 個、新規インストール: 40 個、削除: 0 個、保留: 0 個。
23.0 MB のアーカイブを取得する必要があります。
この操作後に追加で 132 MB のディスク容量が消費されます

かなりたくさんのパッケージが入ります。
初期設定を聞かれます。
最初は、mysqlのroot password
raspi-mysql
続いてパスワードの確認が行われます。
raspi-mysql2
続いて、dbconfig-commonで管理できるよう、「はい」を選択しました。
先ほど設定したmysql passwordを入力します。
raspi-zabbix1
つづいて、mysql zabbix DBのパスワードを設定します。空欄で勧めるとランダムでパスワードが設定されるようです。
ここでは、自分でパスワードを設定します。
raspi-zabbix2
zabbix-frontend-phpのパスワードを聞かれます。
raspi-zabbix3
確認でもう一度 パスワードを入力します。
raspi-zabbix4
インストールが完了すると最低限WEB LOGINが可能になるようです。
http://raspi2/zabbix/
初期ID:admin
パスワード:zabbix
無事 zabbixのインストールが完了しました。
ここから設定に移っていきます。

まず、Zabbix本体の設定から。
Localeを日本語に
ProfileからLanguageをJapanese (JP)に変更する。

監視データを見ると、PHPあたりが注意されているので、php.iniを変更します。

/etc/php5/apache2/php.ini

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Tokyo

php.iniの変更が終われば、apacheを再起動する。

# /etc/init.d/apache2 restart

ダッシュボードのphp関連の注意が無くなりました。

設定-ホストを見てみます。
Zabbixをインストールしたホストが登録されています。
しかし、ステータスが無効になっていますので、有効にします。
無効をクリックすると有効になります。
無効に戻したい場合は、もう一度クリックですね。

細かな設定は後にして、ホストを追加してみます。
追加するホストは、RTX1200です。
テンプレートが転がっていたので、拝借します。
動作するかはわかりませんが・・・
zbx_export_templates_RTX1200.xml  使えなかった

Temp_RTX1200.xml 有り難く頂戴いたしました。
設定-テンプレートからインポートします。
raspi-zabbix5
インポート済 成功
と表示されたので、インポートは問題無いようです。
続いて、RTX1200をホストに追加します。
設定-ホスト-ホストの作成
名前、グループ、新規ホストグループ、DNS名、IPアドレス、接続方法、Zabbixエージェントのポート等 設定します。
テンプレートをRTX1200テンプレートにリンクします。

とりあえず、RTX1200が登録できたので、ダッシュボードに戻り、軽微な障害を直していきます。

Ubuntu 11.10 LTS + Linksys SPA9000 + Asterisk

ESXi 上にUbuntu 11.10LTSを導入し、apt-get install asteriskでサクっとインストール完了。

肝心の設定については、例のごとく師匠に設定してもらって、内線通話まで動作確認が取れました。

こちらでやったことは、NATの設定程度です。

今後の予定としては、Linksys SPA9000を使って外線を使えるようにすることです。

が、

もともと設定を師匠にして頂いたもので、sip.conf , extensions.conf の記述が難しそうです。

何はともあれ、すでに内線として機能することが確認できているので、自宅<>Android間の通話は完全無料と相成りました。

現状の回線状態を簡単に書くとこういった感じになるんですが、早く外線に接続してみたいぞ!

なかなか、AsteriskとSPA9000の接続方法が分からず、先にSPA9000単体で動作確認してみた。

これも難しい・・・。なにより資料が見つからない。

一番 救われたのは、SPA9000にはWEB GUIが搭載されていることだw

まず、SIP端末からログイン出来ないと何も始まらないので、ここから始めてみる。

SPA9000は、SIPサーバーも搭載されているので、単体で動作させることも可能なようです。

Line1〜Line4とあるので、SIP端末は4台まで接続OKって事なのでしょう。

Line1はこんな感じで設定した。

SPA9000の良いところは、設定変更後の再起動が早いって事です。

Line1の設定が出来たら、AndroidのSIPアプリでレジストしてみます。

使っているのは、Keyyo VoIPです。

そういえば、SC-02CでG-MIUIを入れていたときは、マイク音量が小さすぎて使い物にならなかった。
なので、現在はDefaultROM KJ4+rooted+電源拡張+SQLiteでゴニョゴニョ+Go Launcherを使ってます。

こんな感じの設定でとりあえず、レジストすることが出来ました。

あとは、自宅のiPod touchのBriaで接続出来るかだ。

填まったのは、サーバーポートが6060になっていることでした。

これって、SPA9000のWAN側で指定しているポート番号なんですが、変更してもうまく動かなかった。

まだまだ不明な点が多すぎる。

次の設定は、SPA9000を光電話回線と接続してSIP端末から光電話の送受信が出来るようにすることだな。

SIP端末から光電話の送受信が出来るようになれば、記事の続きを書こう。