web-dev-qa-db-ja.com

読み取り専用ファイルシステムをリモートでチェックする

Linuxファイルシステムが多くのサーバーに読み取り専用でマウントされているかどうかをリモートで定期的に確認する必要があります。この場合、私が自由に使えるツールは、通常のCLIスクリプト言語(BASH/Perl/Python)、SSH、およびSNMPだけです。

これまでの私の考えは次のとおりです。

  • SSHキーを共有し、mountコマンドをリモートで実行し、指定されたマウントポイントでROフラグをgrep/awk-ingします。
  • SNMP経由で確認してください。ただし、この情報が利用できるかどうか、またはそれがどれほど簡単かはわかりません。
  • ファイルをSCPするか、リモートでファイルに触れてみてください。

SNMPメソッドは私が考えることができる最も優れた/最もクリーンな方法ですが、CLI SNMPは悪夢のように見えるため、これを行う方法に迷っています。特に、に基づいてインデックスを見つけるために決定プロセスを実行する必要がある場合はそうです。与えられたマウントポイント。

理想的には、BASH(sed/awk/grepなどを含む)とSNMPのみを使用してこれを実現したいのですが、どこから始めればよいかについてのガイダンスが必要です。 snmpdは、問題のすべてのサーバーにv2用に既にインストールおよび構成されています。

このスクリプトの最終的な使用法は、Nagiosコマンドです。

助けてくれてありがとう!

すでに数百台のサーバーを監視するcacti/nagiosが設定されていますが、最初に投稿したときにこれについて言及するのを忘れています!

5
SimonJGreen

あなたのsnmpd.confexec引数を確認してください。これを使用して、次のように、いくつかの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.confExtending 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

5
Mattias Ahnberg

ほとんどの「nagiosでXを実行するにはどうすればよいですか?」では、必要なもののすべてまたは少なくとも一部を実行するプラグインを誰かがすでに作成していることがわかります。

この場合、check_ro_mountsを「negate」プラグイン(標準のnagiosプラグインの一部)と組み合わせて使用​​するか、ニーズに合わせて変更することができます。

http://exchange.nagios.org/directory/Plugins/Uncategorized/Operating-Systems/Linux/check_ro_mounts/details

2
Keith

もう1つの方法は、Perl、RubyのNet :: SSH、またはPythonのparaminkoライブラリを使用してリモートでログインし(事前にキーを設定する必要はありません)、「mount」コマンドの内容を解析することです。

1
dtbnguyen

マウントポイントとそのフラグの管理と確認は、Puppetを介して処理できます。 puppetからマウントされたパーティション(fstab +マウントポイント)を管理する方法 を参照してください。

0
Jeff Ferland