![](https://habrastorage.org/web/d33/7a6/7a7/d337a67a7aef4ebdb44405f787f85895.png)
仮想サーバーや専用サーバーを購入した後、時間内にサービスが利用できないことに関する情報を受信すること、つまりWebサイトのメインサブシステムを監視することが重要です。
信頼性の高いWebサイトは、ユーザーが週7日簡単にアクセスできるようにする必要があるため、可用性と機能を常に確認する必要があります。
- 無料のツールを使用したウェブサイトの状態の定期的な自己チェック 。
- サイトの可用性を継続的に監視します 。最適な時間間隔です。ほとんどのユーザーは1〜2時間以内にサイトに戻ろうとしますが、より頻繁にチェックしても1時間以内に問題を迅速に修正できません。
- プロジェクトコンポーネントの監視とアプリケーションメトリックの分析 :応答率、コンポーネントエラー、サービス、データベースの応答率、インデックスなしのクエリ監視または低速クエリ。
- ウェブサイトのパフォーマンスを監視する :ページの読み込みが遅いと顧客の損失が発生する可能性がありますが、監視により問題がタイムリーに通知され、問題を迅速に排除して結果を最小限に抑えることができます。
- 問題の監視は 、可能な限りチェックで1分間隔をカバーし、ユーザーの地理に関連する考えられる問題を追跡するために、いくつかの地理的ポイントから少なくとも1分に1回の頻度で複数のサイトパラメーターを追跡することで構成されます。
可能な検証基準の中で、次の問題を区別できます。
- DNSサーバーを使用する (サイト自体は物理的にアクセス可能であるが、特定の間隔でサイトアドレスを決定できない場合)。
- 応答時間が長い (キャッシュを更新するとき、またはサーバー側で「重い」タスクを実行するとき)。
- タスクのスケジュールされた実行 (その結果、特定の時点でのみサイトを利用できなくなります);
- 静的ファイルの待機時間が長い (ネットワークインフラストラクチャや物理メディアの問題など)。
- データベースへの接続 。
現在、多くの外部サービスは、クライアント側のエラーログ(サーバー側からの適切な構成とエラーログ記録)まで、問題に関する詳細情報を提供します。 このような方法は、何らかの「フローティング」エラーをキャッチする必要がある場合に特に役立ちます。サーバー側で発生するエラーの詳細なログを有効にすると、効果的に追跡して排除できます。
週末/休日の現場作業
タスクがあります:Webサイト/サーバー/サービスは、人間の介入なしで数日間連続して動作する必要があります。 何がおかしいのでしょうか?
通常のクラッシュは時々発生します。 現在、火曜日から水曜日までの夜間の障害は、水曜日の朝にバックアップからリロードすることによって解決されます。 そして週末には、「金曜日から月曜日」のクラッシュは珍しくありません。 この場合、休暇中にサイトがどのくらいあるかは、責任のある従業員の休暇の長さに依存します。
一般的に、このサイトは良くありませんが、平日は問題はすぐに解決されます。 モニタリングを行わない場合、5月に決定にかかる時間はどれくらいですか? 数時間ではなく、数日かかることもありますが、これは珍しいことではありません。
週末が長くなる前に、主要なコードを変更しないでください。 変更が適切に機能するように、改訂されたシステムを徹底的にテストする必要があります。 Webサイトのトラフィック負荷が少なくなるまで、大きな変更は延期することをお勧めします。
通常の問題に加えて、警備員の長期不在中のサイトも他の病気を拾い上げるのが好きです。 たとえば、ドメインまたは証明書の有効期限が切れる場合があります。 または、データベースを拡張することを決定します。 または、彼はDNSBLまたはRoskomnadzorのリストに落ちるかもしれません。
DNSBLブラックリスト
重要な機能は、DNSBLブラックリスト(DNSブラックリストまたはDNSブロックリスト)のドメイン-DNSアーキテクチャシステムを使用して保存されたホストリストをチェックすることです。 一般的にスパムと戦うために使用されます。
これらのリストは独立しており、それぞれが独自のアルゴリズムに従って形成されているため、ランダムエラーの結果、そこに無害なWebサイトが表示されることもあります。 サブネットのIPアドレスは、スパマーやその他の侵入者などの悪意のある目的で使用される可能性があり、その結果、対応する構造のブラックリストでサブネット全体がブロックされる可能性があります。
これは何を脅かしていますか? あなたからの手紙は顧客に届くのをやめ、サイトは検索エンジンでより悪く表示されるようになります。 したがって、最も人気のあるブラックリストへの登録に関する制御および通知機能は非常に人気があります。
各管理者は、たとえば特定のリストにリストされているサーバーから電子メールを受信しないように、Webサーバーを構成できます。 これは、スパム、マルウェア、DDoS攻撃、およびその他の問題と戦うのに役立ちます。
antispamsniper.comやsyslab.ruなどのDNSBLオンラインブラックリストを使用すると、DNSを使用してスパムをフィルタリングし、スパムデータベースのIPアドレスにアクセスできます。
指定したIPアドレスがブラックリストにあるかどうかを確認するには、IPアドレスを入力し(現在のIPアドレスはデフォルトで指定されています)、[ 確認 ]ボタンをクリックします。
DDoS保護
利益がWebサイトの可用性に依存している場合、負荷の増加(季節販売やブラックフライデーなど)と、競合他社や攻撃の可能性があります。これは、着信要求に対するWebサイトの応答時間の増加または部分的/完全に利用できません。
技術計画
Webサイトまたはその他のリソースが構築されているサーバーソフトウェアは、定期的に更新する必要があります。
技術的な作業の計画により、エラー通知を送信しないことと、統計の特定の時間間隔でエラーを記録しないことの2つの目標を達成できます。 同時に、技術作業中のチェックは継続して行われ、定期的にログに書き込まれるため、管理者にとって有用です。ログにより、更新または再起動にかかった時間、生成されたエラー、発生した問題などを確認できます。 。
ピーク帯域幅の負荷がない場合と同様に、クライアントトラフィックの顕著な削減(削減)の間にスケジュールされた作業を実行することをお勧めします。
ドメインの有効期限とSSL証明書の監視
大企業でもドメインと証明書の更新に関する問題が発生します。 したがって、このドメインを更新する必要があるという通知(SMSまたは電子メール経由)は非常に便利です。 たとえば、 ping-admin.ruは、監視結果に関する有料の通知サービスを提供します。
ドメイン検証
nic.ruサービスを使用して、ドメインを無料で確認できます。
Whoisサービスを使用して、ドメインの有効期間を無料で確認できます 。
SSL証明書を検証する
Linuxのコマンドプロンプトから次のコマンドを実行して、opensslを使用してSSL証明書の有効性を確認します。
$ echo | openssl s_client -servername -connect : 2>/dev/null | openssl x509 -noout -dates
有効期限に加えて、SSL証明書には多くの興味深い情報が含まれています。 各SSL証明書には、発行者、発行先、有効期間などに関する情報が含まれています。
このすべてのデータは、Linuxのコマンドラインからopensslプログラムを使用して、サイトのSSL証明書から抽出できます。
SSL証明書の発行者を確認します。
$ echo | openssl s_client -servername site.com -connect site.com:443 2>/dev/null | openssl x509 -noout -issuer issuer= /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
SSL証明書の発行者を確認します。
$ echo | openssl s_client -servername site.com -connect site.com:443 2>/dev/null | openssl x509 -noout -subject subject= /CN=www.site.com
上記のすべてのSSL証明書情報を1つのコマンドで表示します。
$ echo | openssl s_client -servername site.com -connect site.com:443 2>/dev/null | openssl x509 -noout -issuer -subject -dates issuer= /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3 subject= /CN=www.site.com notBefore=Mar 18 10:55:00 2017 GMT notAfter=Jun 16 10:55:00 2017 GMT
サイト可用性監視
訪問したWebサイトを効果的に運用するには、訪問者が資料を常に入手できること、およびプロジェクト管理者がサーバー部分にアクセスして変更やその他のアクションを行う機会が必要です。
Linuxのコマンドラインからサイトの可用性を簡単に確認し、TELNETやCURLなどのコマンドを使用して、サーバーからHTTPステータスのコードを取得できます。
CURLを使用したサイトの可用性
次のコマンドを実行して、サイトの可用性を確認し、サーバーからステータスメッセージを受信します。
$ curl -Is http://www.site.com | head -1 HTTP/1.1 200 OK
ステータスコード「200 OK」は、リクエストが正常に完了し、サイトが利用可能であることを意味します。
curlがさまざまなサーバー応答を表示する方法を示す別の例を次に示します。
$ curl -Is http://site.com | head -n 1 HTTP/1.1 301 Moved Permanently
また、curlを使用して、サイト上の別のページの可用性を確認できます。次に例を示します。
$ curl -Is http://www.site.com/en/Bash-Colors | head -n 1 HTTP/1.1 200 OK
Telnetを使用したWebサイトの可用性
telnetコマンドを使用して、サイトの可用性を確認し、サーバーからステータスメッセージを受信することもできます。
$ telnet www.site.com 80 Trying 91.206.200.119... Connected to www.site.com. Escape character is '^]'. HEAD / HTTP/1.0 HOST: www.site.com < ENTER> < ENTER>
サイトが利用可能であることを示す結論は、次のようになります。
HTTP/1.1 200 OK Server: nginx/1.1.10 Date: Sun, 26 May 2017 19:29:46 GMT ***
結論として、PHPまたはPerlで稼働時間をチェックする独自のスクリプトを作成するオプションが常にあること、または通知を送信するために電報ボットを作成することができますが、ウェブサイトからの毎日の収入を計算し、監視コストと相関させることで、多くの場合、有料サービスを使用する方が安価ですPagerDutyなど 。
監視サービスのレビューを含む有用な記事: