2018.06.28

サーバー監視をもっと簡単にするサーバー監視ツールとは?

難易度
2
カテゴリー
サーバー設定初心者向け

sabamoni00

はじめに

はじめまして、株式会社ネットアシストの魚浦と申します。
皆さま、サーバーを作り、サービスを提供する段階で、必ず行う事は何だと思われますか?
Googleでの広告配信、Twitterでリツイート、まずは宣伝・・・ではなく、必要な時に必要なサービスが提供されているか、常に確認を行う必要があります。
実際に人間が提供する店舗等とは違い、インターネットサービスの運用においては、ユーザーは24時間サービスが快適に利用できる事を期待しています。
ユーザーから問い合わせがあって、初めてサービスが利用できない事を知る・・・という事態に陥らない様、サーバー・サービスの運用と監視は必ずセットになります。

サーバー監視を始めるには

監視といっても、コンソール上で負荷状況を見続ける訳にはいきませんので、ZabbixMuninNagiosといった監視サーバー・サービスを用意し、監視する事も多いかと思います。

この様な高機能な監視ツールは通常、監視ホスト上にクライアントを導入し、監視サーバー側へ情報を送信します。
そのため、WEBサイトやメール等のサービス監視はもちろん、「ログのエラー文監視」や「プロセスの起動確認」、「異常検知時の特定スクリプト実行」といった、かなり特殊な監視設定まで可能になっています。

ただし、利用のためには監視サーバーの構築に加え、監視ソフトウェアの導入、さらには監視サーバーが正常に稼働しているかの監視が必要になりますので、サーバー構築の初心者には少し敷居が高くなってしまうかもしれません。

サーバー監視をかんたんにするSavamoni.

そこで紹介させていただきたいのが、弊社で提供している無料サーバー監視ツールSavamoni.です。
Savamoni.は、特に以下の点でご利用しやすいサービスになります。

・メールで登録後、ソフトウェア不要でサーバーの監視が可能
・サービス監視設定は全てWEB上のインターフェースで完結
・エージェントの導入でリソース監視も可能

特殊な監視を省き、シンプルで始めやすいサービスを目指し提供していますので、サービス監視だけが欲しい方や、現在の監視サービスのスレーブとして利用したい方にフィットしたサービスになるかと思います。

せっかくですので、今回は、GMOクラウドALTUS で構築したサーバーを、Savamoni.を利用し、監視と異常検知の確認までを、順を追って設定をしてみようと思います。

監視対象サーバーの構築

早速ですがGMOクラウドALTUSをお借りし、以下の内容で監視用サーバーを構築させていただきました。

シリーズ:Basic
サーバー:カスタムサーバー(リソースパック利用)
テンプレート:CentOS 7.33 64bit 20170209
サーバープラン:m1.small (1vCPU / 2GB Memory)
ディスク:20GB

サービスは、Apache・MySQL・Postfix・Dovecot・proftpdを導入し、さらにWordPressが表示できる状態にしています。

