無料でできるサーバー監視

2020年7月29日

この記事を読むと得られる情報

  • サーバー監視を実装する理由
  • サーバー監視の仕組み
  • Mackerelの使い方

サーバー監視の必要性

そもそもサーバー監視の必要性って?という方もいるかと思います。

ブログサーバーなりゲームサーバーでも何でも良いのですが、サーバー君たちは休まずずっと働いてくれているため、ユーザーはいつでもサービスを楽しむことが出来ます。
ただし、サーバー君も完璧超人ではないので極稀に風邪(レスポンス悪化)になったり、最悪入院(故障)することだってあります。

こうなった場合、通常は

  1. 故障であるという事実を発見
  2. 原因究明
  3. 故障を修理
  4. テスト

という4ステップを乗り越えて、サービスを復旧します。

この4つのステップにかかる時間=ダウンタイム(サービスが提供されない時間)になるわけです。
要は機会損失の時間です。
ECサイトなら物が売れませんし、ブログのようなサービスであればダウンタイムが長いとSEOに影響します。

よってサービス運用者としてはこのダウンタイムは極力短くしたいわけです。
そもそも別の視点として【ダウンタイムを0にする】という考えもあるのですが、それはまた今後…
(この世に壊れない物はない以上、この理想を実現するには多額の運用費が必要です)

話を戻しまして…
さきほどの4 ステップのうち、最も時短に有効なのは1の【故障であるという事実を発見】するまでの時間を短縮することです。
これは単純で、サーバーの不具合をいち早く発見すればいいのです。
しかし運用者がつきっきりでサーバーを見てるわけにも行かないので、これも自動化してしまおう!というのが今回の主題です。

寝てる間や仕事中など、【サーバーの異常を検知できても対応できない】という時間もあるかと思いますが、障害発生時刻やその時のサーバーの情報(CPU利用率やメモリ使用率など)を記録しておくことはステップ2の時間を短くする上で非常に有効な情報ですので収集しておいて損はありません!

転ばぬ先の杖とも言いますし、これを期にみなさんもサーバー監視を始めてみましょう!!

用意するもの

監視対象

監視するサーバーです。OSは基本的に何でも大丈夫です。
今回はUbuntuでの手順になりますが、他OSでもやることは同じなのでご安心ください。

ただし、サーバー内にソフトウェアをインストールする必要があります。
レンタルサーバーサービスによってはソフトウェアインストールの権限がない場合がありますので、使用しているレンタルサーバーの権限を確認してください。

通知先

メールアドレスかLINEアカウント、その他各種アカウントのどれかを用意してください。
(使えるアカウントは後述します)
サーバーに異常を検知したときに通知が届く宛先になります。
今回はLINEアカウントを使った設定を行います。

Mackerelアカウント

今回、サーバー監視のサービスとしてMackerel(英語で鯖の意味)を使っていきます。

選定理由としては、UIが見やすくなんと言っても自由度が高い!
そして5台以下の監視であれば殆どの機能は無料で使えます!!

では早速無料アカウントを作って行きましょう。

Mackerel
【無料で試してみる】をクリック

GitHubやGoogleアカウントとも連携できますのでそちらでも大丈夫ですし、メールアドレスでの登録でもOKです!

Mackerelサインアップ
アカウント作成

続いて、オーガニゼーション名を決定します。
オーガニゼーション名はサービスの名前と思ってください。
Mackerelでは複数のサーバーを同時に監視できるので、そのサーバー達のまとめるグループ名と思ってください。

オーガニゼーション名の設定
オーガニゼーション名の設定

ただしこの名前はMackerelユーザーの中で一意である必要がありますので「Blog」などの名前は使えません。
自分のドメイン名などがわかりやすくてよいかと思います。

その下のアンケートは必須ではないので飛ばして頂いても大丈夫です。

続いてプランの選択です。
この時点ではトライアルしか選べないので、こちらを選択します。
トライアル期間は2週間ですが、課金しなければ勝手に無料アカウントに切り替わるのでご安心ください。
無料アカウントと有料(トライアル)アカウントの違いは後述します。

