始めましょう

Servwatchで、サーバー監視をシンプルにスタートしましょう!

ここでは、監視対象サーバーをServwatchへ追加して、メトリクス値の閲覧とアラート通知を受け取るまでの手順を説明します。

 

用語集

Servwatchでは以下の用語を使用します。

  • デバイス:監視対象サーバーを表します。ServwatchからはデバイスIDとしてサーバーのホスト名を認識します。

  • エージェント:監視対象サーバー上で動作するエージェントプログラムです。MQTTプロトコルでServwatchクラウドと通信を行います。

  • チャネル:サーバーからエージェント経由で送信されるメトリック値(CPU負荷やサービス状態など)を蓄積するデータストア(メトリクスストア)です。チャネルは手動で作成してデバイスに紐づける必要があります。

  • イベント:メトリクスにしきい値を設定してアラート通知する機能です。Servwatchが収集する全てのメトリクス値にイベントを設定可能です。

 

1.コンソールにログイン

オンラインサインアップ時にemailに記載されたアカウント情報で管理コンソールにログインします。

30日間フリートライアル期間中は最大3デバイス(サーバー)の監視が可能です。

2. 新規デバイス(サーバー)の作成

Servwatchではサーバーを"デバイス"として管理します。

コンソールから"サーバー"->"新規サーバー登録" をクリックして作成ページへ移動します。

"自動登録(通常はこちらを選択)”の手順に従い、エージェントのデプロイを実行します。

  1. エージェントインストール前にnodejsインストールが必要です。詳しくはエージェントの手順に従います。

  2. 監視対象サーバーのターミナルに、スクリプト文字列をroot権限にて実行します。ホスト名は自動設定されますが、手動設定したい場合は赤色の部分を変更して実行してください。

    1. ホスト名を自動設定する場合(通常はこちらを選択してください)

      1 sudo curl -fsSL https://m.thingscale.io/agent/setup_servwatch_agent.sh | SERVWATCH_USERID='****' SERVWATCH_DEVICETOKEN='****' sh
    2. ホスト名を手動設定する場合

      1 sudo curl -fsSL https://m.thingscale.io/agent/setup_servwatch_agent.sh | SERVWATCH_USERID='****' SERVWATCH_DEVICEID='<SET_YOUR_HOSTNAME>' SERVWATCH_DEVICETOKEN='****' sh

       

  3. サーバー管理ページに戻りエージェントの状態がOKになっていれば正常に登録されています。

  4. 次のステップ(新規チャネルの作成)に進みます。

ホスト名には.*~/などの記号を含めないでください。

3. 新規チャネルの作成

エージェントから送信されたメトリクス値を蓄積する新規チャネルを作成します。

  1. コンソールから"チャネル"->"新規登録" をクリックして作成ページへ移動します。

  2. チャネルIDを0以上の整数値・チャネル名をサーバーの名称に設定した後"作成"ボタンをクリックして作成を完了します。

  3. 左のナビゲーションより"チャネル"をクリックしてチャネルが作成されている事を確認します。



4. デバイスにチャネルをマッピング

ステップ3.で作成したチャネルをデバイスにマッピングします。

コンソールから"サーバー"->ステップ1.で登録されたデバイス名をクリックしてデバイス編集ページへ移動します。

以下を設定します。

  • 詳細:サーバーの名称・役割をわかりやすい名前で入力します。

  • 有効/無効:エージェントで自動登録されたデバイスは初期状態で"false"となっているので"true"として有効にします。

  • マップするチャネル:ステップ3.で作成したチャネルをデバイスにマップ(割り当て)します。

  • ”変更する"ボタンをクリックしてデバイス設定を完了します。

  • 約1分後にマップしたチャネルにメトリクス値(サーバーのリソース監視値やプロセス監視値)が蓄積されていきます。



5. メトリクスを確認する

コンソールから"メトリクス"をクリックするとメトリクスページへ移動します。

タブを切り替えることで、テーブル形式およびグラフでメトリクスを確認できます。

  • メトリクスチャネル:確認したいチャネルを選択します。

  • 範囲:任意の時間を指定します。

  • Reset:表示範囲をリセットします。(1hour/6hour/12hour/1day)



6. イベント(アラート)の追加

以上で監視対象サーバーをServwatchへ追加してメトリクスが収集可能になりました。

メトリクス値にしきい値を設定してアラート通知するには、イベントを作成します。

コンソールから"イベント→"新規登録"をクリックしてイベント作成ページへ移動します。

以下を設定します。

  • 設定

    • 名称:イベントの名称(例:sshd is down!!)を設定します。この設定はメール通知時の本文に埋め込まれます。

    • マップするチャネル:監視したいメトリクスチャネルを指定します。

    • 有効/無効:イベントを無効にすると通知動作を行いません。

    • Webhook_url:外部サーバにWebhook通知を行う場合にエンドポイントを指定します。送信されるペイロードはhttps://sensinics.atlassian.net/wiki/spaces/SP/pages/1444938034 を参照してください。

  • コンディション

    • メトリクス:監視項目のメトリクスを入力します。自動補完されるリストから選んで入力することも可能です。

      メトリクスは以下を指定可能です。

      • cpu:* CPU関連メトリクス

      • mem:* メモリ関連メトリクス

      • disk:* ディスク容量関連メトリクス

      • network: ネットワーク帯域関連メトリクス

      • service: サービス監視(プロセス監視)メトリクス

    • IF:メトリクスに対するしきい値を含む条件式を指定します。

    • THEN:条件式が成立した時のアクションを指定します。

  • 通知先メールアドレスの設定

    • コンソールから”設定”ナビゲーションをクリックして管理者ページへ移動します。

      • “アラート通知先1(2)”に通知先メールアドレスを設定します。

      • ”設定を変更”をクリックして設定を完了します。

  • 以上でイベントの設定は完了です。

 

7. エージェント監視の有効化

一通りのステップが完了したら、サーバー上で稼働するエージェント(Servwatch agent)の監視を有効化することでサーバーの死活監視を開始します。

エージェント監視の有効化は一度設定した後、サーバー追加毎に行う必要はありません。

  1. コンソールの”設定”ナビゲーションより”管理者ページ”へ移動します。

  2. “エージェント”->”切断通知”を”true”に設定します。

  3. ”設定を変更”をクリックして設定を完了します。

  4. 以上でエージェントとServwatch間のKeepalive通信が切断された場合にステップ6.で設定したメールアドレスに通知を行います。

KeepaliveはMQTTプロトコルにより行われます。ネットワーク経路上の問題で、サーバーの再起動などが発生していない状況でもアラート通知が行われる場合があります。その場合は”切断通知”を”false”に設定します。

 

8. サービス(プロセス)監視の追加

サービス監視を追加するには、監視対象サーバのエージェント設定ファイルに監視対象サービスを追加してエージェントを再起動します。

設定ファイルの場所へ移動します。

1 cd /opt/servwatch-agent/config

設定ファイルを編集します。

1 vim default.json

以下の箇所に監視したいサービス名(例:httpd)を追加します。

1 2 3 4 5 6 { "device_id":"hostname", "user_id":"U000***", "device_token":"************************", "watch_service": "httpd" // 監視したいサービスをカンマ区切りでリストします。 }

エージェントを再起動します。

1 pm2 restart servwatch_agent

これで、イベント作成時のコンディション設定でメトリクス”service:<サービス名>”を利用可能になりました。

イベントの閾値は”OK”がサービス正常・”NG”がサービス異常状態として設定可能です。

9. APIを使ってみよう

Servwatchはサーバーのメトリクス値収集にIoTプラットフォーム”ThingScale”を採用しています。

“ThingScale”のREST APIを操作することで、サーバーのバルク設定や独自システムへのメトリクス値取り込みなどが可能になります。

具体的な活用方法は以下を参照してください。