5.3 Nx Witness関連トラブルシューティング #
対象機種: AX30 / AX11 / AX21 / AG10 / AG20
Nx Witnessに関するトラブルシューティングです。
Nx WitnessがインストールされているAG/AXシリーズを対象とします。
5.3.1 モバイルの通信量について #
Nx Witnessサーバーは、Nx Cloudの機能を利用していない場合であっても、Nx Cloudとの通信を定期的に行います。モバイル回線を使用している環境では、この通信がデータ使用量の増加要因となる場合があります。(データ使用量が1か月あたり約1GBを超えることがあります。)
本項では、モバイル通信経由でのNx WitnessサービスからのHTTPS通信を抑制することで、モバイル通信量を削減する例を記載します。
通信抑制フィルターの概要
モバイル通信量削減を目的として、通信抑制フィルターを提供しています。
本フィルターは、モバイル通信で使用されるネットワークインターフェイス ecm0 に対し、Nx Witnessサービスからのポート443(HTTPS)アウトバウンド通信を抑制します。
この制御は 通信先のドメインやIPアドレスに基づくものではないため、Nx Cloud以外の通信先に対する443ポート通信も抑制対象となります。
なお、Nx Witness以外のサービスやプロセスからの通信については影響を受けません。
フィルターの仕様
| 項目 | 設定 |
|---|---|
| 対象サービス | Nx Witness Media Server |
| 対象ネットワークインターフェイス | ecm0(モバイル通信インターフェイス) |
| 抑制対象 | Nx Witnessサービスからのアウトバウンド通信 TCPポート:443 |
| 抑制内容 | 通信先はNx Cloudに限定されない |
| 非対象 | Nx Witness以外のサービスからの通信 ecm0 以外のインターフェイス(有線LAN、無線LAN等) |
フィルターのインストール方法
フィルターの適用には、インストールスクリプト nxwitness_mobile_https_filter.sh を使用します。
本スクリプトを実行することで、Nx Witnessサービスに対する通信抑制設定が自動的に適用されます。
スクリプトは以下のURLからダウンロードしてください。
https://package.amnimo.com/examples/nxwitness_mobile_https_filter.sh
補足: パッケージリポジトリにアクセスするには認証情報が必要です。認証情報(ユーザー名とパスワード)をご希望の方は、弊社サポートにお問い合わせください。
ダウンロード後、実行権限を付与し、root権限で実行してください。
実行環境: エッジゲートウェイ
wget https://<ユーザー名>:<パスワード>@package.amnimo.com/examples/nxwitness_mobile_https_filter.sh
sudo chmod +x nxwitness_mobile_https_filter.sh
sudo ./nxwitness_mobile_https_filter.sh
パッケージリポジトリにアクセスできない環境では、以下に記載された
nxwitness_mobile_https_filter.sh を直接コピーして作成し、使用してください。
#!/bin/bash
set -e
# Create the iptables script
cat <<EOF > /usr/local/bin/block_mediaserver_ecm0.sh
#!/bin/bash
iptables -D OUTPUT -o ecm0 -p tcp -m cgroup --path \
system.slice/networkoptix-mediaserver.service --dport 443 -j DROP 2>/dev/null
iptables -A OUTPUT -o ecm0 -p tcp -m cgroup --path \
system.slice/networkoptix-mediaserver.service --dport 443 -j DROP
EOF
chmod +x /usr/local/bin/block_mediaserver_ecm0.sh
# Write override.conf with ExecStartPre directive
mkdir -p /etc/systemd/system/networkoptix-mediaserver.service.d
cat <<EOF > /etc/systemd/system/networkoptix-mediaserver.service.d/override.conf
[Service]
ExecStartPre=/usr/local/bin/block_mediaserver_ecm0.sh
EOF
systemctl daemon-reexec
systemctl daemon-reload
# Execute /usr/local/bin/block_mediaserver_ecm0.sh.
/usr/local/bin/block_mediaserver_ecm0.sh
# Register in the archive list.
ARCHIVE_LIST="/etc/amnimo/archive.list"
TARGET_ENTRIES=(
"/usr/local/bin/block_mediaserver_ecm0.sh"
"/etc/systemd/system/networkoptix-mediaserver.service.d/override.conf"
)
for TARGET in "${TARGET_ENTRIES[@]}"; do
if ! grep -Fxq "$TARGET" "$ARCHIVE_LIST"; then
echo "$TARGET" >> "$ARCHIVE_LIST"
fi
done
amcfg -y save
echo "Setup complete."
注意事項
- 本フィルターを適用すると、Nx WitnessサービスからのすべてのHTTPS通信(ポート443)がモバイル通信経由では遮断されます。
そのため、Nx Cloudに加え、Nx Witnessが利用するその他のHTTPS通信も使用できなくなります。イベントアクションで「HTTP(S) リクエスト送信」を指定する際はご注意ください。
インターネットで時刻同期が行えなくなります。チェックを外し、サーバーのローカル時刻を使用するようにしてください。
- 本設定は、Nx Cloud機能を使用しない運用環境において、モバイル通信量削減を目的とする場合にのみ適用してください。
- Nx Witnessの基本的な録画・再生機能には影響しません。
- 有線LANを利用した通信については、Nx WitnessからのHTTPS通信は引き続き可能です。
フィルターのアンインストール方法
本フィルターを無効化し、Nx Witnessサービスからのモバイル通信(インターフェイス ecm0)に関する通信制御を解除する場合は、アンインストール用スクリプトを使用します。
以下のURLからアンインストール用スクリプトをダウンロードしてください。
https://package.amnimo.com/examples/nxwitness_mobile_https_filter_uninstall.sh
補足: パッケージリポジトリにアクセスするには認証情報が必要です。認証情報(ユーザー名とパスワード)をご希望の方は、弊社サポートにお問い合わせください。
ダウンロード後、実行権限を付与し、root権限で実行してください。
実行環境: エッジゲートウェイ
wget https://<ユーザー名>:<パスワード>@package.amnimo.com/examples/nxwitness_mobile_https_filter_uninstall.sh
sudo chmod +x nxwitness_mobile_https_filter_uninstall.sh
sudo ./nxwitness_mobile_https_filter_uninstall.sh
以下にnxwitness_mobile_https_filter_uninstall.shを示します。パッケージリポジトリにアクセスできない環境では、記載された内容を直接コピーして作成し、使用してください。
#!/bin/bash
## The file will be deleted to boot partition 0
mkdir -p rootdir0
mount /dev/mmcblk0p1 rootdir0
rm rootdir0/usr/local/bin/block_mediaserver_ecm0.sh 2>/dev/null
rm -r rootdir0/etc/systemd/system/networkoptix-mediaserver.service.d 2>/dev/null
umount rootdir0
rm -r rootdir0
## The file will be deleted to boot partition 1
mkdir -p rootdir1
mount /dev/mmcblk0p2 rootdir1
rm rootdir1/usr/local/bin/block_mediaserver_ecm0.sh 2>/dev/null
rm -r rootdir1/etc/systemd/system/networkoptix-mediaserver.service.d 2>/dev/null
umount rootdir1
rm -r rootdir1
# Re-execute systemd manager to apply low-level changes
systemctl daemon-reexec
systemctl daemon-reload
# Remove any filters that have already been set
iptables -D OUTPUT -o ecm0 -p tcp -m cgroup --path \
system.slice/networkoptix-mediaserver.service --dport 443 -j DROP 2>/dev/null
# Remove the path of the target file from archive.list.
ARCHIVE_LIST="/etc/amnimo/archive.list"
TARGET_ENTRIES=(
"/usr/local/bin/block_mediaserver_ecm0.sh"
"/etc/systemd/system/networkoptix-mediaserver.service.d/override.conf"
)
TMP_FILE="$(mktemp --tmpdir="$(dirname "$ARCHIVE_LIST")")"
GREP_ARGS=()
for TARGET in "${TARGET_ENTRIES[@]}"; do
GREP_ARGS+=( -e "$TARGET" )
done
grep -Fxv "${GREP_ARGS[@]}" "$ARCHIVE_LIST" > "$TMP_FILE"
: > "$ARCHIVE_LIST"
cat "$TMP_FILE" > "$ARCHIVE_LIST"
rm -f "$TMP_FILE"
amcfg -y save
echo "Setup complete. The filter has been removed."
スクリプトの実行により、インストール時に設定された通信抑制ルールが削除され、Nx WitnessサービスからのHTTPS通信はモバイル通信経由でも許可される状態に戻ります。

補足: パッケージリポジトリにアクセスするには認証情報が必要です。認証情報(ユーザー名とパスワード)をご希望の方は、弊社サポートにお問い合わせください。