Upload
shinji-tanaka
View
2.327
Download
1
Embed Size (px)
DESCRIPTION
9/29 さくらの夕べ@福岡
Citation preview
Mackerelによる簡単サーバー管理入門と発展形
2014-09-29 さくらの夕べ @ 福岡
Hatena Co., Ltd. @stanaka
Shinji Tanaka / 田中慎司
@stanaka / id:stanaka
株式会社はてな 執行役員CTO
アジェンダ
• Mackerel によるサーバー管理入門
• Mackerel 正式化と今後の予定
1Mackerelによる サーバー管理入門
Mackerel(日本語で鯖)
• サーバ管理ツール as a Service
• 前身: はてなの社内ツール
Mackerelの特徴
• 簡単セットアップ
• 1台でも数百台でも便利に
• 様々な時系列データを可視化・監視
• 各種ツールとの強力な連携
アーキテクチャ
Demo
Mackerelの特徴
• 簡単セットアップ
• 1台でも数百台でも便利に
• 様々な時系列データを可視化・監視
• 各種ツールとの強力な連携
• Go で書かれた公式エージェント
• Linux サポート (CentOS 5/6, Debian 6/7)
• ホストスペックとメトリックを収集
mackerelio/mackerel-agent
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
監視対象
通知対象
ライフサイクルとワークフロー• ホストを新規作成
• 本番投入・LB組込み
• 障害対応、問題分析
• 退役準備
• 退役
standby
working
maintenance
retired
poweroff
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: カスタムメトリック
• plugin.metrics.*.command を記述
# mackerel-agent.conf [plugin.metrics.my-super-metric] command = “/path/to/my-super-metric.sh”
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を受け取り通知
!
• mackerelio/hubot-mackerel-notifier
help-ja.mackerel.io/entry/advanced/hubot
npm install hubot-‐mackerel-‐notifier -‐-‐save
Slackへの直接の通知
• Coming Soon!!
2Mackerel 正式化と今後の予定
正式化
• ベータリリース (5/8)
• 品質向上・安定化(ドックフーディング)
• 使えるレベルへ機能開発
• 正式リリース (9/19)
Pricing
• Standard • 2,000円/ホスト・月
• ホスト台数 20+ でボリュームディスカウント
• 無料トライアルあり • Free
• 5台まで • 表示期間(24h)、サービスメトリック数・監視数に制限
Pricing next
• 個人&小規模ユーザー向けプランを検討中
Coming Soon!!
• GitHubログイン
• Monitor対象の詳細化(ロール単位)
• サービスメトリックの監視
• カスタムメトリックプラグインの充実
• Slack連携など、通知先充実
Next Development
• イベント(アラート・デプロイなど)
• グラフ上にプロットデプロイ
Next Development
• グラフ改善
• 高速化・外部貼付・自動リフレッシュ
• アラート改善
• 通知先の充実・条件のカスタマイズ
• ダッシュボードカスタマイズ
• 任意のグラフを貼り付けられるように
mackerel.io