Linuxのトラブルシューティング
6021 ワード
初めに!
Linuxは長い間、ほとんどのウェブがLinux上で動作しています.Linuxはどこにでもありますが、Linuxサーバのトラブルシューティングの際に学ぶべきことがたくさんあります.私が顧客のためにテクニカルサポートをしていたとき、私が使用したコマンドのいくつかを見ましょう.
コマンド
NETCAT / NC
お客様はよく私のドメインは、特定のポートを言うに取り組んでいない、またはお客様は、ポート上のアプリケーションをホストする必要がありますが、それは動作していないと言う
$ sudo nc --verbose google.com 443
Ncat: Connected to 216.58.203.14:443.
Ncat: 0 bytes sent, 0 bytes received in 0.10 seconds.
--verbose Verbose output
-z Zero-I/O mode, report connection status only
SS
manページから(私もこれを知りませんでした)
ss - another utility to investigate sockets
, あなたがポート上で実行しているアプリケーションを持っていると言う9001
どのように、それが実際に接続を聞いているかどうか、そして、それがすべてのインターフェース(0.0.0.0)で聞いているかどうか、あなたは知っていますか?ss
あなたはそれを把握するのに役立ちます.ss -patun | grep -w 9001
tcp LISTEN 0 4096 *:9001 *:* users:(("rootlessport",pid=691027,fd=11))
このコマンドがわかるようにProtocol
,それが聞いているかどうか、インタフェース*9001
は、プロセスID ( PID )とファイルディスクリプタ( fd )とともにそれを使用しているアプリケーションでもあります.頂上
これまでの顧客サーバーやサーバーのメモリからなくなっていた何も理由を特定することができますか?デフォルトでは、Linuxサーバはプロセスのどんな履歴も保存しません.
vmstat , pidstat , iostat .
vmstatすべての仮想メモリの統計情報が表示されます
VMSTAToutput details
vmstat -w -S M 1 9
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu--------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 3545 5650 121 3052 0 0 69 183 61 216 22 9 68 0 0
0 0 3545 5649 121 3052 0 0 0 1556 1466 4690 2 2 96 0 0
0 0 3545 5649 121 3053 0 0 0 108 1160 4263 1 1 98 0 0
0 0 3545 5649 121 3052 0 0 0 68 1584 5925 2 1 96 0 0
0 0 3545 5648 121 3052 0 0 0 20 1213 4872 1 1 98 0 0
0 0 3545 5649 121 3052 0 0 0 0 995 4079 1 1 99 0 0
1 0 3545 5650 121 3052 0 0 0 88 1465 5533 2 1 97 0 0
0 0 3545 5650 121 3052 0 0 0 0 1290 5131 1 1 98 0 0
0 0 3545 5650 121 3052 0 0 0 96 1855 6303 2 2 96 0 0
そこにiostat
それはあなたにI/Oプレッシャーとキャッシュに関する詳細を与えますavg-cpu: %user %nice %system %iowait %steal %idle
22.3% 0.0% 9.2% 0.1% 0.0% 68.4%
tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd Device
7.09 29.8k 143.2k 0.0k 5.4G 26.1G 0.0k sda
1.74 33.9k 25.6k 0.0k 6.2G 4.7G 0.0k sdb
詳細here それから
pidstat
どのプロセスが多くのメモリとCPUを取っているかなどのプロセス統計を与えるMore Details このようなツールはたくさんあります
sysstat
パッケージNetflixによる本当に良い記事は、それを読みますhere
システムジャーナルを正しく使用すると、頭痛の多くを保存します.
私が使用するジャーナルコマンド
journalctl --since=today -g oom
これは基本的にキーワードのためにジャーナルgrepをするでしょうoom
これ以上journalctl | grep
お願いします.journalctl -t httpd.service --since=today
これはhttpdサービスについての詳細を説明します.ディスク領域のチェック
これはしばしば、ディスクスペースをチェックする最も速い方法
$ df -Th
それだけではない.ディスクを占有しているファイルを見つける必要がありますか?問題ありません.
$ sudo du -ach / | awk '$1 ~/[G]/ {print}'
これはGBにあるファイルを印刷するでしょう.また、ファイルを見つけるためにfindを使うこともできます.トップ
一番上のコマンドを起動することによって、サーバー負荷をチェックする最も簡単な方法は、トップトラブルシューティングがLinuxトラブルシューティングの重要なツールです.
サーバーポートの使用状況のチェック。
あなたがランダムなポートに気づき、どのプロセスがそれを占領しているかを知りたいなら、ファイルのリストを開いて、単に実行してください.
lsof -i :9001
解像度のチェック
DNSは、サーバーとドメインに関して最も重要なことです.
dig a domain.com
;; ANSWER SECTION:
google.com. 188 IN A 142.250.76.206
あなたのDNS解決が働いているならば、あなたに話しますどれくらいのメモリが残っているかチェックする
The
free
コマンドはメモリ使用量をチェックするために使われるfree -h
total used free shared buff/cache available
Mem: 15Gi 7.2Gi 4.5Gi 1.5Gi 3.6Gi 6.2Gi
Swap: 10Gi 3.4Gi 7.4Gi
それはすべて、おそらく私が使用するいくつかのより多くのコマンドが、私はそれらを覚えている場合は私はあなたが知っているようになります.場合は、私とチャットしたり、ディスカッションをしたい場合は常に利用可能です
Reference
この問題について(Linuxのトラブルシューティング), 我々は、より多くの情報をここで見つけました https://dev.to/kcdchennai/linux-troubleshooting-a-simple-primer-26mbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol