Zabbixの可能性を広げる!
～データ収集ゲートウェイの事例紹介～
NTTコムソリューションズ株式会社
マネジメントソリューション本部
プラットフォームソリューション部

田中 武信

自己紹介

About me

田中 武信
所属

NTTコムソリューションズ株式会社
マネジメントソリューション本部
プラットフォームソリューション部

経歴

1

2000～08年
2008年～
2011年～

ネットベンチャー、 大学等の運用現場を転々
NTTコムソリューションズに所属
Zabbixの設計・構築・製品企画などを担当

2018年

Zabbix Summit、Zabbix Conference Japanで登壇
Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

会社紹介

About Corporation

NTT コムソリューションズ株式会社(https://www.nttcsol.com/)

・NTTコミュニケーションズの100%子会社
・2008年より、Zabbix社と提携したZabbix関連事業を開始
・ZABICOMソリューションの導入/運用/製品供給などのサービスを提供

https://www.zabicom.com
2

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

Zabbixの適用範囲
Scope of Zabbix

3

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

Zabbixの監視対象

Monitoring target of Zabbix

Zabbixは、IT（情報通信技術）を構成する要素を監視対象としてきました。
近年、IT以外からの情報収集や他システムとの連携が求められるケースが出てきました。

Analysis system

SensorAnalog signal

Machine learning

Non-IT device

出典：https://www.zabbix.com/jp/features
4

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

新領域に適用できるか？

Is Zabbix applicable to the new scope?
Machine learning

データ渡す仕組み（Data passing mechanism）

Action

データ溜める仕組み

JSONAnalysis system
Zabbix API

Zabbix Server（Data storage mechanism）

SQL

Database

Zabbix Proxy

データ集める仕組み(Data collection mechanism）

Zabbix Agent

Sensor5

SNMP / IPMI / WMI …etc

Analog signal

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

Non-IT device

Zabbixはデータ収集基盤

Zabbix as a data collection platform

Machine learning
データ渡す仕組み（Data passing mechanism）

Action

データ溜める仕組み

JSONAnalysis system
Zabbix API

Zabbix Server（Data storage mechanism）

SQL

Database

汎用的に使用できるデータ収集基盤
Zabbix Proxy

データ集める仕組み(Data collection mechanism）

Zabbix Agent

Sensor6

SNMP / IPMI / WMI …etc

Analog signal

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

Physical deviceデータ収集基盤としてのZabbix
Zabbix as a data collection platform

7

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

監視要件

Monitoring requirements

目的：とあるイベントにおける機器/環境の監視
対象：ネットワーク機器、サーバ・パソコン、環境情報、位置情報※画像はイメージです8

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

データを集める仕組みの要件① IT機器からのデータ収集⇒Zabbixの機能範囲内
・IPネットワーク（第三層以上）の情報収集
・他システムからのデータ受信(SNMPTrap等)② 環境情報の収集⇒

対応機器を介した情報の収集
・位置情報の収集・センサー機器からのデータ収集③ 複数の物理拠点に分散⇒

データセンター外にZabbixを設置
・屋内外を問わず動作できる仕組み
・劣悪な環境下での運用（ Data collection from IT devices ）（ Collection of environmental information ）（ Monitor multiple locations ）⇒9Requirements for collecting data

この要件を満たすため、各拠点にZabbix Proxyを設置する方針としました
Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

Zabbix Proxyの利点と課題
Advantages and problems of Zabbix Proxy

10Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

Zabbix Proxyを使う利点◆構成上の差異

Advantages of using Zabbix Proxy
Zabbix Proxyあり

Zabbix Proxyなし① 通信セッション数の最小化

Minimizing communication sessions②② パッシブ監視 / コマンド実行

Passive monitoring / command execution③③③ 通信圧縮Compression①④④ 通信暗号化
Encryption⑤ オフラインバッファ
Offline buffer

Zabbix Proxy④
監視対象機器11

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

監視対象機器⑤②

Zabbix Proxyの導入手段

How to install Zabbix Proxy

Zabbix Proxyはパッケージ / クラウドイメージ / コンテナ / 仮想マシンなどの形で提供

これらを使用するには仮想化環境やサーバ機などが必要になる⇒
12

拠点ごとにサーバ機を設置することが困難

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

可搬式のZabbix Proxy

Portable Zabbix Proxy◆Zabbix Proxy Appliance（ZP-1400）
・Zabbix Japanが提供するアプライアンス製品
CPU ：ARMプロセッサ（32bit）
NIC ：10/100/1000BASE-T 2ポート
PoE受電対応◆課題点
・Linuxで動作しているが、OSのカスタマイズ不可
・無線ネットワークが未搭載
・ストレージは未搭載⇒ 再起動するとオフラインバッファが消える

https://www.zabbix.com/jp/zp1400

要件を充足できないため、新たに「データ収集ゲートウェイ」を作りました
13

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

データ収集ゲートウェイの実装と運用
Implementation and operation of data collection gateway

14

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

ハードウェア仕様

Hardware specifications◆概要
・産業用のコンパクトサーバ
・Intel Atom系列のプロセッサを搭載
・インターフェイスを多数搭載> GbE NIC
2 Port> USB 2.0
4 Port> HDMI
1 Port> RS232C
3 Port・拡張用オプションにより機能付加が可能
・ファンレス設計
・ACアダプタにより駆動

15

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

ソフトウェア仕様

Software specifications◆概要
・OS は Ubuntu を搭載
・Zabbix Proxy 4.0 を搭載
・専用管理UI は Zabbix Appliance 準拠
・ファームウェアは Zabbix Japan社製

16

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

付加機能

Additional functions

◆追加機能
・位置情報

：スタンドアロン型GPSレシーバ

・通信機能：SIM対応（LTE / W-CDMA）：無線LAN対応（IEEE802.11ac対応）

・データ保持機能：SSDを内蔵17

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

位置情報の取得と活用
Collection and utilization of location information

18

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

位置情報の方式

Collection of location information
スタンドアロン型GPS◆位置情報の収集方法
・GPS（Global Positioning System）を使用
・GPSの種類> スタンドアロン型GPS・衛星からの情報のみで位置情報を取得
・環境条件により、位置の特定に時間がかかる

アシスト型GPS> アシスト型GPS（A-GPS）
・A-GPSサーバより衛星の軌道情報を取得
・衛星の情報と合わせて、迅速に位置情報を取得
・A-GPSサーバと通信ができる必要がある⇒19

スタンドアロン型GPSを採用

A-GPSサーバ

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

位置情報の収集方法①

How to collect location information◆デバイス接続方法
・GPSレシーバはシリアル接続（COMポート）方式が主流◆データの取得方法
・NEMAフォーマットのデータが取得できる・取得単位の概念はなく、データが流れ続ける仕様$GPRMC,,V,,,,,,,,,,N*53$GPGGA,,,,,,0,00,,,M,0.0,M,,0000*48$GPGSA,A,1,,,,,,,,,,,,,,,*1E$GPGSV,3,1,12,01,00,000,,02,00$GPGSV,3,1,09,02,25.3,303.8,19.8,03,9.8,53.4,25.7,05,10.5,2$GPGSV,3,2,09,12,14.8,296.7,27.1,19,73.8,194.1,19.7,23,34.5,56.3,32.3,06,62.6,345.9,*57$GPGSV,3,3,09,17,59.8,173.0,*47$GLGSV,3,1,09,,,,28.1,66,28.8,30.9,40.1,,,,27.2,82,71.0,16.9,*73$GLGSV,3,2,09,88,,,,83,26.7,326.3,,81,40.8,120.9,,67,84.4,0.0,*57$GLGSV,3,3,09,68,35.2,215.2,*52$GPGGA,051531.0,3541.889534,N,13945.706254,E,1,04,2.1,80.1,M,39.0,M,,*6B$PQXFI,051531.0,3541.889534,N,13945.706254,E,80.1,62.08,57.92,4.93*5E$GNGNS,051531.0,3541.889534,N,13945.706254,E,AN,04,2.1,80.1,39.0,,*50,000,,03,00,000,,20

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

NEMA format

Terminal

COM Port

Serial-to-USB

GPS Reciver位置情報の収集方法②◆gpsd

How to collect location information（https://gpsd.gitlab.io/gpsd/）

・Linux / FreeBSDで動作するGPSデータ取得用デーモン
・専用APIからJSON形式の情報を返す機能を提供

JSONformat

CLI UI

gpsd API

gpsmongpsd

COM Port

Serial-to-USB

GPS Reciver21

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

位置情報の収集方式Location information collection method◆実装方法
・COM Portからデータの取得を行う常駐型プログラムを開発
・Zabbix Serverに対してデータを送信する方式（ zabbix_proxy.conf の送信先サーバ情報を使用 ）・Zabbix Serverに受信用のトラッパーアイテムを作成⇒ Zabbixにデータを格納することを前提としたシンプルな構造⇒ 構造を単純にすることで、不具合発生のリスクを低減

Trapper Itemzabbix-gps-monitor

COM Port

Serial-to-USB

GPS Reciver

22

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

位置情報の参照⇒
23

View location information

ホストインベントリに格納することで、最新の位置情報を参照できる
Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

位置情報の出力

Output location information

Zabbix APIを使い、位置情報が記録されているホストの一覧を取得{}"jsonrpc": "2.0","result": ["method": "host.get",{"params": {"hostid": "10274""host": "DESKTOP-A1CJC3R""output": ["host"],"inventory": {"selectInventory": ["os","location_lat","location_lon"],"os": "Windows DESKTOP-A1CJC3R 10.0.17763 Microsoft Windows 10 Home x64"
"location_lat": "35.29xxxxxxxxxx""searchInventory": {"location_lat":"."}"location_lon":"138.93xxxxxxxxxx"},}"id": "2",}{"auth": "${TOKEN}"]24}"hostid": "10277""host": "gps-pizero-01""inventory": {"os": "Raspbian GNU/Linux 10 (buster)""location_lat": "35.68xxxxxxxxxx""location_lon": "139.63xxxxxxxxxx"}

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

位置情報の活用

Utilization of location information

Zabbixから取り出した位置情報とGoogle Mapを組み合わせると・・・

25

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

無線通信の設定と運用
Wireless communication settings and operation

26

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

通信機能（3G / LTE）

Communication function (3G / LTE)

◆デバイス情報チップ ：Qualcomm MDM9215
モデル ：SIM7100JC
接続：mini PCI-e◆通信規格
LTE通信 ：FDD-LTE / TD-LTE
3G通信 ：W-CDMA方式

27

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

通信機能（3G / LTE）

Communication function (3G / LTE)Linuxにおける一般的な設定と同じです。
◆APN設定 （ /etc/qmi-network.conf ）APN=APN NAMEAPN_USER=USER@DOMAIN
APN_PASS=PASSWORD◆インターフェイス設定（ /etc /systemd/network/wwan0.network ）[Match]Name=wwan0[Network]
DHCP=ipv4

28

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

通信機能（無線LAN）

Communication function (Wireless LAN)

◆デバイス接続方法
・無線LAN子機・USB接続◆通信規格
・IEEE802.11ac / n / a / g / b・ARIB STD-T71(5GHz)
・ARIB STD-T66(2.4GHz)

29

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

通信機能（無線LAN）

Communication function (Wireless LAN)Linuxにおける一般的な設定と同じです。
◆SSID設定 （ /etc /wpa_supplicant/wpa_supplicant.conf ）ctrl_interface=/var/run/wpa_supplicant
network={ssid=“SSID"
psk="Pre-Shared Key"
key_mgmt=WPA-PSK
id_str="wifi01"}

ctrl_interface=/var/run/wpa_supplicant
network={ssid=“SSID#1"
psk="Pre-Shared Key"
key_mgmt=WPA-PSK
priority=“10” ← 値の大きい方が優先されます
id_str="wifi01"}
network={ssid=“SSID#2"
psk="Pre-Shared Key"
key_mgmt=WPA-PSK
priority=“5”
id_str="wifi02"}

30

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

通信機能（無線LAN）◆インターフェイス設定

Communication function (Wireless LAN)（/etc /systemd/network/wlan0.network）[Match]Name=wlan0[Network]
DHCP=ipv4⇒

31

無線LANに自動接続したが、どのIPアドレスが付与されたかが分からず、データ収集ゲートウェイの管理画面にアクセスできない！

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

運用課題

Operation issues

IPアドレスが知りたければ、監視すればよい！

system.run["ip addr show {$IF1} | grep ¥"inet ¥" | awk '{printf ¥"%s¥n¥",$2}' | cut -d/ -f 1"]

32

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

データ保持機能
Data retention function

33

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

データ保持機能

Data retention function◆ストレージデバイス
・mini PCI-e接続のSSD◆目的・オフラインバッファ保持◆想定される事態
・通信品質の問題> 通信の信頼性が欠ける環境での使用> オフラインバッファが大量に溜まる・不意の電源断> 発電機から電力供給がなされる環境での使用> 配線の断、発電機の停止などを想定⇒
34

今回の事例では、出番はありませんでした・・・

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

センサーを用いたデータ収集
Data monitoring using sensors

35

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

環境センサーEnvironmental sensor

・Zabbixでの使用実績がある「feelers」の製品を使用 （https://www.feelers.jp/）
・Zabbixプロトコルにネイティブ対応（Active Agentとして動作）・コントローラはEthernet接続でZabbixへデータを送信
・コントローラとセンサーは1-Wireで接続

コントローラ36

センサー（温湿度気圧）

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

センサー（温度）環境センサーの設置

Environmental sensor settings

・コントローラはIPネットワークに接続
・コントローラとセンサーはLANケーブルで接続（RJ-45コネクタ）
・複数個のセンサーを接続する場合にはスプリッタで分岐（最大24センサーに対応）
Controller

Zabbix Proxy

HUBSensor

Sensors

37

1-WireEthernet

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

環境情報の収集結果 Collection results of environmental information
温度2019/10/12
湿度気圧38Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

台風19号が通過
Typhoon passingデータを溜める仕組み
Mechanism for storing data

39

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

データを溜める仕組みの要件

Requirements for storing data

集めた情報保存先には以下の要件が必要となりました。
① データ肥大化に対応⇒

ストレージサイズの自動スケール② データ保持⇒

データ保持を優先した冗長化③ I/O性能の維持⇒

データ蓄積時のI/O性能劣化の低減（ Response to data enlargement ）（ Data retention ）（ I/O performance ）⇒40

この要件をオンプレで提供することは厳しいため、クラウドサービスを使用しました

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

クラウドサービスにデータを保管

Store data in cloud services◆構成のポイント① データベースにはマネージドSQLのサービスを使用② Zabbix Serverは小リソースのインスタンスを使用してコスト削減③ 受信（ingress）は通信料金が発生しない

ingress
無料

Internetengress
有料

Cloud FirewallRules

Cloud External
IP Addresses

Compute Engine

小リソース
低コスト

41

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

Cloud SQL

自動スケール
冗長化構成
低レイテンシ

Zabbix Server用インスタンス

Zabbix Server instanceZabbix Server用インスタンスは、small（1 共有vCPU、メモリ 1.7GB）を使います。

¥1,830/月※ 2019年10月現在のデータです
42

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

最小構成の場合

Minimum configuration

micro（1 共有vCPU、メモリ 0.6GB）で構築することもできます。

¥560/月※ 2019年10月現在のデータです43

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

if you build with theminimum configuration ...

しかし、最小構成で構築すると・・・
最小構成でZabbix Serverを構築すると運用上の問題が・・・# yum install nmap
～略～Upgrade 1 Package (+1 Dependent package)
Total download size: 4.2 M
Is this ok [y/d/N]: y～略～
Error downloading packages:
2:nmap: [Errno 5] [Errno 12] Cannot allocate memory
2:nmap-ncat: [Errno 5] [Errno 12] Cannot allocate memory# freeMem:
44

total602,512

used345,928free105,968 ← 単位はKB

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

マネージドSQLの構成

Managed SQL configuration

マネージドSQL用インスタンスはdb-n1-standard1（1vCPU / 3.75GBメモリ）を使います
ディスク容量は初期10GB、自動拡張を有効にします。
hosts

1,150

items

43,000trigger

500

nvps

650

３ヶ月後

45

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

データ保存の費用

Data storage costs

・650 nvps、ヒストリ 90日、トレンド 365日でデータを保管
・最初の3か月はデータ容量と費用は右肩上がり
・４か月目からは、データ容量はトレンドの増加分のみとなる
・Zabbix Serverのインスタンスと合わせると2.3万/月
ヒストリ削除なし

ヒストリ削除あり

2.5万
2万

46

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

構築結果

Construction result※画像はイメージです47

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

まとめ
Summary of results

48

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

課題①

NTP 問題Time synchronization problem◆状況・インターネットに接続できない監視対象機器の時刻同期
Problems with time synchronization of monitored
devices that cannot connect to the Internet.
◆問題点
・打刻されていないデータは、 Zabbixが受け取らない
Zabbix does not accept data without time information
・誤った時刻が打刻されても、Zabbixでは補正できない
Zabbix cannot correct incorrect time information

49

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

NTP ServerInternetTime synchronization
not possible

課題②

時刻情報を保持できない機器

Devices that cannot holdtime information◆状況・簡単な構造の機器では、時刻情報を保持していない場合がある
A device with a simple structure may not hold time information
・時刻情報を保持するには電池が必要となる（電池交換の運用が必要となる）
Battery is required to hold time information (battery replacement is required)◆改善要望（Request for improvement）
・ Zabbixが受信時刻をヒストリに打刻する機能が必要
Zabbix needs a function to set the reception time in the history
・アイテム毎に打刻処理を制御できると良い
It is good to be able to control time writing for each item

50

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

課題③

ホストインベントリの不足機能

Host inventory
shortage function◆状況・ホストインベントリに値を格納すると、直近値を参照 / 取得する場合に便利
Storing values in the host inventory is useful for referencing / getting the latest values
・ホストインベントリに格納された値の収集時間が分からない
I do not know the time to collect the values stored in the host inventory◆改善要望（Request for improvement）
・ホストインベントリに収集時間を表示してほしい
I want to display the collection time in the host inventory

51

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

まとめ・データ収集ゲートウェイの作成にあたり、Zabbix Japan社より多大なご支援を頂きました。
・特別仕様のアプライアンスなどに興味がある方は、Zabbix Japan社へご相談下さい。

Zabbixは任せとけ！

52

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.

弊社もよろしくご清聴ありがとうございました
Thank you!

53

Copyright © 2019 NTT Com Solutions Corporation. All rights reserved.