MRTGによるトラフィックス情報が見たいのでMRTGを入れました。SNMPとMRTGはrpmで入れました。
設定はほぼおやじさんと同じ様に行いました。サーバのアドレスが192.168.0.2なので/etc/snmp/snmpd.confは
com2sec local localhost private
com2sec mynetwork 192.168.0.0/24 public
のようにしました。
MRTGを実行しようとして# mrtg /etc/mrtg/mrtg.cfg
SNMP Error:
no response received
SNMPv1_Session (remote host: "localhost" [127.0.0.1].161)
community: "private"
request ID: 326768457
PDU bufsize: 8000 bytes
timeout: 2s
retries: 5
backoff: 1)
at /usr/bin/../lib/mrtg2/SNMP_util.pm line 450
SNMPGET Problem for ifInOctets.2 ifOutOctets.2 sysUptime sysName on private@loc
alhost
at /usr/bin/mrtg line 1491
WARNING: Expected a number but got ''
WARNING: Expected a number but got ''
というエラーメッセージが出てしまいます。
グラフ(http://goo.mu/MRTG/r1.html)表示されるのですが数値が取得できていないみたいです。
これは、どこの設定がおかしいのでしょうか。
よろしくお願いします。
こんばんは。
> MRTGを実行しようとして# mrtg /etc/mrtg/mrtg.cfg
> SNMP Error:
> no response received
> SNMPv1_Session (remote host: "localhost" [127.0.0.1].161)
> community: "private"
> request ID: 326768457
> PDU bufsize: 8000 bytes
> timeout: 2s
> retries: 5
> backoff: 1)
> at /usr/bin/../lib/mrtg2/SNMP_util.pm line 450
> SNMPGET Problem for ifInOctets.2 ifOutOctets.2 sysUptime sysName on private@loc
> alhost
> at /usr/bin/mrtg line 1491
> WARNING: Expected a number but got ''
> WARNING: Expected a number but got ''
> というエラーメッセージが出てしまいます。
> グラフ(http://goo.mu/MRTG/r1.html)表示されるのですが数値が取得できていないみたいです。
> これは、どこの設定がおかしいのでしょうか。
snmpエージェントからデータが取得できていないときのエラーと思います。snmpdが動いていないか
(netstat -ln でUDPの161番が動いているか調査)、firewall(iptables)で遮断されている(簡単に
調査するなら止めてみる)あたりから調査ですかね。
> (netstat -ln でUDPの161番が動いているか調査)
udp 0 0 0.0.0.0:161 0.0.0.0:*
と表示されました。多分開いていると思いますが、
nmap localhostと実行すると161/udpの文字はありませんでした。
やはり、開いていないということでしょうか?
こんにちは。
> > (netstat -ln でUDPの161番が動いているか調査)
> udp 0 0 0.0.0.0:161 0.0.0.0:*
> と表示されました。多分開いていると思いますが、
> nmap localhostと実行すると161/udpの文字はありませんでした。
> やはり、開いていないということでしょうか?
snmpdは動いているようですね。nmap localhostではTCPのreserved port
しかスキャンしませんので、udpはでてきません。
nmap -sU localhostです。
これで、161/udpが出てこなければiptablesですね。
iptables -L で現在のフィルタの状況がわかりますが、もしiptabelesなら
下記を入れて見てください。ループバックアドレスに関するアクセスを全て許可
(localhost発着のパケット)するフィルタです。
iptabels -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
> snmpdは動いているようですね。nmap localhostではTCPのreserved port
> しかスキャンしませんので、udpはでてきません。
> nmap -sU localhostです。
161/udp open snmp
開いていますよね…。
あと、
> iptabels -A INPUT -i lo -j ACCEPT
> iptables -A OUTPUT -o lo -j ACCEPT
は、/etc/init.d/iptablesに書き込めばいいと思いますが、ファイルのどのあたりに書いたらいいでしょうか。
こんばんは。
> 161/udp open snmp
> 開いていますよね…。
となると、下記はあまり意味がないようにも思えますが、一応確認してみてはどうでしょうか?
> あと、
> > iptabels -A INPUT -i lo -j ACCEPT
> > iptables -A OUTPUT -o lo -j ACCEPT
> は、/etc/init.d/iptablesに書き込めばいいと思いますが、ファイルのどのあたりに書いたらいいでしょうか。
とりあえず試験ですから、コマンドで打ち込んでください。意味がなかったらiptablesを再起動すれば無効になります。
効果があるなら、
/etc/rc.d/init.d/iptables save
で保存できます。
後、下記のように打ち込んだとき、OIDがズラズラ出てくるのですがどうでしょうか?
snmpwalk -v 1 localhost -c private .
こんばんわ。
> > > iptabels -A INPUT -i lo -j ACCEPT
> > > iptables -A OUTPUT -o lo -j ACCEPT
> > は、/etc/init.d/iptablesに書き込めばいいと思いますが、ファイルのどのあたりに書いたらいいでしょうか。
>
> とりあえず試験ですから、コマンドで打ち込んでください。意味がなかったらiptablesを再起動すれば無効になります。
> 効果があるなら、
> /etc/rc.d/init.d/iptables save
> で保存できます。
他の方法として、/etc/sysconfig/iptablesを作成してその中に記述する方法と、
コマンドを打ってから /sbin/iptables-save > /etc/sysconfig/iptablesで保
存するの2通りの方法がありますよ。
> 後、下記のように打ち込んだとき、OIDがズラズラ出てくるのですがどうでしょうか?
> snmpwalk -v 1 localhost -c private .
他の方法として、
snmpwalk localhost private Systemとか、
snmpwalk localhost private Interfacesとかでも良かったような気がしました
が、記憶違いだったかな?
> iptabels -A INPUT -i lo -j ACCEPT
> iptables -A OUTPUT -o lo -j ACCEPT
は駄目でした。
> 後、下記のように打ち込んだとき、OIDがズラズラ出てくるのですがどうでしょうか?
> snmpwalk -v 1 localhost -c private .
bash: snmpwalk: command not foundです。インストールされていないのかな?
一番最初にエラーメッセージを検索したところ、
・SNMP エ−ジェントの設定が消えている。
・対象機機のIPアドレスが間違っている。
・コミュニティ名が間違っている。
・SNMPでのアクセス権限がない。
のような、原因が考えられるそうです。
/etc/snmp/snmpd.confの内容。
# sec.name source community
com2sec local localhost private
com2sec mynetwork 192.168.0.0/24 public
# sec.model sec.name
group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local
#group MyRWGroup v1 local
#group MyRWGroup v2c local
#group MyRWGroup usm local
#group MyROGroup v1 mynetwork
#group MyROGroup v2c mynetwork
#group MyROGroup usm mynetwork
# name incl/excl subtree mask(optional)
view all included .1 80
# group context sec.model sec.level prefix read write notif
access mygroup1 "" any noauth exact all none none
access mygroup2 "" any noauth exact all all none
syslocation RedHat Linux 7.3
syscontact root@linux
/etc/mrtg/mrtg.cfgの内容。
WorkDir: /home/admin/MRTG
Options[_]: growright, bits
Target[r1]: 2:private@localhost
SetEnv[r1]: MRTG_INT_IP="192.168.0.2" MRTG_INT_DESCR="eth0"
MaxBytes[r1]: 1250000
Title[r1]: Traffic Analysis
Language: eucjp
IconDir: /mrtg/icons/
PageTop[r1]: <H1>Traffic Analysis</H1>
このような設定になっています。おやじさん・U-mexさんとの設定と異なっている所ありますか。
> > 後、下記のように打ち込んだとき、OIDがズラズラ出てくるのですがどうでしょうか?
> > snmpwalk -v 1 localhost -c private .
> bash: snmpwalk: command not foundです。インストールされていないのかな?
pathがとおっていないだけでしょう。
locate snmpwalkで見つかるはずです。
> /etc/snmp/snmpd.confの内容。
> # sec.name source community
> com2sec local localhost private
> com2sec mynetwork 192.168.0.0/24 public
>
> # sec.model sec.name
> group MyROGroup v1 local
> group MyROGroup v2c local
> group MyROGroup usm local
> #group MyRWGroup v1 local
> #group MyRWGroup v2c local
> #group MyRWGroup usm local
> #group MyROGroup v1 mynetwork
> #group MyROGroup v2c mynetwork
> #group MyROGroup usm mynetwork
>
>
> # name incl/excl subtree mask(optional)
> view all included .1 80
>
> # group context sec.model sec.level prefix read write notif
> access mygroup1 "" any noauth exact all none none
> access mygroup2 "" any noauth exact all all none
完全に間違えています。sec.model sec.nameのところで、セキュリティグループの登録を
していますよね。それ以外は駄目です。mygroup1ではなくMyROGroupを登録してますよね。
HPにチャント書いてあるのですが・・・・。
大変失礼いたしました。以下のとおりに修正しました。
# sec.name source community
com2sec local localhost private
#com2sec mynetwork 192.168.1.0/24 public
# sec.model sec.name
group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local
#group MyRWGroup v1 local
#group MyRWGroup v2c local
#group MyRWGroup usm local
#group MyROGroup v1 mynetwork
#group MyROGroup v2c mynetwork
#group MyROGroup usm mynetwork
# incl/excl subtree mask 80
view all include .1 80
# context sec.model sec.level match read write notif
access MyROGroup "" any noauth exact all none none
#access MyRWGroup "" any noauth exact all all none
syslocation RedHat Linux 7.3
syscontact root@linux
> 完全に間違えています。sec.model sec.nameのところで、セキュリティグループの登録を
> していますよね。それ以外は駄目です。mygroup1ではなくMyROGroupを登録してますよね。
これであっていますか。
こんばんわ。
> # sec.name source community
> com2sec local localhost private
> #com2sec mynetwork 192.168.1.0/24 public
私は、#com2sec mynetwork 192.168.1.0/24 public行の所は、他のマシンの
サーバ情報も読みに行かせるため、コメントは外してます。
> # sec.model sec.name
> group MyROGroup v1 local
> group MyROGroup v2c local
> group MyROGroup usm local
> #group MyRWGroup v1 local
> #group MyRWGroup v2c local
> #group MyRWGroup usm local
> #group MyROGroup v1 mynetwork
> #group MyROGroup v2c mynetwork
> #group MyROGroup usm mynetwork
>
> # incl/excl subtree mask 80
> view all include .1 80
>
> # context sec.model sec.level match read write notif
> access MyROGroup "" any noauth exact all none none
> #access MyRWGroup "" any noauth exact all all none
>
> syslocation RedHat Linux 7.3
> syscontact root@linux
> これであっていますか。
これで大丈夫でしょう。早速、snmpdデーモンを再起動させてから snmpwalk
コマンドで情報を読み出せるかチェックです。
# locate(または slocate) snmpwalk で snmpwalkが何処にあるのか調べてから
おやじ殿が書いたとおり、
# /locateで調べたpath/snmpwalk -v 1 localhost -c private .
を打つとOIDがズラズラ出てくるのですがどうでしょう?
> これで大丈夫でしょう。早速、snmpdデーモンを再起動させてから snmpwalk
> コマンドで情報を読み出せるかチェックです。
> # locate(または slocate) snmpwalk で snmpwalkが何処にあるのか調べてから
> おやじ殿が書いたとおり、
> # /locateで調べたpath/snmpwalk -v 1 localhost -c private .
> を打つとOIDがズラズラ出てくるのですがどうでしょう?
再起動させて、locate snmpwalk・slocate snmpwalkを実行しましたが、何も表示されません。
おやじさんが教えてくださった、
> pathがとおっていないだけでしょう。
> locate snmpwalkで見つかるはずです。
も試してみたのですが、# locate snmpwalkを実行すると何も表示されず# がでてしまいます。
> snmpwalk -v 1 localhost -c private .
はTimeout: No Response from localhost
です。
# echo $PATHは
/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/u
sr/X11R6/bin:/root/binです。あまり関係なかったですか。
ucd-snmp-utils-4.2.4-3.i386.rpmをインストールしました。# snmpwalkを実行したら、No hostname specified.と表示されその後に、使い方が出るようになりました。
> > # locate(または slocate) snmpwalk で snmpwalkが何処にあるのか調べてから
> > おやじ殿が書いたとおり、
> > # /locateで調べたpath/snmpwalk -v 1 localhost -c private .
> > を打つとOIDがズラズラ出てくるのですがどうでしょう?
> 再起動させて、locate snmpwalk・slocate snmpwalkを実行しましたが、何も表示されません。
>
> おやじさんが教えてくださった、
> > pathがとおっていないだけでしょう。
> > locate snmpwalkで見つかるはずです。
> も試してみたのですが、# locate snmpwalkを実行すると何も表示されず# がでてしまいます。
そもそもlocateやslocateコマンドはsyslogd実行後やシステムshutodown後の起動したあと
で有効なコマンドなんです。
試しに、他のコマンドを探させれば #だけで終了せず、検索したいコマンドのありかを表示
してくれるはずです。(例えばlocate lessとか。。。)
> > snmpwalk -v 1 localhost -c private .
> はTimeout: No Response from localhost
> です。
> # echo $PATHは
> /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/u
> sr/X11R6/bin:/root/binです。あまり関係なかったですか。
>
> ucd-snmp-utils-4.2.4-3.i386.rpmをインストールしました。# snmpwalkを実行したら、No hostname specified.と表示されその後に、使い方が出るようになりました。
今までの話のやり取りで、ももさんの情報が判らなくなりました。
最初の段階で既にSNMPとMRTGはrpmでインストールしてますよね、なぜまたsnmpを
インストールしたのか? 前のsnmpを消して入れ直したのか? はたまた違うバージョン
のsnmpを2重インストールしたのか?判断つきません。
> ucd-snmp-utils-4.2.4-3.i386.rpmをインストールしました。# snmpwalkを実行したら、No hostname specified.と表示されその後に、使い方が出るようになりました。
単にsnmpwalkとすれば、パラメータがないのでこうなって当然です。
何でsnmpwalk -v 1 localhost -c private . としないのですか?
> > ucd-snmp-utils-4.2.4-3.i386.rpmをインストールしました。# snmpwalkを実行したら、No hostname specified.と表示されその後に、使い方が出るようになりました。
>
> 単にsnmpwalkとすれば、パラメータがないのでこうなって当然です。
おやじ殿の言う通り、snmpwalkと打っただけだとあのエラー表示するんですね。認識不足でした。
と言う事で、No.1370の後半部分を訂正削除します。
---- No.1370の後半部分 ----
> snmpのエラー、No hostname specified.はホスト名が指定されてませんのでsnmpの
> 問題ではなく他の問題の可能性もあります。
> /etc/hostsファイルに 127.0.0.1 localhost.localdomain localhostの記述確認
> 等、システム関連の確認をしたほうが良いのかも知れません。
---- 終わり ---------------