QNAP の監視方式を先に決める
QNAP の NAS を Zabbix で監視する場合、最初に決めるべきなのは、Zabbix Agent を入れるかどうかではありません。まず決めるべきなのは、NAS をどの粒度で監視対象として扱うのかです。
死活監視だけでよいのか。CPU、メモリ、ディスク使用量、ネットワークインターフェースの状態まで見たいのか。あるいは、ストレージ容量、ボリューム、RAID、ディスク故障、温度、ファン、電源のような NAS 固有の状態を見たいのか。ここを分けずに「Zabbix で監視する」と言ってしまうと、SNMP でよいのか、Zabbix Agent が必要なのか、外部スクリプトや QNAP 側の API を使うべきなのかが曖昧になります。
この記事では、QNAP を Zabbix で監視する時の考え方を、SNMP、Zabbix Agent、通信方向、サードパーティーパッケージの扱いに分けて整理します。後半には、以前の環境で QNAP CLUB から Zabbix Agent を導入した時の例も残しています。ただし、それは現在の新規導入手順として推奨するものではなく、既存環境を読むための記録として扱ってください。
書籍
Zabbix 監視設計の参考書籍
Zabbix の基本、テンプレート、監視項目、通知設計を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
Zabbix Agent と SNMP の使い分け
Zabbix の監視方法にはいくつかあります。NAS のようなアプライアンスを監視する場合、まず候補になるのは SNMP と Zabbix Agent です。
SNMP は、ネットワーク機器や NAS の状態を外側から取得する方法として扱いやすい方式です。QNAP 側で SNMP サービスを有効にし、Zabbix Server または Zabbix Proxy からポーリングします。機器監視としては自然ですが、取得できる値は MIB やテンプレート、QNAP 側の実装に依存します。
一方で Zabbix Agent は、監視対象の OS 上で動作し、ローカルリソースやアプリケーションの状態を取得する仕組みです。Zabbix の公式ドキュメントでも、Agent は監視対象に配置され、ディスク、メモリ、プロセッサ統計などのローカルリソースを監視するものとして説明されています。
つまり、SNMP は NAS を外側から機器として見る方法であり、Zabbix Agent は NAS の内部 OS に近いところから見る方法です。どちらが絶対に正しいという話ではありません。QNAP の標準機能で安定して取れる項目は SNMP、OS 内部の値や agent item として扱いたい項目は Zabbix Agent、というように役割を分けるのが現実的です。
通信要件を先に整理する
Zabbix Agent を使う場合は、通信方向を先に決めておく必要があります。Zabbix Agent には passive check と active check があり、Zabbix の公式ドキュメントでは、passive check は Zabbix Server または Zabbix Proxy からの要求に Agent が応答し、active check は Agent 側が監視項目を取得して定期的に送信する方式として説明されています。
一般的には、passive check では Zabbix Server または Zabbix Proxy から QNAP 側の Agent へ TCP 10050 番で接続します。active check では、QNAP 側の Agent から Zabbix Server または Zabbix Proxy 側の TCP 10051 番へ接続します。ファイアウォールや拠点間 VPN を挟む場合、この通信方向の違いはかなり重要です。
SNMP を使う場合は、Zabbix Server または Zabbix Proxy から QNAP 側の UDP 161 番へ問い合わせます。SNMP Trap を使う場合は逆方向に UDP 162 番を受ける設計になります。Zabbix の SNMP item の公式ドキュメントでも、SNMP check は UDP のみで行われると説明されています。
| 方式 | 主な通信方向 | 主なポート | 用途 |
|---|---|---|---|
| Zabbix Agent passive | Zabbix Server / Proxy から QNAP | TCP 10050 | Server 側から Agent に問い合わせる |
| Zabbix Agent active | QNAP から Zabbix Server / Proxy | TCP 10051 | Agent 側から値を送信する |
| SNMP polling | Zabbix Server / Proxy から QNAP | UDP 161 | NAS や機器の状態を外側から取得する |
| SNMP Trap | QNAP から Trap 受信側 | UDP 162 | イベント通知を受ける |
QNAP を家庭内や小規模拠点で監視するだけなら、この通信は見落とされがちです。しかし、閉域網、拠点間 VPN、NAT、ファイアウォール、Zabbix Proxy を挟む構成では、どちらから接続を開始するのかを決めないと監視が安定しません。
サードパーティーパッケージを使う場合の注意
QNAP の App Center に目的の Zabbix Agent がない場合、サードパーティーリポジトリを使うという選択肢が出てきます。以前は QNAP CLUB のようなリポジトリから Zabbix Agent を導入する方法がありました。
ただし、サードパーティーリポジトリを使う場合は、便利さと引き換えに確認すべきことが増えます。パッケージの更新頻度、対象 QTS / QuTS hero バージョン、Zabbix Server とのバージョン差、パッケージの署名や配布元、脆弱性対応、アンインストール時の挙動を確認する必要があります。監視のために入れたパッケージが、NAS 本体の安定性やセキュリティを下げてしまうなら本末転倒です。
新規に監視を設計するなら、まずは QNAP 公式機能、SNMP、Zabbix 側のテンプレートで取得できる範囲を確認した方がよいです。それでも不足する項目があり、Agent でなければ取れない理由がある場合にだけ、検証環境でサードパーティーパッケージの利用を判断する、という順序が自然です。
既存環境で QNAP CLUB を使っていた場合の例
以下は、以前の QNAP 環境で QNAP CLUB から Zabbix Agent を導入していた時の例です。現在の環境で同じ URL や同じパッケージが利用できるとは限らないため、既存環境の確認や移行時の読み替え材料として見てください。
当時の例では、[ App Center ] – [ 画面右上の歯車 ] – [ アプリリポジトリ ] を選択し、表示される設定画面で、名前を QNAP CLUB、URL を https://www.qnapclub.eu/en/repo.xml として追加していました。

