Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
俺流 システム障害の「歩き方」 ~インフラ担当者の視点から~
Search
tkhdfjnm
November 30, 2019
Technology
0
170
俺流 システム障害の「歩き方」 ~インフラ担当者の視点から~
2019-11-30 TBB 勉強会 Part.2 にて発表
2020-08-02 加筆修正して公開
これまでの業務経験で得た知見・考え方を整理して共有します
tkhdfjnm
November 30, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
【インシデント入門】サイバー攻撃を受けた現場って何してるの?
shumei_ito
0
1.4k
AWS Devops Agent ~ 自動調査とSlack統合をやってみた! ~
kubomasataka
3
330
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
130
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
2
900
Vitest Highlights in Angular
rainerhahnekamp
0
130
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
350
日本語テキストと音楽の対照学習の技術とその応用
lycorptech_jp
PRO
1
410
Tebiki Engineering Team Deck
tebiki
0
23k
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
410
DatabricksホストモデルでAIコーディング環境を構築する
databricksjapan
0
230
新規事業における「一部だけどコア」な AI精度改善の優先順位づけ
zerebom
0
450
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
190
Test your architecture with Archunit
thirion
1
2.1k
[SF Ruby Conf 2025] Rails X
palkan
0
740
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
420
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
150
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Rails Girls Zürich Keynote
gr2m
96
14k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
230
エンジニアに許された特別な時間の終わり
watany
106
230k
Building Adaptive Systems
keathley
44
2.9k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
100
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
170
Transcript
インフラ担当者の視点から @tkhdfjnm
これまでに得た知見・考え方を 整理して共有したい みんなの「歩き方」も、ぜひ教えてほしい 2019/11/30 @tkhdfjnm 2
2019/11/30 @tkhdfjnm 3
そのサービス うまく稼働・運用できていますか? うまくいっているならば不要な話 「しくじりシステム運用」 俺みたいになるな!! 2019/11/30 @tkhdfjnm
4
自分たちが提供しているサービスは どのような「システム」なのか? システム構成を把握しておく ドキュメンテーション 構成管理 (ソース管理・リリース管理)
サービスの重要度・ビジネス影響を 把握しておく (リスク管理) ユーザに保証するサービスレベルを 整理しておく (SLA) 2019/11/30 @tkhdfjnm 5
システムが今 どのように動いているのか? 何が起きたのか「わかる」ログを残そう 何をすべきか「わかる」ドキュメントを 残そう 各種メトリックを取得しておこう
サーバリソース状況 ネットワークトラフィック量 など システムの正常性を監視しよう 2019/11/30 @tkhdfjnm 6
障害対応の考え方・進め方に つながる 復旧に向けた一次対応 原因個所の特定 影響範囲の特定 復旧の優先順位づけ・トリアージ
本格対処に向けた対応 システム環境保全の要否・可否 発生時のメトリック・ログ取得の要否・可否 2019/11/30 @tkhdfjnm 7
障害が起きにくい システム構成にしような 影響範囲を小さくする・切り捨て やすいようにしておく SPoF を少なくする サービス特性やコストとの兼ね合いもある
2019/11/30 @tkhdfjnm 8
2019/11/30 @tkhdfjnm 9
こんな図よく見るよね 2019/11/30 @tkhdfjnm 10 サーバ The Internet データ ベース クライ
アント
そんなにシンプルじゃないよね 2019/11/30 @tkhdfjnm 11 The Internet DB CDN 外部連携 サービス
DNS DB 内部の別 サービス
ユーザ側 サービス側 サービス側?ユーザ側? 2019/11/30 @tkhdfjnm 12 The Internet DB CDN
外部連携 サービス DNS DB 内部の別 サービス
ユーザ側 サービス側 他社 自社?他社? 自社 2019/11/30 @tkhdfjnm 13 The Internet
DB CDN 外部連携 サービス DNS DB 内部の別 サービス
ネットワーク ネットワーク?マシン? ここではサーバ・ノード・インスタンス・ホストなどを まとめて「マシン」と呼ぶことにします 2019/11/30 @tkhdfjnm 14 The Internet
DB CDN 外部連携 サービス DNS DB 内部の別 サービス
外堀を埋めるように、ジワジワと 2019/11/30 @tkhdfjnm 15
異常の原因を切り分け・特定 = どこまでが正常なのか確認する 誰の責任範囲で発生している? = 誰の責任範囲は正常? どの機器で発生している? =
どの機器は正常? ネットワーク観点は 二分木的な正常性確認が容易 2019/11/30 @tkhdfjnm 16
プロトコル・スタック を意識する OSI 参照モデル・TCP/IP モデル 2019/11/30 @tkhdfjnm 17 L1
L2 L3 L4 L5 - L7 物理 Ethernet IP TCP/UDP HTTP/DNS etc. SSL/TLS マシン ネットワーク機器類 マシン
プロトコル・スタック を意識する OSI 参照モデル・TCP/IP モデル 2019/11/30 @tkhdfjnm 18 L1
L2 L3 L4 L5 - L7 物理 Ethernet IP TCP/UDP HTTP/DNS etc. SSL/TLS マシン ネットワーク機器類 マシン : 通信の流れ
プロトコル・スタック を意識する OSI 参照モデル・TCP/IP モデル 2019/11/30 @tkhdfjnm 19 L1
L2 L3 L4 L5 - L7 物理 Ethernet IP TCP/UDP HTTP/DNS etc. SSL/TLS マシン ネットワーク機器類 マシン ARP ping traceroute curl wget telnet nslookup host dig
まずは PING End 2 End で疎通できるか? どこまでの疎通ができるか?
グローバルには出られている? 同一セグメント内は? 2019/11/30 @tkhdfjnm 20 The Internet DB 外部 サービス DB google.com yahoo.co.jp など
とにかく PING どのネットワークから疎通できるか? 内部ネットワーク 自社ネットワーク モバイル回線
(グローバル) 2019/11/30 @tkhdfjnm 21 The Internet DB DB ス マ ホ
(´・ω・`) 最近は ICMP が途中の機器でフィルタ されていて通らなかったりする 2019/11/30 @tkhdfjnm 22
ホスト名ちゃんと引ける? nslookup host 手軽 dig
細かくオプション指定できるのでオススメ プロセスが参照している DNS リゾルバと 異なるケースもあるので注意 2019/11/30 @tkhdfjnm 23
サービスポートへの接続はできる? 途中でフィルタされていない? curl / wget URI 指定で HTTP
/ HTTPS を投げてみる telnet ポート指定でセッションを張ることができる ヘッダがプレーンテキストなプロトコルなら 手打ちでレスポンスまで確認できる 2019/11/30 @tkhdfjnm 24
ゲートウェイやルーティングは どうなっている? traceroute どういったネットワークを経由しているのか どのネットワークまで到達できているのか ICMP
で投げるタイプと UDP で投げるタイプ がある ICMP がフィルタされていると (ry 2019/11/30 @tkhdfjnm 25
同一セグメント内の IP アドレスと MAC アドレスは解決できる? ARP テーブルに対向機器いる? そもそも機器を接続したスイッチの
ポートは正しい? リンクアップしてる? 2019/11/30 @tkhdfjnm 26
パケットキャプチャ Wireshark 本番サーバで仕掛けるのは稀 ここまでやるのは稀 もはや趣味・職人技の領域だと思います
そこまで詳しくないです… 2019/11/30 @tkhdfjnm 27
2019/11/30 @tkhdfjnm 28
構成要素 (スタック) を意識する どのようなプロダクトが動いているのか? 2019/11/30 @tkhdfjnm 29 アプリ ミドル
ウェア OS マシン CPU ストレージ メモリ 電源 NIC RAID チップセット グラフィック cron init.d logrotate syslog Java VM AP サーバ スクリプト フレームワーク プログラム 運用系 ソフトウェア DB サーバ プログラム スクリプト
構成要素 (スタック) を意識する どこまでが自前なのか? 2019/11/30 @tkhdfjnm 30 アプリ ミドル
ウェア OS マシン CPU ストレージ メモリ 電源 NIC RAID チップセット グラフィック cron init.d logrotate syslog Java VM AP サーバ スクリプト フレームワーク プログラム 運用系 ソフトウェア DB サーバ プログラム スクリプト
プロセスは正しく起動している? 起動中にエラーはない? dmesg /var/log 配下のログ群を cat / less
/ head / tail messages cron ミドルウェア名のサブディレクトリ配下 2019/11/30 @tkhdfjnm 31
そもそもどのように起動している? サービス起動? rc.d / init.d (chkconfig / service)
system.d (systemctl) ジョブネット管理? cron? crontab 起動ユーザに注意 2019/11/30 @tkhdfjnm 32
現在のプロセス起動状況は? ps top /proc/<PID> 配下 environ
起動方法によって環境変数が異なったりするぞ 2019/11/30 @tkhdfjnm 33
プログラム・ファイルの状態は? md5sum / openssl など ハッシュ値 ls
ファイルサイズ パーミッション world-readable だとエラーになるケースもある cat / less 文字化け FTP で転送していた時代は稀によくあった 2019/11/30 @tkhdfjnm 34
CPU・メモリに空きはある? ロードアベレージは? 過剰占有しているプロセスはない? top vmstat free
sar ps 2019/11/30 @tkhdfjnm 35
ストレージの使用状況は? mount ストレージのマウント状況 df マウントポイントごとのストレージ使用量
du ディレクトリなどのファイルサイズ vmstat / iostat ディスク I/O キュー 2019/11/30 @tkhdfjnm 36
ネットワークの使用状況は? netstat 2019/11/30 @tkhdfjnm 37
OS 的なリソースの上限は? lsof ファイルディスクリプタ ulimit 2019/11/30 @tkhdfjnm
38
IP DHCP NTP DNS その他 疑いだしたらキリがないお… 設定ファイルが間違っていた /etc/hosts
/etc/network/ NTP サーバが全滅して時刻がズレてた プロセスがキャッシュしてた DNS サーバの IP アドレス ホスト名解決後の IP アドレス mount 叩いただけで満足してた 2019/11/30 @tkhdfjnm 39