IoT時代におけるモニタリングとMackerel
ACCESS x はてな IoT活用セミナー
May 22th, 2015
Profile

- id: Songmu (ソンムー)
- Masayuki Matsuki
- はてな東京オフィス チーフエンジニア
- Mackerel開発ディレクター兼デベロッパー
はてな
- 2001年創業
- インターネットサービスの会社です
- 「知る」「つながる」「表現する」で新しい体験を提供し、人の生活を豊かにする

はてなはIoTをどう捉えるか
- あまり会社の事業としてどうこうというのは今のところない
- 社員それぞれの捉え方がある
- 弊社の社長に聞きました
栗栖義臣談
「IoTとはモノのインターネットではなく、『ものごと』のインターネットだと思っている」
野球を例に取ると
- バットやグローボをインターネットに繋げることをまず考えがち
- そうではなく例えば「野球の試合」をどのようにインターネットで便利にするか等を企画する
- 「提供したいサービスがまずあって、それに必要なデバイスは何かとつながってくる。」
- はてなとしては「サービス提供者としての経験を活かして、どういうサービスを提供すべきかという視点でまずは考える」
以降はIoTとMackerelの関係性の話をします
Mackerel
- https://mackerel.io/
- サーバー管理・監視ツール as a Service
- 前身: はてなの社内ツール
- 10年来Webサービスを運営してきた社内ノウハウの結晶
- 管理対象のサーバーから送信するメトリクスを集計
Mackerelによるサーバー管理
- サーバー一覧を一元管理
- サービスとロールと言う概念にホストを紐付けて管理
- ホスト稼働状況を状態で管理
- すべてAPIで操作可能
- 例えば稼働中のアプリサーバー一覧を取得してdeploy
Mackerelによるサービス監視
大きく分けて2つ
メトリック監視
- Metric: 定期的に各種メトリック収集
- Graph: グラフで可視化することでサービスの傾向を掴む
- Monitor: メトリックに対して異常値の閾値設定を行う
- Alert: 異常値が検出されたら通知する
Graphによる可視化の例

Alertの例

どういうメトリックを収集するか?
監視の肝だが難しい。基本的なサーバーメトリックだけでも以下がある。
- ロードアベレージ
- CPU使用率
- Memory使用量
- Disk IO
- ネットワーク転送量
- Disk使用量/率
Mackerelでは上記は標準で自動収集。
モニタリング方式
- push型
- pull型
- 中央サーバーから各サーバーに対して問い合わせて情報を収集
Mackerelはpush型
- 中央サーバーから各ホストにアクセスするのは現実的ではない
- インターネットからアクセスできないサーバーも多い
- 細やかなメトリック収集が可能
mackerel-agent

- ユーザーの各ホストにインストールされる常駐プログラム
Mackerelの構成

mackerel-agentとgolang

- 開発言語にgolangを採用
- シングルバイナリが吐けるのでセットアップが簡単
- マルチプラットフォーム対応が比較的容易
- OSX/Windowsでも動作可能(現状サポート外)
- 常駐プロセスを書くことに向いている
- フットプリントが小さく監視対象のサーバーのパフォーマンスに影響を及ぼさない
つまりmackerel-agentは

- シングルバイナリでセットアップが楽
- 軽量動作
- マルチプラットフォーム
IoT時代におけるMonitoringとMackerel
IoTにおける監視の2つの側面
- サーバーの管理・監視
- 機器自体の管理・監視
1. サーバー自体の監視
- IoTはアクセスパターンが特殊なことも多い
- 特定の時間にアクセスが集中
- ミッションクリティカルなものも多い → ダウンさせられない
- オートスケーリング対応
- 急激なアクセス増をどのように察知するか
- 極端なアクセスパターンの場合、自前で建てた監視サーバーが落ちることも…
- MackerelなどのSaaSを活用する
2. 機器の自体の監視
- 交換が難しい
- 老朽化など早めに兆候を掴む必要がある
- 機器の上でmackerel-agentを動かす
小型Linux環境の普及
- ARMアーキテクチャ
- Raspberry Pi
- 多くのAndroid端末
- Intel Atom
- Edison (IoT向け超小型PC)
- Windowsタブレット
- 一部のAndroid端末
こういったものを組み込んだ機器であればMackerelで監視が可能
Rasberry Pi
- 温度計・湿度計をつなげて、オフィス環境をモニタリング
- DEMO
- IRKitなどと連携して室温自動調整などもやろうと思えばできる
QNAP
- ネットワークストレージ
- ARMアーキテクチャのLinuxなのでmackerel-agentが動く
- 各種メトリックを監視
- バックアッププロセスをチェック監視
- DEMO
今後の展望(IoT向け)
- mackerel-agentのBusyBox完全対応
- 組み込みLinux向けコマンドライン集
- 既存のLinuxと互換がない出力がある
- 組み込みLinux向けのmackerel-agentのビルドの提供
以上
まとめ
- IoTとはモノのインターネットではなく、『ものごと』のインターネットだと思っている
- サービス提供者としての経験を活かして、どういうサービスを提供すべきかという視点でまずは考える
- サーバー・サービス管理・監視のためのMackerel
- あらゆる場所にコンピューターが増える
- 管理・監視が必要な物も増える
- IoTでも活用できるMackerel
