GNU/Linux >> Linux の 問題 >  >> Cent OS

Linuxサーバーでサイトがダウンした場合のトラブルシューティング方法

はじめに

Webサーバーまたはサイトのいずれかがダウンしているときに問題が発生することがあります。問題を引き起こしている可能性のあるこの問題を特定し、問題を修正できるはずです。

この記事では、サイトに正しくアクセスできない場合に管理者が行う一般的な手順の一部であるいくつかのトラブルシューティング手順を紹介します。この手順を参照して問題を修正し、サイトを立ち上げて実行中。

前提条件

この問題を回復するには、次のものが必要です。

  • sudoユーザーによるLinuxサーバーへのアクセス。

ステップ1:サーバーのステータスを確認する

上記の手順に進む前に、まずサーバー自体にアクセスできるかどうかを確認する必要があります。サーバー自体がダウンした可能性があります。これは、pingおよびsshコマンドで確認できます

ping your_server_ip

サーバーとそのUPにpingを実行できる場合は、次のような出力が得られます

e2e@compaqlaptop:~$ ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=57 time=18.0 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=57 time=20.1 ms

64 bytes from 8.8.8.8: icmp_seq=3 ttl=57 time=21.3 ms

^C

--- 8.8.8.8 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 18.042/19.837/21.342/1.362 ms

e2e@compaqlaptop:~$ 

サーバーがダウンしている場合、pingは送信されません。サーバーコンソールにエラーがないか確認し、Myaccountを使用してサーバーを再起動できます

注:サーバーが稼働している場合でもサーバーにpingを実行できない場合があります。これは、サーバーでpingが無効になっていることが原因である可能性があります

また、SSHでサーバーにログインして、サーバーが正常に稼働しているかどうかを確認できる必要があります。以下のコマンドを使用して、ssh経由でサーバーにアクセスできます

ssh [email protected]

サーバーにログインできない場合は、サーバーがダウンしているかハング状態になっている可能性があります。サーバーコンソールにエラーがないか確認し、Myaccountを介してサーバーを再起動してください

ステップ2:サーバーの監視

プロセッサの負荷やメモリの消費量が多いと、サーバーが応答しなくなる可能性があります。Zabbixを介してE2Eサーバーを監視する方法については、この記事を参照してください

サーバーリソースの使用率の異常を特定したら、それに応じて問題を防ぐために必要なアクションを実行できます。

ステップ3:ログを確認する

問題を追跡する前に、まずWebサーバーと関連コンポーネントのログを確認する必要があります。 エラーが見つかった場合 アクセスのログまたは疑わしいログ ログ、問題を正確に特定できるようになります。

ログは通常、ディレクトリ / var / logにあります。 。 UbuntuサーバーでApacheサーバーを実行している場合、デフォルトではログは / var / log / apache2に保持されます。 。このディレクトリ内のファイルをチェックして、生成されているエラーメッセージの種類を確認します。デフォルトでApacheをhttpdとして参照するディストリビューションを使用している場合、ログは

に保持されます。

/var/log/httpd.log

NginxをWebサーバーとして使用している場合、ログは通常、以下の場所にあります

/var/log/nginx/access.log
/var/log/nginx/error.log
/var/log/nginx/nginx_error.log
/var/log/nginx/access_error.log

このディレクトリ内のファイルをチェックして、生成されているエラーメッセージの種類を確認します。または、ログの手動パスを構成している場合は、Webサーバー構成ファイルを確認することもできます。

サーバーから生成された最新のログを確認するには、 tailの下で実行できます。 以下の例に示すようなコマンド

tail -f /var/log/nginx/access.log
tail -f /var/log/httpd.log

少ないで表示することもできます 以下のように完全なログを表示するコマンド、以下のコマンドであなたのようにログファイルのパスを変更してください。

less /var/log/nginx/access.log

ログで問題を特定すると、問題を簡単に検出して、問題を修正することができます。

ステップ4:Webサーバーが実行されていることを確認します

サービスが正常に稼働しているかどうかを確認できます。サービスが稼働しているかどうかを確認する1つの方法は、以下の共有コマンドで確認することです。

ステータスを使用する サービスが稼働しているかどうかを確認するコマンド。サービスが稼働していない場合は、以下の開始で開始できます。 コマンド

ApacheをApache2として参照するディストリビューションを使用している場合、apache2機能を使用するためのコマンドは次のとおりです

service apache2 start
service apache2 stop
service apache2 restart
service apache2 reload
service apache2 status

Apacheをhttpdとして参照するディストリビューションを使用している場合、コマンドは次のとおりです。

service httpd start
service httpd stop
service httpd restart
service httpd reload
service httpd status

Nginx機能を使用するためのコマンドは次のとおりです

service nginx start
service nginx stop
service nginx restart
service nginx reload
service nginx status

ステップ5:Webサーバーの構文を確認する

Webサーバーが起動しない場合は、構成ファイルに問題がある可能性があることを意味します。

ApacheとNginxの両方で、ファイルを読み取るために正しいディレクティブ構文が必要です。構成ファイルは次のように配置されています

