cloudpack の 自称 Sensu芸人 の かっぱこと 川原 洋平(@inokara)です。
hatena が提供している監視ツール mackerel のミートアップに参加させて頂いた際の聴講メモを共有させて頂きます。聞きながらのメモとなりますので漏れや間違いを見つけられた場合にはご指摘いただければ幸いです。
ステッカー頂きました!
実際に開発されている方の生の声を聞けて大変勉強になりました。ありがとうございました!また、会場をご提供頂いたフリークアウトさんありがとうございました!
mackerel の概要
登壇者
アジェンダ
- Overview
- 機能紹介
- 具体的なユースケース
- フィードバックもよろしくお願い致します
Overview
- サーバー管理ツール
- もともとはてなの社内ツール
- 鯖 3
- 新しいビジネスチャンス
構成
- Scala + Play
- PostgreSQL
- Graphite
- angularJS
- エージェントは Go
かなり野心的…
特徴
- 役割(ロール)によるホスト群の管理
- エージェントによるリソース監視
- リソースの可視化
- API
Org とユーザー
- Organization = 会社、組織
- ユーザーは複数の Org に所属
- 課金の単位
サービスとロール
サービス
- アプリケーションサービス(はてな Bookmark 等)
- ホストが協調
ロール
- ホスト群をまとめるもの
ホストのライフサイクル
- ステータス(standby / working / maintenance) でホストを管理
- 役目を終えたホストは「退役」(retired)
メトリック(可視化されるもの)
- ホストのリソースの時刻毎の数値(時系列データ)
- エージェントが収集
機能
Web
- デモ
- ちまちま手でやるのは面倒…
Alert 機能
- 監視機能が本日リリース!
- エージェントから一定期間通信がなければアラートをあげる
- メール通知は開発中
- トップページで実験的機能を有効にするを ON にすると使える
- メトリックの値でもアラートをあげるようにする予定
- Webhook を検討
mackerel-agent
- go で書かれている
- API が公開されているのでお好きな言語で
- CentOS 5/6 Debian 6/7
- 実は Windows でも…
- https://github.com/mackerelio/mackerel-agent
- 一週間に一度くらいの周期でアップデート
- brew install でもいける(tap あり)
- エージェントからロールの設定が出来る(roles = ["xxxx:xx"])
- Chef の Cookbook もある
- mackerel-client gem もある
- mkr コマンドラインツール
agent が収集する情報
- マシンのスペックは初回のみ
- メトリックは 1 分に一回
- Load
- CPU
- memory
- interface
- Disk I/O
カスタムメトリック
- [plugin.metrics.***] command = "hoge.sh"
- sensu プラグイン互換の出力(タブ区切り)
- 表示方法を設定することが出来る
- 細かく設定することが出来る
API(v0)
- ホスト情報の一覧
- ステータス更新
- 退役
- agent が私用しているもの
事例
- Hatena Blog(34host / 17role)
- fluent-plugin-mackerel を改良
- HTTP のステータスコード等を取得
ロードマップ
- 8 月末正式版
- アプリケーションメトリクス
- グラフ機能拡充(外部連携)
監視・通知
- 基本的な監視・通知
アプリケーションメトリック
- サーバーに紐付かないメトリック(6 月)
- レスポンスタイム、エラーレート
- fluentd out_mackerel plugin
- メトリックのカスタマイズ(7 月)
グラフ機能拡張
- 外部貼り付け(iframe)(7 〜 8 月くらい)
- 高速化
デプロイ支援
- 面白い!
- グラフ上へのプロット
- ロールのバージョニングと git の hash との対応付け→具体化はまだ
正式リリース後の候補
- ユーザー権限管理
- クラウド連携強化(ELB とか EC2 とかを自動で起動、立ち上げ)
- カスタムメトリックツール等の周辺ツール
- mackerel-client-ruby
- Windows 版/Darwin版/ARM版も…
- hubot-mackerel
オススメポイント
- 簡単セットアップ
- システムの構成要素を一元管理
- サービスの時系列データを可視化
- 複雑すぎず簡素すぎず
アンケート・ご意見・要望より
どれくらいの台数まで耐えられますか?
- 2000 台
- 10000 台くらいまでいけそう!
AutoScale 環境で使いやすく
- 改善していきます!
サービストップのデフォルト表示を変更したい
- 現行は Load Average
- 検討します!
メトリックを CloudWatch に流したい
- API 経由で取れるようにします!
OSS プロジェクトへの無償提供は?
- 前向きに検討!
- 応相談
価格帯、月額固定が嬉しい
- 従量制を検討
- 応相談
- ボリュームディスカウントとか検討
オンプレ環境での提供は?
- 検討する
- Macerel Enterprise 的なもの
- 時系列データ収集が負荷が高い
メトリクス収集を別ライブラリで出来るようになりますか?
- 検討します
代理店
- 検討します
リアルタイム性
- 現行は 1 分単位
感想
- 元々ははてなの社内ツールだったという点が驚きだった
- メトリックス収集は Graphite を使っているとのことだが機能と性能を両立するのは大変そう…
- Sensu っぽい部分を感じつつも Sensu にはないロールという概念が非常に面白いと感じた
- デプロイ支援について特に面白い機能
- 基本的なメトリクス収集という機能をしっかりと抑えつつ周辺ツールやデプロイ支援等の機能をほど良いスピード感でリリースしてくるのって凄いなあと思った
最後に…
鯖サンド!
八面六臂さん有難うございました!
元記事は、こちら