
今日!!早起きしてノベルティやらなんやらの準備をしております!
そしてなんとまだ参加を申し込むことが可能です!!ジョイナス!https://t.co/guHznBPeRL— a-know (@a_know) December 6, 2019

- Mackerelって何?
- サーバー監視って具体的にどうやってやるの?
- インフラ関連の知識がないんだけど、自分にも使えるかな?
こんな悩みを持った方向けに解説します。
- Mackerelの概要を簡単に紹介
- サーバー監視の設定方法をわかりやすく写真で紹介
- Mackerelを使ってみたリアルな感想
といった具合に進めていきます。
結論をいうと、サーバー関連の知識がほとんどない僕でも簡単に設定して利用できました。
- Mackerelのサービス概要がわかる
- 具体的なセットアップ手順の方法がわかる
- Mackerelを使ってどんなことができるのかわかる
読み終える頃には「Mackerelって面白そう!使ってみたい!」と思えるはずなので、じっくり読み進んでください。
セミナーの内容が知りたい!という方は、以下を参考にしてみてください。
Mackerelハンズオンセミナー in 岡山(2019-12-07)
目次
Mackerelとは?
サーバーの監視ができるサービスのことです。
サービスの提供元は、はてなブックマークやはてなブログを運営している株式会社はてなさんです。
公式サイトから抜粋すると、
Mackerel(マカレル)は、運用中のクラウドもしくはオンプレミスのサーバーにエージェントを1つ入れるだけで、簡単にサーバー管理を始められます。監視サーバー自身の構築・運用は不要です。さらに負荷のリソース状況などの数値をグラフに可視化します。障害発生時にはアラートが記録され、様々なツールに通知できます。システム運用保守に最適な監視サービスです。
ちなみにMackerelというのは、魚の「サバ」のことです。
そう、サバとサーバー。
僕はわかりやすくて好きです笑
元々Mackerelは社内ツール用に開発したそうで、せっかくだから面白い名前にしよう!という遊び心から命名したそうですよ。
社員さんが楽しく働いているんだろうなー思えるエピソードが聴けました。
Mackerelが提供する「サーバー監視」とは?
ここ最近は1人1台以上スマートフォンを持つ時代になったため、
サーバーが安定して稼働し続けることが以前より強く求められるようになりました。
そんな時代のニーズに合わせた、Mackerelのサーバー監視サービスの特徴がこちらです。
- 取得したデータをグラフにして可視化
- 公式プラグインで多様なミドルウェアに対応
- アラートを時系列にログを記録
- 様々なツールに対応した通知方法
- すぐれたGUIで簡単にセットアップ可能
この他にもまだまだ特徴があるので、気になる方は先ほどの公式サイトからチェックしてみてください。
実際にハンズオンしてみる
「ハンズオン=手を動かす」なので、ここから具体的に手を動かしていきます。
参加者ごとに監視対象サーバーが用意され、各々でセットアップしていくことになりました。
初心者でも迷わずに済むように手順書がGithubにアップされており、
さらにターミナルで実行するコマンドもボタン一つでコピペできるという親切さです。
ありがたいですねー。
新規ホストを登録
まずは監視する対象のOSを選択します。
ホストとは「監視対象の箱」のことです。
今回はセミナーの手順にしたがって、CentOS7を選択。
エージェントのインストールコマンドをターミナルで実行します。(APIキーをそのまま載せてしまうとマズイので加工しています)

なんと、これだけでエージェントのインストールが完了してしまいました。
めちゃくちゃ簡単でビックリ。
エージェントによって、監視対象の情報をMackerelに送信、Hosts(管理画面)で確認できる準備を整えてくれます。
ちなみにエージェント単体で監視できるのは、以下の項目です。(2019年12月時点)
- ロードアベレージ
- CPU使用率
- メモリ使用量
- ディスク使用量
- ディスクIOPS
- ネットワークインターフェース I/O
サービスとロール
Mackerel側の設定に入る前に、「サービス」と「ロール」について説明しておきます。
サービスとは実際の運用対象のことを指していて、
具体的にいうと、ブログやECサイトなどのWebサイトのことです。
ロールとは「役割」のこと。
アプリケーションサーバーやデータベースサーバーをまとめて分類し、集約することができる機能です。
サービスを作成
ではハンズオンの続きです。
先ほどホストは登録したので、次はサービスを作成します。

今回は当ブログを監視する想定で「mune-blog」というサービス名で登録してみました。
これでサービスの設定が完了しましたね。
ロールを作成
次はロールをセットアップしていきます。
データベースを想定してみたので「DB」というロール名で作成。

これだけで「mune-blog」というサービスに「DB」というロールを設定できました。
1つのサーバーでアプリケーションとデータベース両方を担っている場合でも、このシステムのおかげで対応が可能になります。
監視ルールを設定
一通り基本的なセットアップは終わったので、次は「監視ルール」を決めます。

写真にあるconnectivityとは、「サーバーからの通信が一定時間以上止まっていないか」という監視ルールのことを意味しています。
つまり、監視しているサーバーがちゃんと動いているのかどうか見ているわけですね。
異常検知の設定
ここからはサーバーが異常を検知する値の設定範囲、細かい機能をセットアップしていきます。
今回はWarning条件を40%、Cirtical条件を90%に設定してみました。

次に監視ルールのメモを記入します。
メモには異常を検知した時にどう対応すべきか、指示内容を書くことができます。

「異常検知したら担当者の携帯にTELしてください」や「https://www.xxxxにアクセスして作業を行ってください」などと自由に書けます。
これなら慌てずに適切な処置を行うことができそうですね。
また異常検知の通知頻度についても設定可能です。
アラートを再送する間隔を設定できるので、気付かなかったということは避けられますね。

これで無事、全てのセットアップが完了しました!

実際に異常検知させてみる
ここからはちゃんと異常検知してくれるのか検証に入りますよー。
以下のコマンドは「yesを入力してゴミを空にする」処理をループさせる実行内容になっています。
[crayon-5dfc091565172351170102/]
では負荷をかけていきます。
しばらくすると、異常検知のアラート通知されます。
今回はメールを使って通知してくれました。
グラフを見てみると、バッチリ異常を検知して可視化してくれています。

やはりグラフで見るとわかりやすいですね!
アラートがしっかり反応してくれたことを確認できたので、「Control + C」で先ほどの処理を終了してあげます。

はい、無事アラートが消えました。
正常な状態に復帰するとアラートが自動的にクローズされ、再び通知(メールなど)を飛ばして異常が解除されたことをお知らせしてくれます。
いつ復旧したのか明示的に伝えてくれると安心しますね。
まとめ
Mackerelの登場により、エンジニアの技量に依存していたサーバー監視の負荷を大幅に軽減してくれそうです。
何よりGUIが素晴らしいので、誰でも簡単にサーバー監視ができるのは大きなメリットだといえますね。
今回紹介できませんでしたが、公式プラグインを使った運用方法もあります。
興味がある方は一度Mackerelを使ってみてはいかがでしょうか。
使い方次第で様々なデータを監視することができるので、一度試してみると面白いかもしれませんよ。

以上、
Mackerel Hands-On Seminar(2019-12-07)に参加してみた!
をお送りしましたー!