Unofficial

SysMon

SysMon:QNAP の動作状況を見る

プロセス、ディスク、ネットワーク、センサーをターミナルで。

SysMon は、NAS がいま何をしているかを示すプログラムを追加します:htop、btop、atop、Glances、iotop、iftop、ncdu、mtr など、すべて SSH ログインから使えます。

どのプログラムも Bucket & Code Server IDE でソースからコンパイルしています。パッケージをそのままインストールするか、レシピリストを変更して自分のパッケージをビルドできます。

App Center:(example) SysMon · Intel および AMD (x86_64) · QTS 6.0 または QuTS hero 6.0 以降 · freeware

NAS への SSH ログイン

command -v hdparm

/usr/app/SysMon/first/hdparm

hdparm -V

hdparm v9.65

iostat -V | head -1

sysstat version 12.8.0

iperf3 --version | head -1

iperf 3.21 (cJSON 1.7.15)

nmap --version | head -1

Nmap version 7.991 ( https://nmap.org )

btop --version

btop version: 1.3.2

含まれるもの

レシピリストにはこれらのプログラムが並び、ビルド時に必要なライブラリが加わります。

プロセス、プロセッサー、メモリ

htop
対話式のプロセス一覧
btop
プロセッサー、メモリ、ディスク、ネットワーク、プロセスをひとつの画面に
atop
長期ログ付きのプロセス表示、atopsar 付き
glances
Python 製のシステムモニター
procps
ps, top, free, vmstat, watch, pgrep, pkill, pmap, slabtop
sysstat
iostat, mpstat, pidstat, sar
psmisc
pstree, fuser, killall, prtstat
nmon
Nigel's performance monitor

ディスクとファイル

iotop
プロセスとスレッドごとのディスク使用状況
ncdu
フォルダーを占めるものをサイズ順に表示
lsof
開いているファイルとそれを保持するプロセス
progress
cp、mv、dd、tar の進み具合
pv
パイプを通るデータの進捗、速度、残り時間
smartmontools
S.M.A.R.T. データ用の smartctl と smartd
hdparm
ATA/SATA ディスクのパラメーターの読み取りと設定、読み取り速度の測定
sdparm
SCSI と SATA ディスクのモードページの読み取りと変更
nvme
nvme-cli:NVMe ドライブの情報、SMART、エラーログ
ioping
ping のようにディスクの遅延を要求ごとに測定
fio
柔軟な I/O テスター
duf
マウントされたファイルシステムの使用量を表で表示

ネットワーク

iftop
接続ごとの帯域
nload
受信と送信のトラフィックをグラフで表示
nethogs
プロセスごとの帯域
bmon
帯域モニター
vnstat
インターフェースごとのトラフィックログ、デーモン vnstatd 付き
mtr
traceroute と ping をひとつに、ホップごとに表示
iptraf-ng
テキスト画面の IP トラフィックと LAN 統計
tcpdump
パケットをキャプチャしてデコード
ethtool
ネットワークインターフェースの設定を表示、変更
iperf3
ネットワークのスループットを測定
nmap
ネットワーク探索とポートスキャン、ncat と nping 付き
iproute2
ip、ss、tc:アドレス、経路、ソケット
fping
多数のホストへ同時に ping
arp-scan
ARP でローカルネットワークのホストを検出
traceroute
ホストまでのルーターを表示

ハードウェアとシステムコール

sensors
lm-sensors:温度、ファン回転数、電圧
dmidecode
ファームウェアの表:ボード、BIOS、メモリーモジュール
lspci
名前付きの PCI デバイス
lsusb
名前付きの USB バスとデバイス
ipmitool
ネットワーク経由でサーバーの BMC と通信
strace
プログラムのシステムコールとシグナル
tmux
プロジェクトのダッシュボード用ペイン

画面

App Center のパッケージを入れた QNAP NAS の実際の画面です。

ターミナルの btop:CPU、メモリ、ディスク、ネットワーク、プロセスのパネル
NAS 上の btop:プロセッサー、メモリ、ディスク、ネットワーク、プロセス一覧を同時に表示。
htop:プロセス一覧の上にプロセッサーとメモリのバー
プロセス一覧の上にプロセッサーコアごとのバーを表示した htop。

こんな方に

NAS が遅いと感じる

btop と htop で、プロセッサーとメモリを使っているプロセスがわかります。iotop で、ディスクを使っているプロセスがわかります。

ボリュームがいっぱいになる

ncdu はフォルダーを調べて中身をサイズ順に並べるので、何が容量を使ったのかがわかります。

トラフィックを見たい

iftop、nload、NetHogs は、接続別、インターフェース別、プロセス別にトラフィックを表示します。mtr は経路をホップごとにたどります。

インストール

  1. このサイトのリポジトリを App Center に一度追加します:三つの手順。
  2. リポジトリの一覧で (example) SysMon を見つけ、インストール を押します。
  3. コントロールパネル › ネットワークとファイルサービス › Telnet / SSH で SSH を有効にします。

起動

SysMon には専用のウィンドウがなく、ターミナルから使います。admin として SSH でログインし、プログラムを名前で呼び出します。

ssh admin@192.0.2.10     # NAS のアドレス
htop                     # プロセス
btop                     # すべてをひとつの画面に
ncdu /share/Public       # このフォルダーを占めるもの

知っておきたいこと

  • 入力して使うシェルでは、パッケージの hdparm、iostat、lspci、free が QTS のものより先に実行されます。QTS のものは hdparm -I、iostat -m、lspci のデバイス名、free -h に対応していないためです。
  • iotop、iftop、nethogs、iptraf-ng、tcpdump、mtr、smartctl は root だけが読める情報を読みます。NAS への admin ログインなら実行できます。
  • sensors は、読み込まれたカーネルドライバーが公開するチップだけを表示します。たとえば Intel モデルのプロセッサー温度を示す coretemp です。
  • vnStat はデーモンの動作中だけトラフィックを記録します。vnstatd -d で起動し、NAS を再起動すると停止します。
  • iotop の SWAPIN と IO% の列は、カーネルの遅延アカウンティングを有効にするまで空のままです:echo 1 > /proc/sys/kernel/task_delayacct。この設定は NAS を再起動するまで続きます。
  • QTS にあるほかの名前は QTS のものが実行されます(top、ps、lsof、pv、ethtool など)。パッケージのものは /usr/app/SysMon/bin/top のようにフルパスで実行します。
  • スクリプト、cron、ssh に直接渡したコマンドでは QTS のコマンドが使われます。
  • QNAP NAS の nc は QNAP の Notification Center ツールです。ncat を使ってください。
  • ipmitool はネットワーク経由でサーバーの BMC と通信します。ほとんどの NAS モデルには BMC がありません。

変更して、いつでもビルドし直せます

SysMon は、QNAP 向けの無料の開発環境 Bucket & Code Server IDE の例です。各プログラムをお使いの NAS 上でソースからコンパイルし、結果を QPKG にまとめます。

パネルから

  1. Bucket & Code で アプリ を開き、例 タブを開きます。Builder 環境がまだない場合は Ubuntu 24.04 builder (full) を追加します。
  2. SysMon (geek set 2) で この例を使う を押します。アプリがレシピとともに表示されますが、まだ何もビルドされていません。
  3. ビルド を押し、続けて 有効化 を押します。QDK ツールチェーンをインストールすると、エクスポート で QPKG を作成できます。

ターミナルから

エディターのプロジェクト SysMon には、recipes.txt に同じリストがあります。行を削除するか、ライブラリからレシピを追加して、エディターのターミナルで次を実行します:

make app        # recipes.txt からアプリを作成
make build      # ビルドしてジョブを追跡
make activate   # /usr/app/SysMon がビルドを指すようになる
make qpkg       # QPKG をエクスポート (QDK ツールチェーンが必要)

プロジェクトにはダッシュボードもあります:make dashboard は btop、iotop、iftop、nload を四つの tmux ペインに表示します。make activate の後に動作します。

Bucket & Code の App Builder にある新しいアプリのページ Bucket & Code での操作を見る Compile Any App You Need Without Linux Skills: Build QPKG & Deploy Easily (Freeware) YouTube で 8 分

関連ページ