はじめに
はじめまして、株式会社ネットアシストの魚浦と申します。
皆さま、サーバーを作り、サービスを提供する段階で、必ず行う事は何だと思われますか?
Googleでの広告配信、Twitterでリツイート、まずは宣伝・・・ではなく、必要な時に必要なサービスが提供されているか、常に確認を行う必要があります。
実際に人間が提供する店舗等とは違い、インターネットサービスの運用においては、ユーザーは24時間サービスが快適に利用できる事を期待しています。
ユーザーから問い合わせがあって、初めてサービスが利用できない事を知る・・・という事態に陥らない様、サーバー・サービスの運用と監視は必ずセットになります。
サーバー監視を始めるには
監視といっても、コンソール上で負荷状況を見続ける訳にはいきませんので、ZabbixやMunin、Nagiosといった監視サーバー・サービスを用意し、監視する事も多いかと思います。
この様な高機能な監視ツールは通常、監視ホスト上にクライアントを導入し、監視サーバー側へ情報を送信します。
そのため、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が表示できる状態にしています。
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.のトップページに「無料で登録」という分かりやすい画面が有りますので、そのまま以下の項目を入力します。
・お名前(フルネーム)
・組織名(個人の場合は個人と入力)
・メールアドレス
・パスワード
入力した後は、利用規約を読んでいただいた後、「はじめる」ボタンを押してください。
すぐに認証用のURLが記載されたメールが届きますので、ブラウザで接続する事で、本登録を完了できます。
通知先と監視サーバーを登録する
画面の指示に従い、通知先の登録とサーバーの登録を行うと、すぐに画面から現在のサーバーの状態が確認できるようになります。
非常に簡単に監視ができると思います。
もし正常にサーバー・サービスが起動しているにも関わらず、「CRITICAL」でエラーとなる際は、以下の項目が正しく設定されている事を確認してください。
・監視サーバーアドレスのIPアドレスまたはFQDN
・サーバー内のファイアウォールの解放ポート
・GMOクラウドALTUS 内のコンソール上にあるセキュリティグループの解放ポート
・対象サービスのListen状態
また、サービスポートを全開放としない際は、Savamoni.の監視IPを接続許可してください。
※監視IPは、Savamoni.サービス仕様書を参照ください。
サービス異常を検知させる
監視登録ができたので、実際にApacheでトラブルが発生した時に、どのような通知となるか確認しましょう。
Aapacheを停止してみます。
すると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 stop mysqld
Savamoni.上のCRITICALの内容が、以下に変わりました。
HTTP CRITICAL: HTTP/1.1 500 Internal Server Eror
実際にブラウザでアクセスをすると、接続はできますが、「データベース接続確立エラー」と表示されます。
これは、Apacheは起動しているので、ポート自体へのアクセスは可能なのですが、WordPressから記事の表示に利用するデータベースが読み込めず、エラーが発生した為となります。
リソースを監視する
異常が検知されることが分かったので、今度はリソース監視を設定します。
Savamoni. のサービス状態の画面から、「監視設定編集」のボタンをクリックします。
すると、監視項目の編集画面に遷移するので、「エージェント監視」を「使用しない」から「Linuxサーバー」に変更します。
さらに「監視状態を確認する」のボタンで監視状態を確認すると、ページ下部に「Linuxエージェント導入手順」が表示されます。
続いて手順の通り、root権限で指定コマンドを入力します。
% 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%しか使っていません。
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 18G 3.0G 15G 17% /
13GBの空データを作成し、容量を逼迫させてみます。
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.よりさらに高機能なサポートをご希望の際は、ぜひお気軽にお問い合わせいただけますと幸いです。
最後までお読みくださり、有り難うございました!