本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
Cloudn上のVMにSNMPD
vmWareなのか、何を利用しているか分からないけど、クラウド上で動いているバーチャルマシンにMRTGを仕込みます。
Ubuntu使ってます
Debian にMRTGを追加してみる。
Jessieになって、SNMPはv3を使うのが標準なのか、v2,v1でなんとか設定しようとおもってもうまくいかず。
snmpwalk -v 1 localhost -c hoge
解説
snmpwalk -v 1 [ターゲットIP Address] -c [コミュニティ名]
で、ちゃんとsnmpにアクセスできるか確認できる
クライアント(エージェント側)
snmpdをインストール
apt-get install snmpd snmp
コンフィグファイル
vi /etc/snmp/snmpd.conf
コミュニティ名を決める
rocommunity コミュニティ名 許可するアドレス
rocommunity hogehoge 192.168.0.0/24とか
※注意 ここで許可するIPアドレス間違うとこんな感じにで接続できない
ログの場所
/var/log/syslog
Jul 5 16:36:09 sakura02 snmpd[4361]: message repeated 5 times: [ Connection from UDP: [*.*.*.*]:41809->[*.*.*.*]:161] Jul 5 16:36:25 sakura02 ntpd[629]: Soliciting pool server 2001:67c:1560:8003::c8 Jul 5 16:37:09 sakura02 snmpd[4361]: Connection from UDP: [127.0.0.1]:37962->[127.0.0.1]:161 Jul 5 16:37:14 sakura02 snmpd[4361]: message repeated 5 times: [ Connection from UDP: [127.0.0.1]:37962->[127.0.0.1]:161]
やっとできた。ここのつづりを間違っていたのか、それとも localhostも試そうとしていたから頭がこんがらがっていたのか。アクセスさせたい特定のホストからアクセスできるようになる。
interfaceへの受付許可
# Listen for connections from the local system only #agentAddress udp:127.0.0.1:161 # Listen for connections on all interfaces (both IPv4 *and* IPv6) agentAddress udp:161,udp6:[::1]:161
コンフィグファイルの再読み込み
/etc/init.d/snmpd restart
うゎーここだー!
注意 /etc/init.d/snmpd reload
して設定を読み込ませ直ししてたけど、外部ホストからはどうもrefuseされちゃう。
確認したら、
/etc/snmp# netstat -an |egrep :161 udp 0 0 127.0.0.1:161 0.0.0.0:*
あれれ、ローカルしか受け付けてない(ローカルからもうまくいかなくって参ったんだけど)
/etc/init.d/snmpd restartしたら
/etc/snmp# netstat -an |egrep :161 udp 0 0 0.0.0.0:161 0.0.0.0:*
となったよ、、、。どのアドレスからも受付状態。
特定ホストからのみsnmp要求受付
vi /etc/hosts.allow
snmpd: IPアドレス
Cloudnファイヤーウォールに穴開け
Cloudnは、元々ファイヤーウォール機能をもっていて、許可を書いておかないとアクセスできないので注意。Linuxサーバの手前にファイヤーウォールが来るから、そこに穴をあけて利用するところまでは良かった。
他のクラウドサービスなどでも参考になるかな?何しろサーバポートにアクセスできなければ利用はできない。
MRTGの設定(サーバ側)
トラフィック集計用の設定ファイル作成
/etc# cfgmaker hoge@[target IP Address] >>mrtg.cfg
書式 cfgmaker コミュニティ名@サーバ名 >>設定ファイル名(最後尾に追加)
通常ならこれでいいのだけど、vmWareなど、
MRTG トラフィック集計アクセス用のhtml をはき出す
/etc#indexmaker mrtg.cfg > /var/www/mrtg/index.html
CRONで5分ごとに集計
# cat /etc/cron.d/mrtg */5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ] && [ -d "$(grep '^[[:space:]]*[^#]*[[:space:]]*WorkDir' /etc/mrtg.cfg | awk '{ print $NF }')" ]; then mkdir -p /var/log/mrtg ; env LANG=C /usr/bin/mrtg /etc/mrtg.cfg 2>&1 | tee -a /var/log/mrtg/mrtg.log ; fi
ちゃんとグラフできてるか確認
通常cronを待つと5分経過しないとmrtgが実行されませんが、強制的にこんな感じで実行してやると少しグラフが出てくるのでうまくいっているか分かります。
LANG=C /usr/bin/mrtg /etc/mrtgcfg/mrtg.cfg
クラウド上のサーバからMRTGで速度計測のコツ
クラウド上のサーバって、みんなでnicを共有化しているせいかコマンドに値を返さないものがあるようです。ifSpeedとifHighSpeedで0を返すものはMRTG上計測できないとするようですが、
ゼロを報告するすべてのインターフェイスを100Mbpsに設定
-zero-speed = 100000000
をしてやると、MRTGで値が取得できるNICとして登録できるようです。(推定形なのはちょっと確信がないから。とりあえずこうやったらできたという報告として捉えてください。)
書式 cfgmaker -zero-speed = 100000000 コミュニティ名@サーバ名 >>設定ファイル名(最後尾に追加)