元々は、はてなが中で使っていた監視ツールをサービス化したMackerelというサービスを中の人が熱く語るMackerel Meetup #1 Tokyoに参加してきました。
拙い内容ですが以下に発表されていたメモしておきます。
Introduction to Mackerel
agenda
- Mackerel オーバービュー
- 機能紹介
- 具体的なユースケース
Mackerel
- 日本語で鯖
- サーバ管理ツール as a Service
- 前身:はてなの社内ツール
構成
- Scala * Play Framwwork
- PostgereSQL
- Graphite
- AngularJS
- Go (mackerel-agent)
特徴
- ロールによるホスト群の管理
- エージェントによるリソース管理
- リソースの可視化
- APIによる管理
Orgとユーザ
- Organization = 会社,組織
- ユーザは複数のOrgに所属
サービストロール
- サービス
- 様々なホストが協調
- Hatena-Bookmark, Hatena-blog,,,という単位
- ホスト群を役割でまとめる = ロール
- app, db,,,
- ホストの名前を気にせずロールベースで管理していく
org – サービス – ロール
ホストのライフサイクル
- ステータスで状態を管理
- standby / working / maintenance
- 役目を終えたホストは「退役」(retired)
- maintenanceの時はアラートを出さないなど
メトリック
- ホストのリソースの時刻ごとの数値
- エージェントが自動的に収集
ロールごとのグラフで可視化
Mackerel Functionaities
Web
- ホストの一覧
- サービス/ロールの管理
- グラフの確認
- ホスト情報の編集
Demo
- 新規にサービスを作成したりしてました
- Hostsで新しいロールを作りながら割当てなどしてました
- ホストの情報からステータスを変えました
- 監視機能がリリースされました
監視(experimental) new!
- agentから一定期間疎通がなければアラート
- Coming nextメール通知
- experimental
- orgの設定ページで実験的機能をONにするとAlertsが出てくるようになります。
- 方針として実験的機能はこれをONにしないとでてきません
- アラートの発生した付近のグラフ出る
- そのうちメトリックを監視して、メトリックのグラフを出せるように考えています
mackerel-agent
- Goで書かれた公式エージェント
- Linuxサポート(CentOS 5/6, Debian 6/7)
- はてなでサポートしてる
- 実はビルドすればWindowsでもうごきます
- ホストスペックとメトリックを収集
- mackerelio/mackerel-agentでチェックアウトできます
agent:インストール方法
- yum/aptリポジトリ公開してます
- taballでバイナリを展開
- go get
- brew installも個人的に作ってるがまだ開発中
agent: 収集スペック
- 今は起動時に1回だが、次のバージョンで1時間に1回収集予定
- カーネル
- CPU
- ネットワークインターフェース
- メモリ
- ブロックデバイス
- ファイルシステム
agent:収集メトリック
- 1分間に1回収集
- loadavg5
- cpu.*
- memory.*
- interface.{name}.*
- disk.{name}.*
agent:カスタムメトリック
agent:ロール設定
API(v0)
- ホスト情報の一覧
- ホストのステータス更新
- いらなくなったホストの退役
- APIの仕様
mackerel-client gem
mkr: CLI Mackerel Client
その他のツール
某サービス
某サービス2
- fluent-plugin-mackerelを改良
- HTTPステータスコードの割合
- レスポンスタイムの分布
- ステータスごとにパーセンテージを出したりなど
- これからカスタムメトリックは修正していく予定
RoadMap
- 講演者:タナカ様
- ここから今後のリリース予定機能などの紹介
RoadMap
- 6月監視/通知
- 6月アプリケーションメトリクス
- 7月グラフ拡充(カスタム・外部貼り付け)
- 8月のおわりか9月頃に正式化
監視・通知
アプリケーションメトリック
- サーバに紐付かないメトリック
- レスポンスタイム・エラーレート
- fluentd out_mackerel pluginを使う予定
- メトリックのカスタマイズ(7月)
- カスタムメトリックスに対しての監視通知
- アクティブユーザや投稿数で監視などもおもしろいかも
グラフ機能拡張
- グラフの外部貼り付け(iframe) (7-8月)
- ダッシュボードのエディターの作りこみを頑張ります
- 画像でスナップショットを取れるようにしたい
- 高速化は随時
デプロイ支援
- グラフ上へのプロット(7月)
- 負荷が増えた時のデプロイの関係性がわかりやすくなると思われる
- イベントとリソースの変化を結び付けられるようにしようとしてます
- ロールのバージョニングとgitのhashとの対応付け(7-8月)
正式化
正式リリース後の候補
- ユーザー権限管理強化
- クラウドとの連携強化
- Docker支援
- イメージリポジトリ・API操作
- DockerリモートAPI操作など
メトリック関連ツール
- カスタムメトリックプラグイン集
- アプリケーションメトリックツール
クライアントツール
agent
- Darwin版agent
- Windows版agent
- 基本的にgoが動けばどこでも動ける
チャット連携
- hubot-mackerel
- hubotを介してmackerel APIをたたいたりなど
- ドッグフーディング中
Mackerelのおすすめポイント
おすすめポイント
- 簡単セットアップ
- システムの構成要素を一元管理
- サービスの時系列データを可視化
- 複雑すぎず簡素すぎず、Immutable Infrastructure時代の定番サーバー管理ツールを目指してます
質問など
- どれくらいの台数まで耐えられますか?
- ドックフーディングで2000台
- ままだ余裕はあるので10000台まではいける
- 1000代単位で問題ない
- AutoScale環境でもっと使いやすく!
- 現在開発中
- ドッグフーディングしており、改善していきます
- サービストップのデフォルト表示でLAを変更できると嬉しい
- cpuなどに変えれるがリロードすると戻ってしまう・・・ -> 検討します
- メトリックをCloudWatchに流したい
- OSSプロジェクトへの無償提供ありますか
- 前向きに検討したい
- 事例がないので個別相談させてください
- OSSプロジェクトへの無償で使えるアカウントを予定しております。
- 鯖の味噌煮が食べたいです
- 懇親会で鯖サンド用意してます(おいしかった)
- 次回以降のmeetupで検討します
- 価格体系気になる。できれば月額固定ができると
- 基本は従量ですが、応相談
- この数字はまだ検討中
- 固定要望がある場合は要相談
- 通知でwebhookの実装予定は?
- hubotはwebhookベースで動くのでできるだけ早い段階で対応します
- オンプレで使うのは考えていないか?
- 将来的にはgithub enterpriseのようなものも考えている
- サーバはハイスペックなものを要求するかもしれない
- mackerel agentで収集してるので個別のライブラリに分けるというのは検討してるか?
- chefのohaiのように、別ライブラリに出したいとは考えている
- 切り出すためのPRお待ちしております
- 1分おきの収集をもっとリアルタイムに近づけるということはしないか?
まとめ
MackerelはZabbixに比べると機能はまだまだ足りてないかもしれないが、ガンガン開発しているので今後にすごい期待してます。
また、Zabbixより全然UIがイケてる!!
きっとどんどん使いやすくなると思います。
正式リリースしても無料分はあるかもという噂もあるのでもし無料だったら自分のサーバにいれて使い続けようかなとは思っています。
View Comments
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?
Your article helped me a lot, is there any more related content? Thanks!