44
Mackerelによる 簡単サーバー管理入門と発展形 2014-09-29 さくらの夕べ @ 福岡 Hatena Co., Ltd. @stanaka

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

Embed Size (px)

DESCRIPTION

9/29 さくらの夕べ@福岡

Citation preview

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

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

2014-09-29 さくらの夕べ @ 福岡

Hatena Co., Ltd. @stanaka

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

Shinji Tanaka / 田中慎司

@stanaka / id:stanaka

株式会社はてな 執行役員CTO

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

Mackerel

https://mackerel.io/

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

アジェンダ

• Mackerel によるサーバー管理入門

• Mackerel 正式化と今後の予定

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

1Mackerelによる サーバー管理入門

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

Mackerel(日本語で鯖)

• サーバ管理ツール as a Service

• 前身: はてなの社内ツール

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

Mackerelの特徴

• 簡単セットアップ

• 1台でも数百台でも便利に

• 様々な時系列データを可視化・監視

• 各種ツールとの強力な連携

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

アーキテクチャ

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

Demo

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

Mackerelの特徴

• 簡単セットアップ

• 1台でも数百台でも便利に

• 様々な時系列データを可視化・監視

• 各種ツールとの強力な連携

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

• Go で書かれた公式エージェント

• Linux サポート (CentOS 5/6, Debian 6/7)

• ホストスペックとメトリックを収集

mackerelio/mackerel-agent

mackerel-agent

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

agent: インストール

mackerel.io/my/instruction-agent

• yum/apt リポジトリから

• tarball

• go get

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

Mackerelの特徴

• 簡単セットアップ

• 1台でも数百台でも便利に

• 様々な時系列データを可視化・監視

• 各種ツールとの強力な連携

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

サービスとロール• サービス

• さまざまなホストが協調

• Hatena-Bookmark, Hatena-Blog, …

• ホスト群を役割でまとめる = ロール

• app, db, …help-ja.mackerel.io/entry/howto/create-services-and-roles

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

サービス - ロール

• Hatena-Blog • app

• host01, host02, … • db • memcached

• Hatena-Bookmark • app • crawler

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

agent: ロール設定

• 設定からサービス・ロールを指定

• 存在しなかったら作成する

#  mackerel-­‐agent.conf  roles  =  [  “Mackerel:db”,  …  ]

• cookbook-mackerel-agent • mackerelio/cookbook-mackerel-agent

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

ホストのライフサイクル

• ステータスで状態を管理

standby

working maintenance

retired

セットアップ

poweroff

監視対象

通知対象

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

ライフサイクルとワークフロー• ホストを新規作成

• 本番投入・LB組込み

• 障害対応、問題分析

• 退役準備

• 退役

standby

working

maintenance

retired

poweroff

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

Mackerelの特徴

• 簡単セットアップ

• 1台でも数百台でも便利に

• 様々な時系列データを可視化・監視

• 各種ツールとの強力な連携

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

agent: メトリック収集

• ホストのリソースの時刻ごとの数値

• 標準: loadavg5, cpu.*, memory.*, interface.*, disk.*

• カスタム: 各種ミドルウェア対応プラグイン

• サービスメトリック

• 応答時間・エラー率・アクティブユーザー数

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

ロール毎のグラフで可視化

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

キャパシティプランニングに

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

オートスケール対応

• サーバが縮退してもグラフは残る

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

カスタムメトリックの取得

• mackerel-agent-plugins • Mackerelの公式プラグイン集 •        mackerelio/mackerel-­‐agent-­‐plugins  

• 最新(0.4.0): apache2, memcached, mysql, nginx,

plack, postgres, redis

• 次リリース: haproxy, jvm, squid, varnish

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

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

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

サービスメトリックの投稿• fluent-plugin-mackerel

• tksmd/fluent-plugin-mackerel • 例: Nginxのアクセスログからステータスコードごとにカウント

help-ja.mackerel.io/entry/advanced/fluentd

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

CloudWatch → Mackerel

• fluent-plugin-cloudwatch

• fluent-plugin-mackerel

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

監視(Monitor)

• 死活監視

• メトリック監視

• 一定時間、閾値を越えるとアラート

• 現状は全ホスト(working, standby)を対象help-ja.mackerel.io/entry/howto/alerts

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

監視(Monitor)の今後

!

• ホスト

• ロール単位の条件設定(Coming Soon!)

• サービス

• サービスメトリックに対する監視(Coming

Soon!)

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

Mackerelの特徴

• 簡単セットアップ

• 1台でも数百台でも便利に

• 様々な時系列データを可視化・監視

• 各種ツールとの強力な連携

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

アラートの通知(チャンネル)

• メール通知

• Webhook

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

Webhook HuBot連携• HuBotでWebhookを受け取り通知

!

• mackerelio/hubot-mackerel-notifier

help-ja.mackerel.io/entry/advanced/hubot

npm  install  hubot-­‐mackerel-­‐notifier  -­‐-­‐save

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

Slackへの直接の通知

• Coming Soon!!

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

2Mackerel 正式化と今後の予定

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

正式化

• ベータリリース (5/8)

• 品質向上・安定化(ドックフーディング)

• 使えるレベルへ機能開発

• 正式リリース (9/19)

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

Pricing

• Standard • 2,000円/ホスト・月

• ホスト台数 20+ でボリュームディスカウント

• 無料トライアルあり • Free

• 5台まで • 表示期間(24h)、サービスメトリック数・監視数に制限

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

Pricing next

• 個人&小規模ユーザー向けプランを検討中

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

Coming Soon!!

• GitHubログイン

• Monitor対象の詳細化(ロール単位)

• サービスメトリックの監視

• カスタムメトリックプラグインの充実

• Slack連携など、通知先充実

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

Next Development

• イベント(アラート・デプロイなど)

• グラフ上にプロットデプロイ

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

Next Development

• グラフ改善

• 高速化・外部貼付・自動リフレッシュ

• アラート改善

• 通知先の充実・条件のカスタマイズ

• ダッシュボードカスタマイズ

• 任意のグラフを貼り付けられるように

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

ヘルプ

help-ja.mackerel.io

Page 42: Mackerelによる簡単サーバー管理入門と発展形
Page 43: Mackerelによる簡単サーバー管理入門と発展形
Page 44: Mackerelによる簡単サーバー管理入門と発展形

mackerel.io