S.M.A.R.T.の異常をNextcloudに通知する
OSの通知をNextcloudに送る機能を使って、実際にOSの通知を送信してみます。
今回は、HDDなどのストレージの状態を監視するsmartmontoolsが送信するメールの内容だけを取り出してNextcloudに通知します。(メールの内容を取り出すと書きましたが、メール関係の機能は一切使いません。)
ついでに、定期的にS.M.A.R.T.のセルフテストを行うように設定します。
実装
smartmontoolsをインストールします。
sudo apt install smartmontools
smartmontoolsのデーモンであるsmartdから呼び出されるスクリプトを実装します。
sudo vi /root/sh/smartd.sh
#!/bin/bash
/root/sh/nextcloud_notification.sh "$SMARTD_MESSAGE" "$SMARTD_FULLMESSAGE"
smartdのconfigを編集します。
sudo vi /etc/smartd.conf
もともと入っている"DEVICESCAN"から始まる行をすべてコメントアウトする
#DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
ファイルの末尾に以下を追記
DEVICESCAN -a -o on -S on -s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03) -W 4,35,40 -m root -M exec /root/sh/smartd.sh
サービスを再起動します。
sudo systemctl restart smartmontools
動作確認
テストメッセージを出すには、configを変更します。
DEVICESCAN ... の末尾に"-M test"を追記します。
DEVICESCAN -a -o on -S on -s (O/../.././(00|06|12|18)|S/../.././01|L/../../6/03) -W 4,35,40 -m root -M exec /root/sh/smartd.sh -M test
smartmontoolsを再起動すると、通知が行われます。
sudo systemctl restart smartmontools
smartmontools起動時に通知が行われます。問題ないことを確認したら、追加した末尾の"-M test"を削除してsmartmontoolsを再起動します。
参考資料
smartd.conf(5) - Linux man page
LinuxでHDDのSMARTをモニタリングする - ふなWiki
サンプルスクリプト(smartmontools と一緒にインストールされる)
/usr/share/doc/smartmontools/examplescripts/
コメントを残す