Nagios Core 、 [〜#〜] nrpe [〜#〜] および check_disk を使用して、Ubuntuサーバーで利用可能なディスク領域を監視しています。
以前のUbuntuバージョンでは、以前は次のような出力を取得していました。
DISK OK - free space: / 43754 MB (80% inode=86%):
Ubuntu 18.04.1では、代わりに次のようになります。
DISK OK - free space: /var/tmp 43754 MB (80% inode=86%):
ルート/var/tmp
パーティションの誤ったマウントポイント/
が表示されます。 PrivateTmp=true
にnagios-nrpe-server.service
があることに依存するように、この動作を追跡しました。
/var/tmp
を調べたところ、systemd-private-c5b5d3d362364af19af640147f2cb844-nagios-nrpe-server.service-4uILRy
という名前のディレクトリが見つかりましたPrivateTmp=true
に気づきました(Ubuntu 16.04の NRPE2 などにはありません)。/
として検出されました私は3つのオプションに直面しているように感じます:
一緒に暮らしてください。
PrivateTmp=true
を削除します。
適切な回避策を見つけてください。
私はそれだけで生活する傾向がありますが、サービスにプライベートの/tmp
がないことの影響をもっと知っていれば、オプション2について十分な情報を得た上で選択できます。
最適な解決策は、回避策を見つけて、この場合でも正しいマウントポイント情報を返すようにcheck_disk
に指示することです。システムにアクセスできないことは、/tmp
が障害となることを意味しません。
質問:PrivateTmp=true
の意味を図解し、それが推奨される理由と、どのような場合に、どのような警告で削除できるかを説明してください。
2番目の質問:check_disk
または同等のツールがPrivateTmp=true
を使用してサービスによって実行されている場合でも、正しいルートマウントポイントを表示するための賢明な回避策はありますか?
追加情報:
完全なコマンドは/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/mapper/vg-root
です。ローカルで実行すると、nagios
ユーザーを使用しても、出力には/
が正しく表示されます。 /usr/local/libexec/nagios/check_nrpe2 -H 192.168.1.2 -c check_root
を使用してNagiosサーバーからリモートで実行すると、出力には期待される/var/tmp
ではなく/
が表示されます。
マウントポイントの代わりにcheck_disk
にブロックデバイスを提供することで、この動作を再現できます。
例えば:
root@cosmic:~# grep check_root /etc/nagios/nrpe.cfg
command[check_root]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
root@cosmic:~# /usr/lib/nagios/plugins/check_nrpe -H 127.0.0.1 -c check_root
DISK OK - free space: /var/tmp 6451 MB (68% inode=78%);| /var/tmp=3033MB;8010;9011;0;10013
root@cosmic:~# /usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
DISK OK - free space: / 6451 MB (68% inode=78%);| /=3033MB;8010;9011;0;10013
しかし、マウントポイントを使用することで、期待どおりの動作が得られます。
root@cosmic:~# grep check_root /etc/nagios/nrpe.cfg
command[check_root]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
root@cosmic:~# /usr/lib/nagios/plugins/check_nrpe -H 127.0.0.1 -c check_root
DISK OK - free space: / 6451 MB (68% inode=78%);| /=3033MB;8010;9011;0;10013
root@cosmic:~# /usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /
DISK OK - free space: / 6451 MB (68% inode=78%);| /=3033MB;8010;9011;0;10013
この動作は、systemdユニットのPrivateTmp=
の設定に何らかの形で関連しているようです。これをnagios-nrpe-server.service
から削除すると、check_disk
は、ブロックデバイスを指定した場合にも期待される結果を返します。私は/bin/df
をPrivateTmp=true
で実行する簡単なサービスで少し遊んでみましたが、そこに明らかな問題は見つかりませんでした。それも正しい結果を返しました。
マウントポイントではなくブロックデバイスでディスクをチェックできるようにする必要がある場合、最善の方法は、Nagios NRPE開発者に問題を報告して、実際にコードを調べて何でも見つけられるようにすることです。です。