Mackerelによる 
簡単サーバー管理入門と発展形 
2014-09-29 さくらの夕べ @ 福岡 
Hatena Co., Ltd. 
@stanaka
Shinji Tanaka / 田中慎司 
@stanaka / id:stanaka 
株式会社はてな 執行役員CTO
Mackerel 
https://mackerel.io/
アジェンダ 
• Mackerel によるサーバー管理入門 
• Mackerel 正式化と今後の予定
1 
Mackerelによる 
サーバー管理入門
Mackerel(日本語で鯖) 
• サーバ管理ツール as a Service 
• 前身: はてなの社内ツール
Mackerelの特徴 
• 簡単セットアップ 
• 1台でも数百台でも便利に 
• 様々な時系列データを可視化・監視 
• 各種ツールとの強力な連携
アーキテクチャ
Demo
Mackerelの特徴 
• 簡単セットアップ 
• 1台でも数百台でも便利に 
• 様々な時系列データを可視化・監視 
• 各種ツールとの強力な連携
mackerel-agent 
• Go で書かれた公式エージェント 
• Linux サポート (CentOS 5/6, Debian 6/7) 
• ホストスペックとメトリックを収集 
mackerelio/mackerel-agent
agent: インストール 
mackerel.io/my/instruction-agent 
• yum/apt リポジトリから 
• tarball 
• go get
Mackerelの特徴 
• 簡単セットアップ 
• 1台でも数百台でも便利に 
• 様々な時系列データを可視化・監視 
• 各種ツールとの強力な連携
サービスとロール 
• サービス 
• さまざまなホストが協調 
• Hatena-Bookmark, Hatena-Blog, … 
• ホスト群を役割でまとめる = ロール 
• app, db, … 
help-ja.mackerel.io/entry/howto/create-services-and-roles
サービス - ロール 
• Hatena-Blog 
• app 
• host01, host02, … 
• db 
• memcached 
• Hatena-Bookmark 
• app 
• crawler
agent: ロール設定 
# mackerel-­‐agent.conf 
roles = [ “Mackerel:db”, … ] 
• 設定からサービス・ロールを指定 
• 存在しなかったら作成する 
• cookbook-mackerel-agent 
• mackerelio/cookbook-mackerel-agent
ホストのライフサイクル 
• ステータスで状態を管理 
standby 
working maintenance 
retired 
セットアップ 
poweroff 
監視対象 
通知対象
ライフサイクルとワークフロー 
• ホストを新規作成 
standby 
• 本番投入・LB組込み 
working 
• 障害対応、問題分析 
maintenance 
• 退役準備 
poweroff 
• 退役 
retired
Mackerelの特徴 
• 簡単セットアップ 
• 1台でも数百台でも便利に 
• 様々な時系列データを可視化・監視 
• 各種ツールとの強力な連携
agent: メトリック収集 
• ホストのリソースの時刻ごとの数値 
• 標準: loadavg5, cpu.*, memory.*, interface.*, disk.* 
• カスタム: 各種ミドルウェア対応プラグイン 
• サービスメトリック 
• 応答時間・エラー率・アクティブユーザー数
ロール毎のグラフで可視化
キャパシティプランニングに
オートスケール対応 
• サーバが縮退してもグラフは残る
カスタムメトリックの取得 
• mackerel-agent-plugins 
• Mackerelの公式プラグイン集 
• mackerelio/mackerel-­‐agent-­‐plugins 
• 最新(0.4.0): apache2, memcached, mysql, nginx, 
plack, postgres, redis 
• 次リリース: haproxy, jvm, squid, varnish
agent: カスタムメトリック 
# mackerel-agent.conf 
[plugin.metrics.my-super-metric] 
command = “/path/to/my-super-metric.sh” 
• plugin.metrics.*.command を記述 
help-ja.mackerel.io/entry/advanced/custom-metrics
サービスメトリックの投稿 
• fluent-plugin-mackerel 
• tksmd/fluent-plugin-mackerel 
• 例: Nginxのアクセスログからステータスコード 
ごとにカウント 
help-ja.mackerel.io/entry/advanced/fluentd
CloudWatch → Mackerel 
• fluent-plugin-cloudwatch 
• fluent-plugin-mackerel
監視(Monitor) 
• 死活監視 
• メトリック監視 
• 一定時間、閾値を越えるとアラート 
• 現状は全ホスト(working, standby)を対象 
help-ja.mackerel.io/entry/howto/alerts
監視(Monitor)の今後 
! 
• ホスト 
• ロール単位の条件設定(Coming Soon!) 
• サービス 
• サービスメトリックに対する監視(Coming 
Soon!)
Mackerelの特徴 
• 簡単セットアップ 
• 1台でも数百台でも便利に 
• 様々な時系列データを可視化・監視 
• 各種ツールとの強力な連携
アラートの通知(チャンネル) 
• メール通知 
• Webhook
Webhook HuBot連携 
• HuBotでWebhookを受け取り通知 
npm install hubot-­‐mackerel-­‐notifier -­‐-­‐save 
! 
• mackerelio/hubot-mackerel-notifier 
help-ja.mackerel.io/entry/advanced/hubot
Slackへの直接の通知 
• Coming Soon!!
2 
Mackerel 
正式化と今後の予定
正式化 
• ベータリリース (5/8) 
• 品質向上・安定化(ドックフーディング) 
• 使えるレベルへ機能開発 
• 正式リリース (9/19)
Pricing 
• Standard 
• 2,000円/ホスト・月 
• ホスト台数 20+ でボリュームディスカウント 
• 無料トライアルあり 
• Free 
• 5台まで 
• 表示期間(24h)、サービスメトリック数・監視数に制限
Pricing next 
• 個人&小規模ユーザー向けプランを 
検討中
Coming Soon!! 
• GitHubログイン 
• Monitor対象の詳細化(ロール単位) 
• サービスメトリックの監視 
• カスタムメトリックプラグインの充実 
• Slack連携など、通知先充実
Next Development 
• イベント(アラート・デプロイなど) 
• グラフ上にプロット 
デプロイ
Next Development 
• グラフ改善 
• 高速化・外部貼付・自動リフレッシュ 
• アラート改善 
• 通知先の充実・条件のカスタマイズ 
• ダッシュボードカスタマイズ 
• 任意のグラフを貼り付けられるように
ヘルプ 
help-ja.mackerel.io
mackerel.io

Mackerelによる
簡単サーバー管理入門と発展形