プラン選択
プラン選択

これで用意するものは全てです!
続いてはMackerelの設定を行っていきましょう!!

Mackerelへのサーバー登録

アカウントを作り終わると、こんな画面になってるかと思います。

Mackerel開始画面
Mackerel開始画面

では早速、指示の通りMackerelに監視対象のサーバーを登録していきましょう!
ここから「新規ホストの登録」をクリック。
すると、各種OS毎のAgentインストール方法を個別に教えてくれます。

エージェントのインストール方法
Agentのインストール方法

表示されたコマンドを監視対象のサーバーにログイン後にコピペで実行するだけです!!
サーバー側での操作はこれだけですので簡単ですねー

ちなみに「Agent」とは、サーバーの中からサーバー情報を常にMackerelへ送信し続けるソフトウェアです。
例えばサーバーの電源が何かしらの原因で電源が落ちるとします。
するとこのAgentも当然止まるため、送信され続けていた情報がMackerel側に送られなくなります。
この時、Mackerelは「そのサーバーに異常が発生した」と判断してアラート(報告)を上げてくれます。
この時のアラートの送信先は後で設定しますので、もうしばらくお待ち下さい。

サーバーにAgentが無事にインストールされたら、メニューより「Hosts」を選択します。

ホストの設定画面
メニューからHostsを選択

Agentのインストールが上手く行っていれば、サーバーが追加されているはずです。

ホストの確認画面
Hostの確認画面

ホスト名は都合上隠していますが、無事追加されていた場合ホスト名をクリックしてみてください。
すると次の様にグラフなどが乗ってるかっこいい画面が見れればOKです!!
(登録したての場合は写真ほどグラフは埋まっていませんが、そのうち下記のようにデータが集まってきます)

サーバーの詳細情報
サーバーの詳細情報

HW情報やCPU、メモリの使用量などが細かく記録されており、いつでも見ることが出来ます。
実はこれでサーバー監視は準備完了です!
サーバー監視を自前でやろうとすると非常に大変なのですが、無料でここまでできるのは大変助かりますねー

では続いて、通知設定に行きましょう!

Mackerelからの通知設定

ここではMackerelが異常を検知した際の通知先を設定していきます。
左のメニューから「Channels」をクリックしてください。

チャンネル登録
チャンネル登録へ

その後「通知グループ/通知チャンネルを追加」をクリック。

通知チャンネルの追加
通知チャンネルの追加

すると様々なサービスとの連携設定画面になります。
今回はLINEに通知したいので、LINEを選択します。
(もちろん他のサービスでも大丈夫です!!)

通知サービスの選択
通知サービスの選択

続けて出てくる「LINEで認証してチャンネルを作成」をクリックするとLINEのページに飛びます。
(PCの方で、初めてPC版にログインする場合はスマートフォン版LINEとの連携が必要になります。ページに従って連携してください)
通知先は新たにグループを作ってもよいです。
今回はデフォルトの【1:1でLINE Notifyから通知を受け取る】を選択します。

LINEとの連携画面
LINEとの連携画面

うまくいくとMackerelの画面に戻され。以下のような画面が出ていると思います。

LINEとの連携完了画面
LINEとの連携完了画面

LINE側にも通知が来ていると思います。

LINEの通知画面
LINEの画面

ここまでくればもうあと一息です!
最後の設定に向かいましょう!

閾値の設定

閾値について

最後は閾値の設定です。

ここまでの流れを一度振り返ると
・サーバーにAgentをインストールして、Mackerelへ情報を送信できる様に設定
・Mackerelからの通知を受け取れる様に設定
して来たわけですが、もう1つ忘れていることがあります。

このままでは
Mackerelは何をもってサーバーに異常があると判断し、あなたに通知すればいいかを知りません。
ここではその設定をしていきます。
ここがサーバー監視の肝です。
正直何でもできるのですが、ここでは最低限の設定にしておきます。
随時監視したい部分はどんどん追加してみてくださいねー

では早速メニューから【Monitors】をクリック。
するとすでに監視ルールがあります。

