Linuxファイルシステムが多くのサーバーに読み取り専用でマウントされているかどうかをリモートで定期的に確認する必要があります。この場合、私が自由に使えるツールは、通常のCLIスクリプト言語(BASH/Perl/Python)、SSH、およびSNMPだけです。
これまでの私の考えは次のとおりです。
SNMPメソッドは私が考えることができる最も優れた/最もクリーンな方法ですが、CLI SNMPは悪夢のように見えるため、これを行う方法に迷っています。特に、に基づいてインデックスを見つけるために決定プロセスを実行する必要がある場合はそうです。与えられたマウントポイント。
理想的には、BASH(sed/awk/grepなどを含む)とSNMPのみを使用してこれを実現したいのですが、どこから始めればよいかについてのガイダンスが必要です。 snmpdは、問題のすべてのサーバーにv2用に既にインストールおよび構成されています。
このスクリプトの最終的な使用法は、Nagiosコマンドです。
助けてくれてありがとう!
注すでに数百台のサーバーを監視するcacti/nagiosが設定されていますが、最初に投稿したときにこれについて言及するのを忘れています!
あなたのsnmpd.conf
exec引数を確認してください。これを使用して、次のように、いくつかのIRCサーバーのユーザー数をリモートでポーリングします:
exec usercount-irc /home/irc/usercount-irc.sh
これをポーリングするには、snmpwalk .1.3.6.1.4.1.2021.8を実行すると、次のようになります。
# snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.8
UCD-SNMP-MIB::extIndex.1 = INTEGER: 1
UCD-SNMP-MIB::extNames.1 = STRING: usercount-irc
UCD-SNMP-MIB::extCommand.1 = STRING: /home/irc/usercount-irc.sh
UCD-SNMP-MIB::extResult.1 = INTEGER: 0
UCD-SNMP-MIB::extOutput.1 = STRING: 558
UCD-SNMP-MIB::extErrFix.1 = INTEGER: 0
UCD-SNMP-MIB::extErrFixCmd.1 = STRING:
詳細については、 http://linux.die.net/man/5/snmpd.conf のExtending Agent Functionalityの部分を確認してください。
編集1:
UCD-SNMP-MIB:dskTableには、マウントされたボリュームと使用法に関する情報が含まれています。 OID .1.3.6.1.4.1.2021.9の下にあり、次の場所に文書化されています。
http://www.oidview.com/mibs/2021/UCD-SNMP-MIB.html
http://www.net-snmp.org/docs/mibs/ucdavis.html#dskTable
しかし、今ではマウントフラグが含まれていないので、読み取り専用で表示することはできません。ああ。上記のスクリプトとその呼び出し方法に戻ります。 :P
ほとんどの「nagiosでXを実行するにはどうすればよいですか?」では、必要なもののすべてまたは少なくとも一部を実行するプラグインを誰かがすでに作成していることがわかります。
この場合、check_ro_mountsを「negate」プラグイン(標準のnagiosプラグインの一部)と組み合わせて使用するか、ニーズに合わせて変更することができます。
もう1つの方法は、Perl、RubyのNet :: SSH、またはPythonのparaminkoライブラリを使用してリモートでログインし(事前にキーを設定する必要はありません)、「mount」コマンドの内容を解析することです。
マウントポイントとそのフラグの管理と確認は、Puppetを介して処理できます。 puppetからマウントされたパーティション(fstab +マウントポイント)を管理する方法 を参照してください。