• 締切済み

JFFNMSによるOIDの監視方法について

失礼致します。 監視ツールであるJFFNMSにて、以下の条件で監視を行いたいのですが、 解決方法をご存知の方はいますでしょうか? ・phpで書かれた監視スクリプトを使用したい  ⇒チェック結果をテキストに「OK」「NG」で書き込むスクリプト。 ・対象サーバにはwebサーバが立ち上がっておらずhttpによる通信は行えない。 スクリプト自体はcronで動かせばいいのですが、その結果をJFFNMSから どう監視(設定)すればいいのかわからず困っております。 テキストに書き込まずOIDに出力すればいいかとも思っているのですが、 そのOIDに出された結果を監視する方法もわからず… どなたかJFFNMSに詳しい方、ご助言頂けますと幸いです。 よろしくお願い致します。

みんなの回答

  • localica
  • ベストアンサー率52% (202/385)
回答No.2

こんにちは >そのプログラムの実行結果をOID?に格納する事が出来ると書いてありました。 >⇒execechotest /bin/echo hello world まずexec行の修正をしてください。 execの後に区切りが必要ですのでスペース(できればタブ)を入れてください exec echotest /bin/echo hello world snmpd.confを修正した後にsnmpdプロセスを再起動して以下のようなコマンドで確認してみてください。 例) snmpget -v2c <監視対象機器のIPアドレス> -c public extOutput.1 ※上記はバージョン2を想定しています(大抵はこれで動くはず) ※SNMPのバージョン拠っては動作が一部異なりますのでご自身の環境をご確認ください。 ※publicで良いのかもsnmpd.confに適切に設定してください。 >httpリクエストからの実行&監視では無く、snmpd(161、162)のみで実行&監視出来るかと思ったからです。 trapを使用していないのなら162は必要ありません。 >全くもって上記の方法を行えばいいとは思うのですが、その具体的なJFFNMSでの設定方法がわからず これだけで良いのならJFFNMSを使用せずconfの設定とsnmpコマンドだけで十分スクリプトが組めます。 また、phpをあくまで使いたいということであればphpにsnmpモジュールを組み込んでリコンパイルすれば使用可能です。 コンパイル方法はphpユーザー会が参考になります。 http://www.php.net/manual/ja/book.snmp.php まだ要件が理解できないのですが、「JFFNMSでの設定方法」というよりsnmpだけで対応可能ではないのでしょうか?

t_arowana
質問者

補足

localicaさん こんにちわ。 またまたご返信有難うございます! すいません、またややこしい文章を書いてしまいましたが、 exec echotest /bin/echo hello worldでは無く。 すでに以下コマンドで使いたいスクリプトの実行結果の確認を取っております。 [ユーザ名@ホスト名 ~]$ snmpwalk -v 2c -c コミュニティ名 localhost .1.3.6.1.4.1.2021.8.1.101.1 UCD-SNMP-MIB::extOutput.1 = STRING: OK つまるところ、聞きたい点はひとつとなりまして、 上記の結果をJFFNMS上で監視し、「OK」か「NG」が切り替わった時にアラートを出すようにする 設定方法について悩んでいるという事になります。 ※設定方法というのはJFFNMSの管理画面上からどんな操作をすればいいかと言う事です。 >まだ要件が理解できないのですが、「JFFNMSでの設定方法」というより >snmpだけで対応可能ではないのでしょうか? 自分は事の流れで使っているので、まだJFFNMSというものが「監視を視覚的に行う事が出来るツール」 としか認識出来ていないのです…。 「snmpだけで対応」というのは具体的にどういう事なのでしょうか? ご回答頂けますと幸いです。 よろしくお願いします。

  • localica
  • ベストアンサー率52% (202/385)
回答No.1

監視を行いたいとのことですが、どのような監視を行いたいのかがわかりません。 具体的な問題点が分からないので返答のしようがありません。 >チェック結果をテキストに「OK」「NG」で書き込むスクリプト。 phpで上記のスクリプトを作成したいということでしょうか? どのような手法であろうとも結果を条件分岐させるだけです。 その「結果」を分岐させる「条件」がわかりません。 >対象サーバにはwebサーバが立ち上がっておらずhttpによる通信は行えない。 対象サーバーが監視される側であるならWebサーバーは必要ありません。 通常なら161、162ポートだと思います。 >テキストに書き込まずOIDに出力すればいいかとも思っているのですが、 意味が分かりません。 OIDとはオブジェクト識別子のことですよね。 >そのOIDに出された結果を監視する方法もわからず… 対象機器から返されたOIDの値に対して処理をするだけです。 テキストに書き込むもよし、閾値を設けて閾値を超えたらアラートを発呼するもよし。 その辺りは「Triggers and Actions」に記載がありますね。 http://www.jffnms.org/docs/triggers.html