Monitorsの画面
Monitorsの画面

これは、サーバーとの接続を監視しています。
Agentからの死活信号が途切れると、先程登録したLINEに通知が行きます。
(気になる方はサーバーをシャットダウンしてみると、この時点ですぐに通知が来ると思います。)

これはとりあえずそのままにして【監視ルールの追加】をクリックします。

外形(URL)監視

すると、監視ルールを作成するページに遷移すると思いますので、最初は外形監視を始めてみましょう。

外形監視
外形監視

外形監視とは、Mackerelのサーバーが指定されたURLに定期的にアクセスを行い、サーバーが正常に動いているかを監視してくれます。
簡単で便利なので設定してみましょう。
※これは有料アカウント(もしくはトライアル)のみで使用できる機能です。

【外形監視】をクリックすると専用のページに移るので早速監視するURLをここに入力しましょう。

外形監視の設定
外形監視の設定1

メソッドは通常のブログであれば【GET】のままで大丈夫です。
あとはこのルールにわかりやすい名前を付けましょう。
最低限で良ければこれで終わりですが、せっかくですのでもう少し設定しちゃいましょう。

まずはレスポンスの設定です。

外形監視の設定
外形監視の設定2

レスポンスとはアクセスしたサーバーから返事が帰ってくるまでの時間です。
レスポンスが悪くなるとSEO的にも不利になるので、気にされる方は設定しましょう。

実際に設定する時間はご自身のサイトに合わせて、設定してみましょう。
一般的には
WARNING:1000
CRITICAL:2000
とかにしておくといいかもしれません。

あまり短い時間にしてしまうと、頻繁に通知が来るためオオカミ少年となってしまいます。
それはそれで困るのでちょっと余裕をもたせた値にしています。

続いて証明書の有効期限を設定しましょう。
※ サーバー証明書をレンタルサーバー会社で管理してくれるサーバーをご契約の方はこの設定は不要です。

サーバー証明証を自分で管理している場合、証明書の更新を忘れないためにも設定しておきましょう。

外形監視の設定
外形監視の設定3

ここは完全に決めの問題ですが
WARNING:14
CRITICAL:7
くらいで設定しておけばいいでしょう。

外形監視に関しては以上になります。
もうひと踏ん張りですので、続いて各種リソースの監視もしてみましょう!

CPU使用率の監視

最後にCPU使用率の監視を始めていきたいと思います。
画面を1つ戻って【ホストメトリック監視】をクリック。

ホストメトリック監視設定画面
ホストメトリック監視

ちなみにこの「ホストメトリック監視」はずっと無料で使えます。

ホストメトリック監視設定画面
ホストメトリック監視設定

メトリックから監視したい項目を選択します。
今回は【CPU %】を選択。

その後は閾値を決めます。
ここは本当にどんな値でもいいのですが、WARNINGの値がCRITICALより小さくなるように設定することだけは忘れないようにしましょう。

今回はどんなサーバーにもオススメできる値として画像の様に
・5分間の平均CPU使用率が70%でWARNING
・5分間の平均CPU使用率が90%でCRITICAL
となるように設定しています。

この通知が頻繁に来るようになったらサーバーの増強を検討したほうがいいでしょう。

もちろん他にもメモリやストレージの空き容量など色々監視出来ますので、必要な方は同じ要領でガンガン項目を増やしてみてください。

おわり

どうでしたでしょうか?
今回は少し難しい話だったかもしれませんが、サーバーはいつ突然止まるかわかりません。
自然災害と同じで今日大丈夫だったからといって、明日も大丈夫だという根拠はどこにもありません。
安定している間にちゃんと障害に備えましょう。

見えにくい部分&役に立つこともあまりない話なのでどうしても後回しになりがちですが、こういう部分をしっかりと踏み固めてるサービスは必ず強固な物となるはずです。
WordPress(アプリ)プラグインなどでできる小手先な対応とは違い、確かな違いを体感できます。
今回はその第一歩として監視のお話でした。

ここまでお読み頂きありがとうございました!!