はじめに
弊社がサービス提供しているデバイスリモートマネジメントサービス「AirManage2」をご利用いただいているお客様からよくお問い合わせいただく内容として、管理しているテナント内のノードに関して未接続となった場合に何らかの通知を実施したい、接続状態を監視したい。
ということがあります。

そこで今回はOpenBlocks IX9にZabbixサーバーをインストールし、AirManage2のテナント状況を監視する一例をご案内します。
※本ブログで記載している「ノード」とはOpenBlocks IoTシリーズ/OpenBlocksマイクロサーバーシリーズ/EasyBlocksシリーズなど、AirManage2に接続される製品群を指します。
AirManage2についての背景
AirManage2側の機能にはノードが未接続になった場合に何らかの通知をするという機能は実装されていません。
ただし、AirManage2側にはWEBAPIを用意しており、テナントやノード状況等の情報取得が可能です。
例えばお客様環境にある既存の監視サーバー等からWEBAPIを使用してテナント情報を取得し、未接続ノードが増えた場合に、監視サーバー側から何らかの通知を行うということ等で活用いただくことを想定しています。
AirManage2のWEBAPIについて
AirManage2には何種類かのWEBAPIを用意しており、今回は一例としてテナントサマリ確認APIを利用します。以下がテナントサマリ確認APIをcurlコマンドで実行した例です。
※token情報はマスク処理しています。

必要な情報は以下4つです。
・リクエストURL
https://<AirManage2サーバのFQDN>/api/v1/nodes/summary
今回はam00.plathome.co.jpを使用しています。
・tenant_code
テナント記号
今回はdemo_demoを使用しています。
・group_id
グループのID
今回は45としています。
・token
アクセストークン
マスク処理していますが、AirManage2のテナント管理者ページから確認可能です。
・結果
正常時のレスポンスのJSONキーに関してはマニュアルの解説をご参照ください。
今回は接続ノード数を抽出して監視したいので「”active”: 7,」という部分を利用します。
demo_demoというテナントで接続中になっているノード数が7ということなので、今回は7未満の値となった場合にアラートを上げるとします。
Zabbixサーバー準備
Zabbixサーバーインストール
今回は新規でZabbixサーバーを用意します。
OpenBlocks IX9にZabbixサーバーをインストールして利用します。
OpenBlocks IX9のマニュアルはこちらにあります。
その中からZabbixサーバーインストールに必要となるネットワーク設定のみ今回は実施します。
OpenBlocks IX9でネットワーク設定を実施し、インターネット接続可能な環境からZabbixドキュメントに従ってパッケージからZabbixサーバーをインストールします。
インストールが完了したら「http://OpenBlocks IX9のIPアドレス/zabbix」にアクセスするとZabbixのログインページが表示されます。
外部チェック用スクリプト用意
次にZabbixサーバーで使用する外部チェック用スクリプト作成します。
今回はAirManage2のテナント内の接続中ノードが減った場合に障害とするため、使用する値はactive部分だけなので、以下のようにactive部分だけ抽出するようにします。
実行結果としては「7」という値のみ表示されます。

このコマンドを記載したスクリプトファイルを用意し、Zabbixサーバーの外部チェック用スクリプトを配置するディレクトリに置きます。
今回は「/usr/lib/zabbix/externalscripts/」以下にairmanagecheck.shというファイル名にして配置します。
実際にファイルを置くと以下のようになります、実行権限には注意して下さい。

Zabbixサーバー側設定
・ホスト作成
ホストの作成から①ホスト名、②グループを適時設定します、今回は以下の通りです。

・アイテム作成
アイテムの作成から①名前は任意、②タイプを外部チェック、③キーは用意したスクリプトファイル名、④データ型を数値(整数)とします。

・トリガー作成
トリガーの作成から①名前は任意、今回は深刻度を警告、②条件式に用意したホストとアイテムを選択し、7未満(<7)とします。
これで、接続数が7未満になると警告として検知されます。

・最新データ確認
以下の通り、最新の値に7が表示されていれば正常です。

・障害テスト
接続数が7未満になった場合に障害検知するか確認のため、AirManage2に接続されているノードを1台未接続にします。
その結果、監視データの障害タブにて深刻度「警告」、ステータス「障害」として検知しました。
最新データ側でも6という値が確認出来ます。


あとはZabbixサーバー側で用意されている通知機能を連携させるだけとなります。
まとめ
今回はOpenBlocks IX9にZabbixサーバーをインストールしてAirManage2のWEBAPIを活用しましたが、別システムでも同様のことが実現可能です。
Airmanage2サービスは、ぷらっとホーム製品のOpenBlocks IoTシリーズ、OpenBlocksマイクロサーバーシリーズ、EasyBlocksシリーズ全ての製品で利用可能なので、ぜひご活用下さい。
また、ぷらっとホームはZabbixのリセラーなので、Zabbix製品やサポートも販売可能です。是非こちらから導入をご検討下さい。