t_arowana
質問者

補足

localicaさん お早いご回答有難うございます!! また、技術全般的な知識が浅いままご質問してしまい申し訳ございません…。 また大変恐縮ですが、質問内容に不備と間違いがありましたので、補足・修正させて頂きます。 ・phpの監視スクリプトについて ⇒ スクリプトは既に出来ておりまして、 チェック結果を「OK」「NG」でecho出力するスクリプトになります。 (テキストに「OK」「NG」を書き込むのは間違いでした…) ・webサーバが立ち上げっていない件について ⇒ というのも、他のサーバではJFFNMSのTCPポートのインターフェイスを用いて、 httpにより上記のチェックスクリプトを起動し、 その実行結果を正規表現でチェック(「Ok」「NG」)で監視しているからです。 ・OIDについて ⇒ ここに関してはホント知識が浅くてアレなのですが… 以前、調べてみていたところ snmpd.conf内に以下の様に記述する事で そのプログラムの実行結果をOID?に格納する事が出来ると書いてありました。 ⇒execechotest /bin/echo hello world なので、上記のチェックスクリプトの実行コマンドをこの様にsnmpd.conf内に記述してやれば httpリクエストからの実行&監視では無く、snmpd(161、162)のみで実行&監視出来るかと思ったからです。 >対象機器から返されたOIDの値に対して処理をするだけです。 >テキストに書き込むもよし、閾値を設けて閾値を超えたらアラートを発呼するもよし。 全くもって上記の方法を行えばいいとは思うのですが、その具体的なJFFNMSでの設定方法がわからず 困っている次第です…。 とりあえず、もう少しマニュアルを読んでみなくては駄目ですよね。 また、ご助言頂けましたら幸いです。