[root@gmo-blog ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      1244/master
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      1078/dovecot
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      1078/dovecot
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      808/httpd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1036/sshd
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1244/master
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      808/httpd
tcp6       0      0 :::3306                 :::*                    LISTEN      9199/mysqld
tcp6       0      0 :::21                   :::*                    LISTEN      7023/proftpd: (acce
tcp6       0      0 :::22                   :::*                    LISTEN      1036/sshd

続けてサーバー監視ツール『Savamoni.』に登録

では、早速サーバー監視をはじめるために、監視ツールの登録を行います。
Savamoni.のトップページに「無料で登録」という分かりやすい画面が有りますので、そのまま以下の項目を入力します。

savamoni.お申込み画面

・お名前(フルネーム)
・組織名(個人の場合は個人と入力)
・メールアドレス
・パスワード

入力した後は、利用規約を読んでいただいた後、「はじめる」ボタンを押してください。
すぐに認証用のURLが記載されたメールが届きますので、ブラウザで接続する事で、本登録を完了できます。
Savamoni.登録完了画面

通知先と監視サーバーを登録する

監視中サービスの状態

画面の指示に従い、通知先の登録とサーバーの登録を行うと、すぐに画面から現在のサーバーの状態が確認できるようになります。
非常に簡単に監視ができると思います。

もし正常にサーバー・サービスが起動しているにも関わらず、「CRITICAL」でエラーとなる際は、以下の項目が正しく設定されている事を確認してください。

・監視サーバーアドレスのIPアドレスまたはFQDN
・サーバー内のファイアウォールの解放ポート
GMOクラウドALTUS 内のコンソール上にあるセキュリティグループの解放ポート
・対象サービスのListen状態

また、サービスポートを全開放としない際は、Savamoni.の監視IPを接続許可してください。

※監視IPは、Savamoni.サービス仕様書を参照ください。

サービス異常を検知させる

監視登録ができたので、実際にApacheでトラブルが発生した時に、どのような通知となるか確認しましょう。

Aapacheを停止してみます。

[root@gmo-blog ~]# systemctl stop httpd

すると2通、通知先に登録したメールアドレスに、HTTPとHTTPSについてのアラートメールが着信したと思います。

(「***********.ne.jp」は登録上のホスト名が表示されます)

----------------------------------------------------------------------

SavaMoni. が監視対象の異常を検知しました。

2018-05-31 07:51:12
■対象ホスト:***********.ne.jp(***********.ne.jp)
■監視項目:HTTP
SavaMoni. にログインし、対象をご確認・ご対応をお願いいたします。

----------------------------------------------------------------------

ブラウザ上からもアクセスできず、Savamoni. のサーバー稼働状況画面からも「HTTP CRITICAL」となっています。

監視中のサービス状態

では、今度はMySQLがダウンした際にどのようなエラーが発生するか、確認してみましょう。
停止したApacheを起動し、MySQLを停止してみます。

[root@gmo-blog ~]# systemctl start httpd
[root@gmo-blog ~]# systemctl stop mysqld

Savamoni.上のCRITICALの内容が、以下に変わりました。
HTTP CRITICAL: HTTP/1.1 500 Internal Server Eror

実際にブラウザでアクセスをすると、接続はできますが、「データベース接続確立エラー」と表示されます。
これは、Apacheは起動しているので、ポート自体へのアクセスは可能なのですが、WordPressから記事の表示に利用するデータベースが読み込めず、エラーが発生した為となります。

リソースを監視する

異常が検知されることが分かったので、今度はリソース監視を設定します。
Savamoni. のサービス状態の画面から、「監視設定編集」のボタンをクリックします。

監視設定編集ボタン

すると、監視項目の編集画面に遷移するので、「エージェント監視」を「使用しない」から「Linuxサーバー」に変更します。
さらに「監視状態を確認する」のボタンで監視状態を確認すると、ページ下部に「Linuxエージェント導入手順」が表示されます。

Linux用エージェント導入手順

続いて手順の通り、root権限で指定コマンドを入力します。

[root@gmo-blog ~]# curl https://www.savamoni.com/api2/make_monitor_script_linux/**************/setup.sh -o setup.sh ;sh setup.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 735 100 735 0 0 3967 0 --:--:-- --:--:-- --:--:-- 3951
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1963 100 1963 0 0 9480 0 --:--:-- --:--:-- --:--:-- 9529
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 53 100 53 0 0 467 0 --:--:-- --:--:-- --:--:-- 469

入力後、しばらく待機すると・・・
リソース監視画面
新たにCPU負荷やトラフィック等、リソースが監視画面で表示されるようになりました!

リソース異常を検知する

では、リソースの異常を検知してみましょう。
監視サーバー・監視項目の編集画面から、「空きディスク容量」の項目にチェックを入れ、10%以下で検知する様にします。
監視項目編集画面

現在の/ 領域のディスク使用量は18GB中3.0GB、17%しか使っていません。

[root@gmo-blog ~]# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 3.0G 15G 17% /

13GBの空データを作成し、容量を逼迫させてみます。

[root@gmo-blog ~]# dd if=/dev/zero of=/alertHDD bs=1G count=13
13+0 records in
13+0 records out
13958643712 bytes (14 GB) copied, 61.6656 s, 226 MB/s
[root@gmo-blog ~]# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 16G 1.6G 92% /

----------------------------------------------------------------------
SavaMoni. が監視対象の異常を検知しました。
2018-05-31 16:10:09
■対象ホスト: ***************.ne.jp (***************.ne.jp)
■監視項目: パフォーマンス (空きディスク容量(/ 8%))
SavaMoni. にログインし、対象をご確認・ご対応をお願いいたします。
----------------------------------------------------------------------

ディスクの空き容量グラフ無事に検知しました!
Savamoni.の画面からも正常に値が取得できています。
実際の運用では、先ほどのサービスごとの異常検知と併せてリソース履歴を確認する事で、異常発生の原因や状況が調査しやすくなると思います。

 

Savamoni.の監視項目について

いかがだったでしょうか?
Savmoni.であれば、初めて監視を行う方でも、スムーズに設定できたのではないでしょうか。
今回はWEBアクセスとHDD使用量の異常検知を調べて見ましたが、Savamoni.の標準項目では、以下のサービス・リソースを無料で監視可能です。

サービス監視項目
・死活監視(Ping)
・TCP21(FTP)
・TCP22(SSH)
・TCP25(SMTP)
・TCP80(HTTP)
・TCP110(POP)
・TCP143(IMAP)
・TCP443(HTTPS)
・TCP123(NTP)
・TCP53(DNS)

リソース監視項目
・CPU使用率(%)
・空きディスク容量(領域毎、%)
・空きメモリー容量(%)
・空きディスク容量(%)
・空きディスクスワップ(%)
・送信トラフィック(Kbps)
・受信トラフィック(Kbps)
・ロードアベレージ

また通常は5分間隔での監視、メールでの異常検知のみとなりますが、有料オプションにて監視時間の短縮や、電話での通知も可能になっています。

おわりに

弊社ネットアシストでは、有人での監視・運用サービス「MSPアシスト」や、サーバー構築支援サービスも提供しております。
トラブル発生時の原因調査など、Savamoni.よりさらに高機能なサポートをご希望の際は、ぜひお気軽にお問い合わせいただけますと幸いです。
最後までお読みくださり、有り難うございました!

この記事を書いた人

株式会社ネットアシスト魚浦 隆志

株式会社ネットアシスト
監視運用チーム所属社員
https://www.netassist.ne.jp/
復旧優先を合言葉に、安定したサーバー運用を目指しています。
Nginxとスプラトゥーン2が好きなエンジニアです。

GMOクラウドアカデミーYouTubeチャンネルはこちらから

アカデミー用バナー

メルマガ会員募集中!

アカデミーの最新情報や会員限定のお得な情報をお届けします。

メルマガ登録はこちら