web-dev-qa-db-ja.com

Nagiosを使用してサービスが利用できないことを確認するのは合理的ですか?

プライベートインターフェイスとパブリックインターフェイスを備えたサーバーがあるとします。パブリックにはHTTP(S)サーバーなどがあり、プライベートにはMySQLとSSHがあります。

明らかに、Nagiosは、サービスがそれぞれのインターフェースで実行されていることを確認するのに役立ちます。しかし、MySQLポートとSSHポートがパブリックインターフェイスで開いていないであることを明示的にテストするチェックを構築することは良い考えですか?アイデアは、プライベートであるべきサービスを開いた不注意な設定ミスをキャッチし、適切に警告することです。

私の一部は、これはひどくスケーリングしないだろうという考えを持っています-たとえば、iptables DROPルールがあると想像してください。たとえば、チェックが完了して次に進むには、チェックタイムアウトが超過するまでチェックを待機する必要があります。ただし、そのタイムアウトは、ブロックされたサービスと、実際に機能が停止している開いているサービスを区別できるように、十分に高くする必要があります。

これは実用的なアイデアですか? Nagiosは適切なツールですか? TCPチェックプラグインの結果を否定する可能性についても調べていませんが、実行可能であると確信しています...

9
smitelli

はい、もちろん。監視システムの役割は、ビジネス要件がどのようなものであっても、ITインフラストラクチャによって現在満たされていることを確認することです。

私の直感では、監視しているポートの数に簡単な制限はなく(65535)、ポートが突然開かないようにする必要があります。この制御を実現する最善の方法は、厳密なソース管理と強力なことです。サーバーでの積極的なファイルシステム監視(例:tripwire)。

しかし、それが絶対にビジネスクリティカルである特定のポートがある場合、それは決して公開されません。そうです、必ずそのための特定のチェックを配置します。 NAGIOS negateプラグインを調べることをお勧めします。このプラグインは、ほとんどの主要なディストリビューションに付属しており、提案したとおりに実行するために使用されます。

11
MadHatter

任意のチェックをnegateプラグインと組み合わせて、チェックロジックを反転させることができます。たとえば、CRIT、WARN、UNKNOWN、およびOKを他の状態に再定義できます。 詳細については、-helpの出力を参照してください

DROPポリシーによってチェック時間が長くなることが心配な場合は、タイムアウトを短くすることができます。このようなチェックの場合、おそらく5分ごとにチェックする必要はありません。 1時間ごとに実行される同様のチェックがいくつかあります。

3
Keith