LoginSignup
9

More than 5 years have passed since last update.

障害対応

Posted at

忘れないようにメモ

一次対応の心構え

  1. 操作ログを残す

  2. 作業は落ち着いて、冷静に、感に頼らず、事実とデータを見る。

  3. 自説にこだわらない、見切り、諦めを素早く、思い・期待通りじゃなくてもがっかりするのは後で。

  4. 担当者を責めない。判断謝りを責めない。結果を責めない。でも手抜きは絶対許さない。

  5. 水分や甘いものを摂る。

  6. 大丈夫は、大丈夫じゃないサイン

当たり前のことを、冷静にきちんとやることが大事

  1. ログ

ssh www.example.com の入出力をwww.example.com.20150920_11:10:05.logに記録する。

script -q -c "ssh www.example.com"  www.example.com.20150920_11:10:05.log

wrapper化する
ファイル名: lssh

#!/bin/bash
NOW=$(date +%Y%m%d_%H%M%S)
exec script -q -c "ssh $1" $1.$NOW.log
chmod a+x lssh
./lssh localhost

状況確認コマンド

障害発生時の状況を確認するためのコマンド

システムの稼働時間、ログインユーザ数、ロードアベレージ

w

入力結果

 17:21:04 up  9:53,  1 user,  load average: 0.06, 0.03, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
shunsuke pts/0    10.211.55.2      17:16    0.00s  0.04s  0.00s w

ネットワーク接続数、接続元、接続先、実行プロセスをPID
※実行プロセスとPIDを確認するためにはrootユーザーになる必要がある。

ssh -lnp

入力結果

State       Recv-Q Send-Q                                                          Local Address:Port                                                            Peer Address:Port 
LISTEN      0      128                                                                        :::22                                                                        :::*      users:(("sshd",1177,4))
LISTEN      0      128                                                                         *:22                                                                         *:*      users:(("sshd",1177,3))
LISTEN      0      10                                                                  127.0.0.1:25                                                                         *:*      users:(("sendmail",1830,4))
LISTEN      0      128                                                                 127.0.0.1:9050                                                                       *:*      users:(("php-fpm",1850,7),("php-fpm",1851,0),("php-fpm",1852,0),("php-fpm",1853,0),("php-fpm",1854,0),("php-fpm",1855,0))
LISTEN      0      50                                                                          *:3306                                                                       *:*      users:(("mysqld",1789,13))
LISTEN      0      128                                                                         *:6379                                                                       *:*      users:(("redis-server",1879,5))
LISTEN      0      128                                                                        :::6379                                                                      :::*      users:(("redis-server",1879,4))
LISTEN      0      128                                                                         *:80                                                                         *:*      users:(("nginx",1868,6),("nginx",1869,6),("nginx",1870,6),("nginx",1871,6),("nginx",1872,6))

起動しているプロセスの確認

ps auxf

ディスク容量を確認

df -h

CPU,利用率、メモリ利用量、CPU使用率が高いプロセスを確認

top -b -d 1 -n 1

メモリ利用量が大きいプロセスを確認

top -b -d 1 -n 1 -a

CPU使用率、ネットワーク利用量、ディスクI/O量、ページング量と推移

dstat -taf 1 10

入力結果

----system---- -------cpu0-usage--------------cpu1-usage--------------cpu2-usage--------------cpu3-usage------ --dsk/sda-----dsk/sr0-----dsk/sr1-- net/docker0---net/eth0->
  date/time   |usr sys idl wai hiq siq:usr sys idl wai hiq siq:usr sys idl wai hiq siq:usr sys idl wai hiq siq| read  writ: read  writ: read  writ| recv  send: recv  send>
23-07 17:31:56|  0   0  99   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0|8527B   10k:   4B    0 :   4B    0 |   0     0 :   0     0 >
23-07 17:31:57|  0   0 100   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0|   0     0 :   0     0 :   0     0 |   0     0 :  66B  146B>
23-07 17:31:58|  1   1  98   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0|   0     0 :   0     0 :   0     0 |   0     0 :  66B 1860B>
23-07 17:31:59|  0   0 100   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0|   0     0 :   0     0 :   0     0 |   0     0 :  66B  626B>
23-07 17:32:00|  0   0 100   0   0   0:  1   0  99   0   0   0:  0   0 100   0   0   0:  0   0 100   0   0   0|   0     0 :   0     0 :   0     0 |   0     0 :  66B  626B>

SQLプロセス確認

 mysqladmin -uroot processlist --verbose

もし原因がわからない場合は、 strace などで実行中のプロセスにアタッチも可能。

strace からプロセスを起動させるのではなく、デーモンのようにすでに実行されているプロセスの動作を strace で確認するには -p オプションを使用します

 strace -p [pid]


参考文献

  • Webエンジニアが知っておきたいインフラの基本

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9