Mackerel サーバ監視[実践]入門
- 井上大輔,粕谷大輔,杉山広通,田中慎司,坪内佑樹,松木雅幸 著
- 定価
- 3,190円(本体2,900円+税10%)
- 発売日
- 2017.8.26
- 判型
- A5
- 頁数
- 320ページ
- ISBN
- 978-4-7741-9213-0 978-4-7741-9233-8
概要
「Mackerel」は,サーバにおける各種ハードウェアやアプリケーションソフトウェアの性能をリアルタイムに監視できるSaaS型サーバ監視サービス。美麗なWebUIとエンジニア志向のカスタマブルなつくりが特徴です。「はてなブログ」「はてなブックマーク」を展開する株式会社はてなが,それら巨大Webサービスを支えるITインフラのために開発した社内システムがもとになっています。本書はそのMackerelの入門書ですが,Mackerelの使い方に限らず,サーバ監視の基本知識や,はてなのエンジニアが培ってきたインフラ管理全般のノウハウについても学べる1冊となっています。
こんな方にオススメ
- これからサーバ監視を始めたい方,社内のサーバ監視システムを一本化したい方
目次
1章 Mackerelとは何か
- 1.1 Mackerelが目指すもの
- クラウド時代を切り拓く
- 普遍的なシステム監視の重要性
- エンジニアをワクワクさせる
- 1.2サーバ管理のアーキテクチャ
- Push型とPull型
- Mackerelのアーキテクチャ
- 1.3Mackerelの特徴
- 1.4動作環境
2章 Mackerelをはじめる
- 2.1 ユーザ登録
- ユーザを招待
- 2.2 mackerel-agent
- mackerel-agentのインストールと起動
- 2.3Mackerelの画面の見方
- オーガニゼーショントップ画面
- ダッシュボード一覧画面
- ホスト一覧画面
- サービス一覧画面
- 監視ルール一覧画面
- アラート一覧画面
- リソースグラフの使い方
- 2.4 Mackerelが扱うメトリックの種類
- ホストメトリック
- サービスメトリック
- 2.5 グラフの種類とインターフェース
- グラフの種類
- ホストメトリックグラフ
- ロールグラフ
- サービスメトリックグラフ
- 式グラフ
- 各種インターフェース
3章 監視する
- 3.1 サーバ監視のいろは
- なぜ監視が必要か
- 何を監視するのか
- どのように監視するのか
- 監視ルール設定の考え方
- お勧めの監視設定フロー
- 3.2 サービスとロール
- サービスとロールの指定
- Mackerelのロールとは
- Webシステムにおけるロール編成
- 3.3 メトリック監視
- サーバ監視とメトリック
- システムメトリックを測定
- カスタムメトリックを測定
- サービスメトリックを測定
- 3.4 監視ルールの設定
- アラートの確認
- 通知の設定
- 3.5 チェック監視
- チェックプラグインの共通仕様
- Mackerelにおけるチェック監視の設定
- チェック監視状況を確認
- 公式チェックプラグイン集を活用
- check-procsでプロセス監視
- check-logでログ監視
- check-tcpでTCP接続の監視
- チェック監視のそのほかのオプション
- 3.6 URL外形監視
- URL外形監視のしくみ
- URL外形監視を設定
- より細やかな監視
4章 アラートを通知する
- 4.1 各種チャンネル
- 4.2 Slackチャンネルを設定
- 4.3 PagerDutyチャンネルを設定
- 4.4 Twilioチャンネルを設定
- Twilioチャンネルの設定項目
- 共通設定項目
- 通知種別ごとの設定項目
- 4.5 通知グループ
- 通知グループの作り方
- 通知グループの例
- お勧めの通知設定
5章 プラグインを作る
- 5.1 プラグインは3種類
- 5.2 カスタムメトリックプラグインを作る
- カスタムメトリックプラグインの仕様
- 公式のヘルパーライブラリを使う
- プラグイン作成時のファイル構成
- カスタムメトリックプラグインをビルド
- 5.3 チェックプラグインを作る
- カスタムメトリックプラグインとの使い分け
- チェックプラグインの仕様
- 公式のヘルパーライブラリを使う
- プラグイン作成時のファイル構成
- チェックプラグインをビルド
- 5.4 メタデータプラグインを作る
- メタデータプラグインとは
- メタデータプラグインの仕様
- スクリプトを自作
- メタデータ機能の今後
- 5.5 プラグインをより洗練させる
- テストを書く
- 公式プラグイン集にcontributeするために
6章 各種ツール連携と運用の効率化
- 6.1 Mackerel API
- APIのルール
- APIが提供している機能一覧
- APIとmkr
- 6.2 CLIツール「mkr」
- mkrを導入する
- mkrを使う
- tmux-csshと組み合わせる
- 6.3 Fluentdと連携
- セットアップ
- サービスメトリックを投稿
- ホストのカスタムメトリックを投稿
- Nginxのステータスコードごとリクエスト数をグラフ化
- 6.4 Chefによるセットアップ
- cookbook-mackerel-agent
- 設定例
- 6.5 Capistranoと連携
- Capistranoを準備
- Mackerel APIを利用
- アプリケーションデプロイ時にアノテーションを投稿
- 6.6 Serverspecと連携
- インフラはコードで管理する時代
- Serverspecとは
- MackerelとServerspec
7章 クラウド環境におけるMackerel
- 7.1 Amazon Web Services
- EC2インスタンス情報の表示
- AWSインテグレーション
- EC2以外のクラウド製品との連携
- 7.2 Microsoft Azure
- Azureインテグレーション
- 7.3 Heroku
- Dynoを監視
- サービスメトリックを投稿
- 7.4 Docker
- mackerel-plugin-dockerを利用
- mackerel-agentのDockerイメージ
- 7.5 オートスケールと自動退役
- ホストステータスの自動変更や自動退役
- OSシャットダウン時にホストを自動で退役させる
- ホスト起動時・シャットダウン時にホストステータスを自動変更
8章 発展的な機能
- 8.1 監視設定をコード化してGitHubで管理
- mkr monitorsで監視ルールを操作
- mkr monitorsコマンドの使い方
- pullとpushを利用する
- pushだけを利用する
- CIでテストする
- 8.2 式を使って柔軟なグラフを書く
- メトリックを式で計算する
- 具体例1:過去の値との比較
- 具体例2:線形回帰によるディスク枯渇までの日数の将来予測
- 8.3 セキュリティやユーザ権限への配慮
- ユーザ権限
- ログインプロバイダ制限
- 二段階認証
- IP制限
- オーガニゼーションごとの分離
9章 付録
- 9.1 Mackerelのアーキテクチャを知る
- Mackerelの内部システム概要
- Mackerelサーバ構成
- Mackerelで使用しているミドルウェア
- 9.2 Mackerelとオープンソース
- 9.3 Mackerel活用事例―GMOペパボの場合
- Fabricとの連携
- hostsファイルの生成
- “確認漏れ”を防ぐツールmalsh
- 特定条件によるホストの検索
- 9.4 Mackerel活用事例―ガイアックスの場合
- Mackerelを導入するまで
- PerlからMackerelを使う
- 踏み台サーバでのホスト一覧表示
- MackerelのWebhookを使う
- 9.5 総論
- 動的で複雑なインフラ環境
- はてなのインフラ環境―自作サーバから自作コンテナまで
- 効率的な管理を促進するサービス・ロール・ホストの概念
- Mackerelの思想
- Mackerelの今後
プロフィール
井上大輔
id:a-know
株式会社はてな Mackerelチーム CRE
プログラミングを仕事にすることに憧れ,2006年,製造系SIerにSEとして新卒入社。はてなの前社長(現会長)である近藤淳也の著書『「へんな会社」のつくり方』(翔泳社)を読み感銘を受け,Web業界を志す。その後,ソーシャルゲームのバックエンドエンジニアや広告配信システムのサーバサイドエンジニア,スクラムマスターなどを経て現職。セールスやCS活動に従事しながら,隙を見てMackerelにPull Requestする日々を送っている。
粕谷大輔
id:daiksy
株式会社はてな Mackerelディレクター/スクラムマスター
SI,ソーシャルゲーム開発を経て現職。おもにScalaやアジャイルのコミュニティで活動。Scala関西サミット,ScalaMatsuriスタッフ。共著に『開発現場に伝えたい10のこと』(達人出版会)。
杉山広通
id:sugiyama88
株式会社はてな Mackerelプロデューサー/プロダクトマネージャー
長年インフラエンジニアとして大規模な環境でのネットワークやサーバインフラの設計〜構築〜運用に携わる。OSSモニタリングツールやSaaSシステムの活用,ITILベースのサービスマネジメント経験を活かし,現在はてなでMackerelのプロダクトマネージャーを担当している。
田中慎司
id:stanaka
元株式会社はてな CTO兼Mackerelプロデューサー
/現株式会社メルカリ 執行役員
はてなではインフラ周りを主担当とし,そこでのノウハウを生かしてMackerelを構想,開発に至る。その後は後進にバトンタッチし,今はイギリスで海外修行中。共著に『サーバー/インフラを支える技術』『Web開発者のための大規模サービス技術入門』(ともに技術評論社)。
坪内佑樹
id:y_uuki
株式会社はてな Webオペレーションエンジニア/シニアエンジニア
はてなに新卒入社後から現在に至るまで,Mackerelのインフラ構築・運用に携わる。OS,データベース,ネットワーク,分散システム,モニタリングなどの観点から,Webアプリケーションアーキテクチャを設計・実装し,そこから得た知見と考えたことをブログ・OSSとしてアウトプットすることをライフワークとしている。
松木雅幸
id:Songmu
株式会社はてな チーフエンジニア兼Mackerelサブプロデューサー
大学時代は中国語に没頭し,機械翻訳も少しかじる。卒業後中国へ渡り,ITベンチャーの立ち上げに関わる。帰国後,英会話・中国語スクールの営業兼システム担当,印刷系SIer,株式会社カヤックでソーシャルゲームのリードエンジニアなどの経験を経て,はてなに入社。東京オフィスでチーフエンジニアとMackerelのプロダクトオーナーを務める。好きな言語はPerlと中国語で,60個以上のPerlモジュールをCPANizeしている。最近はGoがお気に入り。共著に『みんなのGo言語[現場で使える実践テクニック]』(技術評論社)。