Apacheのデフォルトの構成ディレクトリは

です。

DebianおよびUbuntuディストリビューション:/ etc / apache2 /
Fedora、CentOSディストリビューション:/ etc / httpd /

Nginxの構成ディレクトリは

です

/ etc / nginx /

これらの各Webサーバーには、ファイルの構成構文を確認する機能もあります。サーバーを再起動せずにApache構成ファイルの構文を確認するには、DebianおよびUbuntuシステムで次のコマンドを実行できます

>
apache2ctl -t
httpd -t

Nginxの構成構文を確認するには、以下のコマンドを使用します

nginx -t

上記のコマンドを実行すると、 Syntax OKのようなメッセージが表示されます。 またはテストは成功しました 、これは、Webサーバーの構成にエラーがないことを意味します。「テストに失敗しました」などのメッセージが表示された場合は、構成ファイルに無効な引数があり、編集する必要があります。

ステップ6:データベースのバックエンドは正常に実行されていますか

MySQL、PostreSQL、MongoDBなどのデータベースバックエンドに接続するようにサイトを構成している場合は、サイトが稼働していることを確認する必要があります。これは、Webサーバーを確認したときに実行できます。

以下のコマンドを実行して、データベースがMySQL/Mongodのどちらを実行しているかを確認します。

service mysql status
service mysqld status
service mongod status

または、以下のnetstatコマンドで確認することもできます

netstat -ntlp | grep mysql

MySQLが稼働している場合は、次のような出力が表示されます。

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3356 / mysqld

ステップ7:Web/Appサーバーが接続できるかどうかを確認しますデータベースバックエンドへ

Webサーバーとデータベースサーバーが正常に稼働している場合でも、アプリケーションがデータベースに正常に接続できないため、接続に問題が発生する場合があります。

たとえば、WordPressサイトでは、データベース接続設定はwp-config.phpファイルにある構成でテストできます。サイトをデータベースに接続するには、DB_NAME、DB_USER、およびDB_PASSWORDが正しいことを確認する必要があります。

以下のコマンドで適切な値を変更してデータベースに手動で接続しようとすると、ファイルに正しい情報が含まれているかどうかをテストできます

mysql -hDB_Host -uDB_USER -pDB_PASSWORD 

ステップ8:ポートが開いていることを確認します

すべての構成と接続が正しい場合でも、構成されたポートにアクセスできる必要があるため、サイトにアクセスできない場合があります。Webサーバーは通常のWebトラフィックにはポート80で実行され、SSLで暗号化されたトラフィックにはポート443を使用します。

設定されたポートが開いているかどうかは、telnetコマンドで確認できます

telnet your_server_ip 80
telnet your_server_ip 443

ポートが開いている場合は、次のような出力が得られます

e2e @ compaqlaptop:〜$ telnet xx.xx.xx.xx 80
xx.xx.xx.xxを試してみます…
xx.xx.xx.xxに接続しました。
エスケープ文字は「^]」です。

App/Webサーバーがバックエンドのデータベースポートに接続できるかどうかを確認することもできます。MySQLサーバーはデフォルトでポート3306で実行されます

telnet your_database_server_ip 3306

Webポートまたはデータベースポートにアクセスできない場合は、ファイアウォールの構成を確認する必要があります。ポート80、ポート443、またはポート3306をそれぞれ開く必要がある場合があります。

ステップ9:DNS設定の確認

また、ドメインがサーバーIPを正しく指していることを確認する必要があります。ドメイン名ではなくIPを使用してサイトにアクセスできる場合は、DNS設定を確認する必要があります。

以下のdigを使用して、サイトが適切なIPを指しているかどうかを確認できます。 コマンド

dig A example.com +short

以下のような出力が得られます

e2e @ compaqlaptop:〜$ dig A example.com + short
xx.xx.xx.xx
e2e @ compaqlaptop:〜$

それとは別に、Apache仮想ホストファイルまたはNginxサーバーブロックファイルをチェックして、ドメインのリクエストに応答するように構成されていることを確認します。

結論

上記のトラブルシューティングのヒントが、管理者がサイトを稼働させようとするときに直面する一般的な問題のいくつかを追跡して修正するのに役立つことを願っています。上記の手順で問題が発生した場合は、遠慮なく話し合ってください。コメントでそれらを。


Cent OS
  1. Linuxサーバーでサイトがダウンした場合のトラブルシューティング方法

  2. Linuxサーバーを監視する方法は?

  3. LinuxサーバーにDockerを使用してNextcloudをインストールする方法

  1. LinuxサーバーでIPアドレスをブロックする方法

  2. Linuxサーバーでサイトがダウンした場合のトラブルシューティング方法

  3. LinuxVPSサーバーのパフォーマンスを測定する方法

  1. osqueryを使用してLinuxサーバーを監視する方法

  2. ヘッドレスLinuxサーバーにデスクトップ環境をインストールする方法

  3. OpenSSHを使用してLinuxサーバーに接続する方法