関連するQ&A

  • iowaitのOIDについて

    Linux上でvmstatを実行した際に表示される iowaitの値を監視サーバで取得したいのですが OIDをご存知の方、教えて頂けないでしょうか。

  • 外部プログラムの起動と監視

    イントラネット内のLinuxサーバにあるプログラムをクライアントPCのブラウザから 起動しそのプログラムが出力するログを一定周期でブラウザに表示して プログラム終了時にはユーザーに知らせたい。 また、プログラムは同時起動が不可能なものとしたい。 PHPなどのCGIスクリプトでは、ブラウザとのセッションが切れてしまえば サーバー側のプログラムは走りっぱなしになってしまいます。 外部プログラムの監視や排他制御を考えると非常に複雑な処理になることが 予想されます。 そこで質問なのですが、サーバーのプログラムの起動と監視をクライアントPCの ブラウザから行いたいのですがJavaの技術を使うことで容易になりますか? また、ブラウザを使わない通信プログラムを作成すれば可能となりますか? 詳しい方がいましたら教えて下さい。宜しくお願い致します。

    • ベストアンサー
    • Java
  • リダイレクトで空ファイルを生成しない方法

    以下のようにcronの実行結果にgrepをかけて、出力をファイルに書き出しているのですが、grepの結果出力がないときにサイズ0のファイルが生成されます。 cron.php | grep -v '\[ OK \]\|#!/usr/bin/php' > log/`date +%Y%m%d`cron.log 出力があるとき以外ファイルを生成させない方法はありますか? 宜しくお願い致します。

  • CentOSをサーバ監視するには?

    レンタルサーバ(さくらインターネット)でVPS(CentOS6.2(x64))を借りたばっかりなのですが、 システム監視や脆弱性チェックなど、要はサーバ監視(≒「サーバ落ち」&「セキュリティ監視」?) をするためのソフトやウェブサービスにはどんなものがあるのでしょうか?おすすめがありましたらお教えください。 なお、ウェブアプリの脆弱性チェック(XSSとかSQLインジェクションとかディレクトリートラバーサルとかもろもろ)ができるツールもお教えいただけるとうれしいです(もちろん、穴がないようにコードを書くつもりですが) なお、 *そのCentOS6.2(x64)の中で動くもの *あるいは、外部のCentOS6.2(x64)(自宅のwin7上のvmwareに入れてます)で動くもの *windows7(x64)で動くもの の、どれでもいいです。 また、SELinuxというのは知ってますが、 レンタルサーバ業者がセットアップしたデフォルトではoffになっています。 onのほうがいいと単純に思うのですが、どんな理由があるのでしょうか? またレンタルサーバ業者がよくやっている、 pingによる監視は、単にcronでpingをうっているだけなのでしょうか? 以上、よろしくお願いいたします。

  • Webサーバの監視

    はじめまして。 Webサーバの監視について教えていただければと思います。 Apacheを使ってWebサーバを立てて、インターネットで外部から見れることを確認しました。 このWebサーバの応答速度を24時間監視し続けたいです。 具体的には、HTTP(80)とHTTPS(443)に一定感覚でリクエストを投げ、 応答に3分以上かかったら遅延の発生とみなし、管理者にメールを出す。 監視するサーバはWebサーバ2台です。 監視用のPCはWebサーバとは別途、WindowsPCを24時間稼動させます。 (LINUX機はありません) 制限事項として、以下のものがあるとして、何かよいツールはありますでしょうか。 ・監視対象のサーバにエージェントは入れられない ・外部のサイトのサービスで監視するようなのはNG ・できるだけ無償で行いたい Nagios、opManager辺りができそうなのですが、それでも上のことだけをやるには オーバスペックな気がします。他に何かソフトがありましたら教えて欲しいです。

  • 長時間かかるPHPプログラムの処理方法。

    長時間かかるPHPプログラムの処理方法。 PHPプログラムを作成したのですが、処理が終わるまでおそらく数時間掛るようなプログラムを作成しました… 普通にURLにアクセスしても途中でストップしてしまいます。 シェルスクリプトをかまして、CRONジョブで処理したら、サーバーの条件によって途中で止まってしまいます。 サーバーはXREAを使用しています。CRONジョブは3分以上の処理はダメなようです。 長時間のプログラムを処理する方法はあるのでしょうか? 専用サーバーを使う必要があるなら、そういった事が可能でサービス的に良いところを教えてくれると助かります。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • cronを使ってis_dir関数がうまく動かない

    cronを使用して、ディレクトリが存在した場合には、あるスクリプトを実行するようなスクリプトを考えています。 【sample.php】 <? $search_dir = "./SCH_Dir"; if(is_dir($search_dir)) { echo "Dir"; } else { echo "Not Dir or Not Exist"; } ?> sample.phpとディレクトリ SCH_Dirは同一の階層に配置してあります。 上記のsample.phpをWeb上で実行すると、出力結果は "Dir" となり、ディレクトリの存在のチェックが出来ています。 このsample.phpをcron設定した場合、出力結果が "Not Dir or Not Exist" となり、存在していない、という結果が返ってきてしまいます。(結果をメールで受けてっています) なぜcronで実行した場合と結果が違うのか、原因が分からず困っています。 どなたか解決法をご教授ください。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 電源監視について

    電源がデュアル構成になっているサーバーがもし運用中に壊れた場合に備えて監視を入れたい場合、どのようなよいツールがございますでしょうか?(電源以外にもたくさん監視がきるとうれしいです。) ご存知の方、宜しくお願い致します。

  • サーバーサイドスクリプトについて

    現在phpを勉強しようと思ってるのですが、少し疑問に思ったことがあるので質問させてください。 phpなどのサーバーサイドスクリプトは「サーバー上でプログラムが実行され、その結果だけがクライアントへ送られる」ということを知りました。 これはHTMLとちがって、そのサイトをブラウザでソース表示したときにphpのタグは表示されずに出力されたテキストなどだけが表示されるというような意味で合ってるのでしょうか??

    • ベストアンサー
    • PHP
  • 現在あるサーバー(Aサーバー)のcronで次のようなコマンドでperl

    現在あるサーバー(Aサーバー)のcronで次のようなコマンドでperlのスクリプトを動かしています。 cd /home/saarisa/www/; ./tools/runtask これを他のサーバー(Bサーバー)から動かしたいと思い下記のようなSHELLスクリプトをAサーバーに作ってそれを実行したいのですがこのSHELLスクリプトの実行方法がわかりません どうしたら実行できるのでしょうか? #!/bin/sh cd /home/saarisa/www/mt/; ./tools/run-periodic-tasks 1.BサーバーのCRONから実行 2.BサーバーのPHPから実行 3.HTMLからクリックして実行 4.BサーバーからAサーバーのPERLを直接実行 どの方法でもかまいません。 (AサーバーはPHPは動かず、Bサーバーはphpが動きます。) よろしくお願いします。