🧭 Scrutiny 導入ガイド:初心者でもわかるHDD/SSD監視ツールの設定手順
対象:Synology DSM 環境 | Docker版(master-omnibus) | 監視対象:HDD/SSD(例:/dev/sda~/dev/sdb)
🔰 Scrutinyとは?初心者向け解説
Scrutiny(スクルーティニー)は、ハードディスクやSSDの「健康状態」をチェックするためのオープンソースツールです。S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)情報を収集し、Webブラウザ上で直感的なグラフ形式で表示するため、専門知識がなくてもディスクの状態を簡単に把握できます。
Scrutinyで確認できる主な情報には、以下のものがあります:
- ディスクの通電時間:稼働開始からの累計時間
- 温度履歴:現在の温度と過去の変動
- エラーや警告の履歴:異常の兆候を早期に発見し、データ損失のリスクを軽減
本ガイドでは、データベース(InfluxDB)が同梱されたmaster-omnibus版を使用します。これにより、別途データベースを構築する手間がなく、初心者でも手軽に導入を開始できます。
上級者向けポイント:master-omnibusは単一のDockerイメージで完結するため、外部データベースは不要です。S.M.A.R.T.データの収集はcronベースで、デフォルトでは毎日23時に実行されます。
🤔 Synology DSM環境でのScrutiny導入
Synology NASは「DSM」という独自のOSで動作しますが、その基盤はLinuxです。DSMにDockerパッケージをインストールすることで、Scrutinyを簡単にコンテナとして稼働させることができます。ただし、Synology特有のディレクトリ構造(例:/volume1/docker)に合わせて設定を調整する必要があります。
🛠 導入に必要なもの
ScrutinyをDockerで動かすには、以下の3つの要素を準備します:
- 保存フォルダの準備:Scrutinyの設定ファイルや収集データを保存するためのディレクトリを作成します(推奨パス:
/volume1/docker/scrutiny)。 - 監視対象ディスクの特定:監視したいHDD/SSDのLinuxデバイス名(例:
/dev/sda)を調べます。 - docker-compose.ymlファイルの作成:Scrutinyコンテナの起動設定を記述した「設計図」を作成します。
📁 ステップ① 保存フォルダの作成
Scrutinyの設定ファイルやInfluxDBのデータが永続的に保存されるフォルダを作成します。Synology NASでは、Docker関連のデータは/volume1/docker配下に配置するのが一般的です。
mkdir -p /volume1/docker/scrutiny/influxdb
このコマンドを実行すると、以下のディレクトリが作成されます:
/volume1/docker/scrutiny/:Scrutinyの全体設定ファイル用/volume1/docker/scrutiny/influxdb/:S.M.A.R.T.情報などの時系列データ用
初心者向けヒント:コマンドの -p オプションは、指定したパスの親ディレクトリが存在しない場合でも自動的に作成してくれます。エラーを防ぐために必ず使用しましょう。
🔍 ステップ② 監視したいディスクの特定
Scrutinyに監視させるHDD/SSDを指定するには、Linuxにおける「デバイス名」(例:/dev/sda)を正確に把握する必要があります。以下のコマンドを使用して確認できます。
方法A:lsblk コマンドでデバイス情報を確認
lsblk -o NAME,MODEL,SIZE,TYPE,MOUNTPOINT
出力例:
NAME MODEL SIZE TYPE MOUNTPOINT
sda TOSHIBA HDWD130 4T disk
sdb WDC WD40EZRX 4T disk
上記の例では、監視対象となるディスクは /dev/sda と /dev/sdb であることがわかります。
方法B:smartctl コマンドでS.M.A.R.T.対応ディスクをスキャン
smartctl --scan
出力例:
/dev/sda -d sat # ATA device
/dev/sdb -d sat # ATA device
注意点:NVMe SSDの場合、デバイス名は /dev/nvme0n1 のようになることがあります。
上級者向けポイント:SATA接続のディスクは sat、NVMe接続のディスクは nvme としてcollector.yamlに指定します。ホストOSとコンテナ内でデバイス名が一致していることを確認してください。
📝 ステップ③ collector.yaml ファイルの作成
Scrutinyにどのディスクを監視させるかを設定するためのファイルです。以下の例は、2台のSATAディスク(/dev/sda、/dev/sdb)を監視する場合の設定です。
cat <<EOF > /volume1/docker/scrutiny/collector.yaml
version: 1
host:
id: ""
devices:
- device: /dev/sda
type: 'sat'
- device: /dev/sdb
type: 'sat'
EOF
設定のポイント:
type: 'sat':SATA接続のHDD/SSDに適用します。type: 'nvme':NVMe接続のSSDの場合に指定します。- 監視するディスクを追加したい場合は、
devicesセクションに同様の形式で項目を追記してください。
⚙️ ステップ④ docker-compose.yml ファイルの作成
Scrutinyコンテナの起動設定を定義する「設計図」ファイルです。以下は基本的な構成例です。
cat <<EOF > /volume1/docker/scrutiny/docker-compose.yml
version: '3.8'
services:
scrutiny:
container_name: scrutiny
image: ghcr.io/analogj/scrutiny:master-omnibus
cap_add:
- SYS_RAWIO
- SYS_ADMIN
ports:
- 6090:8080/tcp
- 8086:8086/tcp
volumes:
- /run/udev:/run/udev:ro
- /volume1/docker/scrutiny:/opt/scrutiny/config
- /volume1/docker/scrutiny/influxdb:/opt/scrutiny/influxdb
devices:
- /dev/sda:/dev/sda
- /dev/sdb:/dev/sdb
environment:
- COLLECTOR_CRON_SCHEDULE=0 23 * * *
- TZ=Asia/Bangkok
security_opt:
- no-new-privileges:true
restart: unless-stopped
EOF
設定のポイント:
/run/udev:/run/udev:ro:ディスク情報を読み取り専用で取得するために必要です。TZ=Asia/Bangkok:タイムゾーン設定です。お住まいの地域に合わせて変更してください(例:日本にお住まいならAsia/Tokyo)。devices:collector.yamlで指定した監視対象ディスクと同じものを全て記述します。COLLECTOR_CRON_SCHEDULE:データの収集タイミングをcron形式で指定します。デフォルトは毎日23時です。
初心者向けヒント:タイムゾーンの設定を忘れると、Scrutinyのグラフに表示される時間がずれてしまうことがあるので注意しましょう!
🚀 ステップ⑤ Scrutinyの起動
以下のコマンドを実行して、Scrutinyコンテナをバックグラウンドで起動します。
cd /volume1/docker/scrutiny
docker-compose up -d
🌐 ステップ⑥ 動作確認
Webブラウザを開き、以下のURLにアクセスしてください:
http://[NASのIPアドレス]:6090
Scrutinyのダッシュボードが表示され、監視対象のディスク温度やS.M.A.R.T.情報が確認できれば導入は成功です!
ログの確認方法(トラブルシューティング時):
docker logs scrutiny
上級者向けポイント:InfluxDBの管理画面は通常 http://[NASのIP]:8086 でアクセス可能ですが、master-omnibus版ではScrutinyのUIから全ての情報にアクセスできるため、直接InfluxDBを操作する必要はほとんどありません。
❓ よくある質問と設定のポイント
なぜ /run/udev:/run/udev:ro をマウントするの?
Linuxの「udev」は、ディスクなどのデバイス情報を管理するシステムです。Scrutinyがディスクを正しく認識し、S.M.A.R.T.情報を読み取るために、この/run/udevディレクトリを読み取り専用(ro)でコンテナにマウントする必要があります。これにより、Scrutinyはデバイス情報を参照するだけで、実際のデバイスには影響を与えません。
なぜ TZ=Asia/Bangkok を指定するの?
Scrutinyは収集したS.M.A.R.T.データにタイムスタンプを付与します。タイムゾーンを指定しない場合、サーバーのデフォルトタイムゾーンが使用され、Web UIのグラフ表示などで時間がずれて表示されることがあります。正確な時刻でデータを記録・表示するためにも、お住まいの地域に合わせたタイムゾーン(例:日本ならAsia/Tokyo)を指定することが重要です。
⚠️ よくあるトラブルと解決策
| 症状 | 原因 | 解決策 |
|---|---|---|
| Webインターフェースが起動しない | 必要なフォルダが存在しない | mkdir -p /volume1/docker/scrutiny/influxdb を実行し、フォルダが正しく作成されているか確認してください。 |
| ディスクデータが表示されない | collector.yamlまたはdocker-compose.ymlのデバイス指定ミス |
ステップ②で確認したディスク名(例:/dev/sda)がcollector.yamlとdocker-compose.ymlの両方で正しく指定されているか、スペルミスがないか再確認してください。lsblkやsmartctl --scanコマンドを再度実行して確認するのも有効です。 |
| 温度履歴やグラフの時間が1日ずれる | タイムゾーン(TZ)が未設定、または誤っている |
docker-compose.ymlのenvironmentセクションにTZ=Asia/Tokyoなど、お住まいの地域に合わせたタイムゾーンを正しく設定してください。変更後はコンテナの再起動が必要です(docker-compose down && docker-compose up -d)。 |
| InfluxDBの認証画面が表示される | master-omnibus版では認証は不要 | master-omnibus版はInfluxDBの認証が不要な設定で動作します。この表示は正常であり、ログインせずにScrutinyのUIが使えるはずです。 |
🎯 まとめ
Scrutinyは、初心者の方でも簡単にHDDやSSDの健康状態を監視できる、非常に便利なツールです。Synology DSMやDockerが利用可能なLinux環境であれば、本ガイドの手順に従うことでスムーズに導入できます。一度設定してしまえば、Scrutinyは自動的に毎日ディスクの健康状態をチェックしてくれる「ストレージの健康診断パートナー」として機能します。
ご自身のNAS環境に合わせて、ディスク名やタイムゾーンを適切に調整し、大切なストレージの安心を手に入れましょう!
コメント