リポジトリの登録後、App Center の一覧に QNAP CLUB が表示され、そこで Zabbix を検索して Zabbix Agent パッケージをインストールしていました。繰り返しますが、これは現在の推奨手順ではなく、過去の構成を読むための記録です。

Zabbix Agent の設定例
インストール後は、Linux に Zabbix Agent を入れた場合と同じように設定します。ただし、QNAP 上では設定ファイルや起動スクリプトの場所が通常の Linux ディストリビューションとは異なる場合があります。
/etc/zabbix_agentd.conf
この環境では、/etc/zabbix_agentd.conf が /share/CACHEDEV1_DATA/.qpkg/ZabbixAgent/etc/zabbix_agentd.conf へのシンボリックリンクになっていました。
vim /etc/zabbix_agentd.conf以下の例では、10.0.0.50 が Zabbix Server または Zabbix Proxy の IP アドレスです。passive check と active check のどちらを使うかによって、Server、ServerActive、Hostname の意味が変わります。
Server=10.0.0.50
ServerActive=10.0.0.50
Hostname=qnap.si1230.comServer は passive check で接続を許可する Zabbix Server / Proxy を指定します。ServerActive は active check の送信先です。Hostname は Zabbix 上のホスト名と一致させる必要があります。ここがずれると、Agent は動いていても Zabbix 側で値が入らないことがあります。
設定を有効化する
設定後、Zabbix Agent を再起動します。この環境では、/share/CACHEDEV1_DATA/.qpkg/ZabbixAgent/ZabbixAgent.sh が起動スクリプトで、/etc/init.d/ZabbixAgent.sh にシンボリックリンクがありました。
/etc/init.d/ZabbixAgent.sh restart再起動後は、Zabbix Server 側で Agent availability、latest data、取得できない item、ログを確認します。QNAP 側でプロセスが動いていても、通信方向、名前解決、Hostname、テンプレート、ファイアウォールのどれかがずれていると監視値は入りません。
まとめ
QNAP を Zabbix で監視する場合、最初に決めるべきなのは、どのパッケージを入れるかではありません。NAS のどの状態を、どの方式で、どの通信方向で取得するかです。
SNMP は NAS を機器として外側から監視するのに向いています。Zabbix Agent は、QNAP の内部 OS に近い値を取得したい場合に選択肢になります。ただし、QNAP にサードパーティーパッケージを入れる場合は、パッケージ提供元、更新、対応バージョン、セキュリティ、運用責任を確認する必要があります。
監視は、入れること自体が目的ではありません。障害に気づき、原因を切り分け、復旧判断につなげるための仕組みです。QNAP のような NAS では、Agent と SNMP のどちらを使うかよりも、何を監視対象として扱い、どこまでを責任範囲にするのかを先に決めることが重要です。
参考情報
参考:
関連する記事
あわせて読みたい:

