始めましょう
Servwatchで、サーバー監視をシンプルにスタートしましょう!
ここでは、監視対象サーバーをServwatchへ追加して、メトリクス値の閲覧とアラート通知を受け取るまでの手順を説明します。
画面サンプルはアップデートにより差分が発生する場合があります。その場合は、テキストを参考に操作してください。
プラン
Servwatchは、開発者向けの無料プランと月額サブスクリプションのProプランを提供しています。
無料プランは個人開発者向けです。ビジネスでご利用の場合は、Proサブスクリプションをご購入ください。
Plans | Servers | Metrics storage | 商用利用 |
|---|---|---|---|
Developer Plan | 最大 3 servers | Minimum storage | NO |
Pro Plan | 最大 40 servers | Upgrade storage | OK |
用語集
Servwatchでは以下の用語を使用します。
デバイス:監視対象サーバーを表します。ServwatchからはデバイスIDとしてサーバーのホスト名を認識します。エージェント:監視対象サーバー上で動作するエージェントプログラムです。MQTTプロトコルでServwatchクラウドと通信を行います。メトリクス:サーバーからエージェント経由で送信されるメトリック値(CPU負荷やサービス状態など)です。イベント:メトリクスにしきい値を設定してアラート通知する機能です。Servwatchが収集する全てのメトリクス値にイベントを設定可能です。
1.コンソールにログイン
オンラインサインアップ時にemailに記載されたアカウント情報で管理コンソールにログインします。
こちらからログイン: Servwatch Console
コンソールには、サーバー全体の可用性とアラートの概要が表示されます。
Availability(可用性): 登録済みサーバーのエージェントステータスが正常な場合、可用性は 100% になります。エージェントがダウンしている場合、全体の可用性は低下します。個々のサーバーを無効にすると、そのサーバーは可用性の計算から除外されます。
Metrics Store: メトリクスを保存するためのストレージ容量を示します。このストレージ容量が 100% に近づくと古いデータが削除されるため、常に 100% に近い状態が維持されます。
Connected: エージェントと servwatch 間のハートビートステータス。これは MQTT を介した永続的なセッションであり、エージェントのダウンとアップをタイムラグなしで検出します。現在接続中のサーバーと登録済みサーバーの比率が表示されます。
Alert: 定義済みのイベント発生状態。イベントはメトリクスに関連付けられ、メールまたは Slack で通知されます。
2. 新規デバイスの作成
Servwatchではサーバーを"デバイス"として管理します。
コンソールから"サーバー"->"新規サーバー登録" をクリックして作成ページへ移動します。
"Automatic deploy(通常はこちらを選択)”の手順に従い、エージェントのデプロイを実行します。
エージェントをインストールする前に、サーバーがsystemctlをサポートしていることを確認してください。詳しくはエージェントのデプロイの手順に従います。
監視対象サーバーのターミナルに、スクリプト文字列をroot権限にて実行します。ホスト名は自動設定されますが、手動設定したい場合は赤色の部分を変更して実行してください。
ホスト名を自動設定する場合(通常はこちらを選択してください)
sudo curl -fsSL https://m.servwatch.net/agent/setup_servwatch_agent.sh | SERVWATCH_USERID='****' SERVWATCH_DEVICETOKEN='****' shホスト名を手動設定する場合
sudo curl -fsSL https://m.servwatch.net/agent/setup_servwatch_agent.sh | SERVWATCH_USERID='****' SERVWATCH_DEVICEID='<SET_YOUR_HOSTNAME>' SERVWATCH_DEVICETOKEN='****' sh
ホスト名には.*~/などの記号を含めないでください。
サーバー管理ページに戻りエージェントの状態が
OKまたはUPになっていれば正常に登録されています。約3分後にメトリクスストアにメトリクス値(サーバーのリソース監視値やプロセス監視値)が蓄積されていきます。
3. メトリクスを確認する
コンソールから"メトリクス"をクリックするとメトリクスページへ移動します。
タブを切り替えることで、テーブル形式およびグラフでメトリクスを確認できます。
CPU負荷(%)
メモリ(used/total bytes)
ディスク使用率(used%)
ネットワークI/O(tx/rx bytes per sec)
Metrics: メトリクスを見たいサーバを選択Range: 任意時間を指定Reset: 表示間隔をリセット(1hour / 6hour / 12hour / 1day)
4. イベント(アラート)の追加
以上で監視対象サーバーをServwatchへ追加してメトリクスが収集可能になりました。
メトリクス値にしきい値を設定してアラート通知するには、イベントを作成します。
コンソールから"イベント→"新規登録"をクリックしてイベント作成ページへ移動します。
以下を設定します。
設定
Description:イベントの名称(例:sshd is down!!)を設定します。この設定はメール通知時の本文に埋め込まれます。Metric:監視したいサーバを指定します。Enabled:イベントを無効にすると通知動作を行いません。
コンディション
Metrics:監視項目のメトリクスを入力します。自動補完されるリストから選んで入力することも可能です。メトリクスは以下を指定可能です。
cpu:*CPU関連メトリクスmem:*メモリ関連メトリクスdisk:*ディスク容量関連メトリクスnetwork:ネットワーク帯域関連メトリクスservice:サービス監視(プロセス監視)メトリクス
IF:メトリクスに対するしきい値を含む条件式を指定します。THEN:条件式が成立した時のアクションを指定します。
通知先メールアドレスの設定
コンソールから”設定”ナビゲーションをクリックして管理者ページへ移動します。
Alert notification destination 1に通知先メールアドレスを設定します。追加したいアドレスはAlert notification destination 2に追加してください。“Slack webhook URL”にSlack incoming webhookアプリのURLを設定します。
Slack Webhook の設定については、次のドキュメントを参照してください。https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks/
”設定を変更”をクリックして設定を完了します。
サンプルのSlack通知は以下のようになります。
Slack通知
5. エージェント監視の有効化
一通りのステップが完了したら、サーバー上で稼働するエージェント(Servwatch agent)の監視を有効化することでサーバーの死活監視を開始します。
エージェント監視の有効化は一度設定した後、サーバー追加毎に行う必要はありません。
コンソールの”Settings”ナビゲーションより”Settings”へ移動します。
“Others”->”Agent settings”->
Dead Notificationをtrueに設定します。エージェント監視を有効化”Save”をクリックして設定を完了します。
以上でエージェントとServwatch間のKeepalive通信が切断された場合にステップ6.で設定したメールアドレスに通知を行います。
KeepaliveはMQTTプロトコルにより行われます。ネットワーク経路上の問題で、サーバーの再起動などが発生していない状況でもアラート通知が行われる場合があります。その場合は”切断通知”を”false”に設定します。
エージェント監視の通知はEメール・Slackに通知されます。(設定されている場合)
以下のステップでエージェント監視通知のテストを行います:
systemctl stop servwatchでエージェントを停止します。systemctl start servwatchでエージェントを再開します。通知を確認します。(eg. Slack)
エージェント監視通知(Slack)
6. サービス(プロセス)監視の追加
サービス監視を追加するには、監視対象サーバのエージェント設定ファイルに監視対象サービスを追加してエージェントを再起動します。
設定ファイルの場所へ移動します。
cd /opt/servwatch-agent/config設定ファイルを編集します。
vim default.json以下の箇所に監視したいサービス名(例:httpd)を追加します。
{
"device_id":"hostname",
"user_id":"U000***",
"device_token":"************************",
"watch_service": "httpd,postfix", // 監視したいサービスをカンマ区切りでリストします。
"iface": "enp1s0",
"mount": "/"
}エージェントを再起動します。
systemctl restart servwatch
イベント作成時の条件設定で、メトリック”service:<サービス名>”が利用できるようになりました。イベントのしきい値は、運用状態の場合は「OK」、重大状態の場合は「NG」に設定できます。
コンソールから”Events”→”Create new event”をクリックし、イベント作成ページに移動します。
設定が完了したら、”Create”ボタンをクリックします。以下は、
service:httpdとして httpd サービスモニターを追加する例です。Description: イベント名。Slack の通知に表示されるので、慎重に記入してください。Metrics: 前の手順で設定したサービス名を指定します。この場合は、service:httpdと設定します。IF: アラートを発動する条件を指定します。プロセスがダウンしている場合はNG、稼働している場合はOKを指定します。THEN: アラートの通知先を指定します。email: Eメールに通知
slack: Slackに通知
both: 両方に通知
サンプルのSlack通知です:
7. APIを使ってみよう
Servwatchは、業務効率化のためのREST APIを提供しています。
APIを操作することで、サーバーの一括設定や、メトリック値の既存システムへのインポートが可能です。
具体的な使い方については、以下をご参照ください。