Nagiosを複数のサーバーがあり、それぞれに複数のサービスがある環境で実行しています。カスタムチェックがいくつかありますが、可能であれば既存のチェックを使用するのは良いことです。 NRPEプラグインチェックを使用していますcheck_diskマウントされた各ファイルシステムの使用率をチェックします:
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 10% -c 5% -p / -p /var -C -u GB -w 200 -c 100 -r '^/mounts[^/]+$'
これらすべてを単一のサービス(「ディスク」)としてチェックするのは便利ですが、これらの1つが警告モードになると、ステータス情報行の出力を読み取るのが困難になります。
DISK WARNING - free space: / 6 GB (9% inode=92%): /var 125 GB (67% inode=99%): /mounts/vol0 1152 GB (16% inode=99%): /mounts/vol1 1096 GB (15% inode=99%): /mounts/vol2 126 GB (1% inode=99%): /mounts/vol3 228 GB (3% inode=99%): /mounts/vol4 3245 GB (44% inode=99%): /mounts/vol5 108 GB (1% inode=99%):
上記の場合、/、/ mounts/vol2、および/ mounts/vol5がしきい値を下回っているため、チェックは警告です。オペレーターは、設定されたレベルを超える値を見つけるために、各値を調べなければなりません。また、1つがクリティカルで、他の1つが警告している場合は、マークを付けるか、別の行に配置することで、別の方法で表示するとよいでしょう。
マウントポイントごとに新しいコマンドを作成せずに、これを行う簡単な方法はありますか?それとも、これをフレンドリーにするためのNagiosマジックの他の基本的な方法がないのですか?
-errors-only flag を試してください。これにより、このプラグインによって吐き出されるテキストの量が大幅に削減されます。
-e, --errors-only Display only devices/mountpoints with errors
これは私にとってはうまくいくようです。出力の大幅な違いに注意してください。
# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10%
DISK WARNING - free space: / 37167 MB (96% inode=98%); /dev/shm 244 MB (100% inode=99%); /boot 84 MB (18% inode=99%); /home 21253 MB (99% inode=99%);
しかし、--errors-only
フラグを使用すると、私の問題が/boot
にあることが明らかになりました。
# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% --errors-only
DISK WARNING - free space: /boot 94 MB (20% inode=99%);
システムに問題がない場合、出力は非常に短くなります。
# /usr/lib64/nagios/plugins/check_disk -w 20% -c 10% --errors-only
DISK OK
(注:わかりやすくするために、最初の|以降はすべて削除しました。NagiosWebインターフェイスも、画面に表示される前にこの出力をトリミングします。)
Debianバグタッカーに関するこのディスカッションも参照してください: nagios2:理解できない方法でディスク容量について不平を言う 。
標準的な方法は、すべてを1行に収めることです。 2つのオプションしかありません。
各ディスクのチェックを定義します(私はあなたが望んでいるものではないことを知っていますが、これはまだ最善の解決策です)
独自のプラグインまたは出力を解析するcheck_disksのラッパーを記述します。たとえば、ステータス行のしきい値より下にディスクを置くか、出力を短くして関連するディスクのみを含めることができます。
ラッパーは任意の言語で記述できますが、タスクを考えると、スクリプト言語(Perlなど)をお勧めします。プラグインの開発方法に関するガイドラインがあります: http://nagiosplug.sourceforge.net/developer-guidelines.html
@Matteoが述べたように、パーティションごとにチェックを定義する必要があると思います。ただし、ディスク使用量を降順で並べ替えるラッパーの例を次に示します。
check_disk -w 20% -c 10% -p /dev/sda1 -p /dev/sdb2 -p /dev/sdb4 |
awk -F"|" '{ print $1 }' | awk -F": " '{ print $2 }' | \
tr ";" "\n" | sed 's/^ //' | sort -k4,4n
PS:私のcheck_disk
プラグインは、あなたが示したように;
ではなく:
で区切られたリストを返します。
check_multi を検討してみてください。これは、単一のステータス行を表示する機能と、実際に各ディスクを個別にチェックすることで詳細を確認する機能を組み合わせたものです。 スクリーンショット のいくつかからそれがどのように機能するかを見ることができます。ディスクチェックの例では、「1警告、2 OK」を表示する1つのcheck_multiチェックがあり、そのサービスをクリックすると、3つの個別のチェックが表示され、どのディスクがそのディスクの詳細とともに警告されているかが示されます。特に、他の2つもはっきりと表示しています。