Slide 1

Slide 1 text

KYT の話 May 24, 2018 #ssmjp Hideaki Tanabe (@arctanx93)

Slide 2

Slide 2 text

最初に • 本プレゼン内容は、私の生涯(の一部)で得た経験や知識 が元になっていますが、特定の企業や団体等の意見を代 表するものではありません • 参考文献/引用元等の文言は、プレゼン資料向けに要約 等、手直ししている場合もあります • ケーススタディは説明用ですので、「そもそも、この設 定はダメ」「そもそも、こんなコマンドは打たない」等 の御指摘は(その通りかも知れませんが)ご容赦ください • 撮影画像のツイート/公開はご遠慮ください 2

Slide 3

Slide 3 text

自己紹介 • 田辺 英昭 (Hideaki Tanabe) • 1960年代末期に生まれる • 学生時代はいろいろプログラミングとかやっていました ➢ gzip (作者へのバグレポートやローカライズ(日本語対応)) ➢ LHtouch (フリーソフト) 等 ➢ ベクターのサイトにもあります • 2011年に ssmjp 初参加(#22) 3

Slide 4

Slide 4 text

今日のアジェンダ • KYT とは • 運用の観点で KYT をやってみる • ケーススタディ • まとめ 4

Slide 5

Slide 5 text

KYT とは • 危険予知訓練 (きけんよちくんれん) は、工事や製造な どの作業に従事する作業者が、事故や災害を未然に防 ぐことを目的に、その作業に潜む危険を予想し、指摘 しあう訓練である。 • ローマ字による表記 Kiken Yochi Training の頭文字を とって KYT (ケーワイティー)、あるいは KY 訓練/KY 活動(KYK)とも呼ぶ。 Wikipedia より (https://ja.wikipedia.org/wiki/危険予知訓練) 5 労働安全衛生法で職長・作業指揮・監督者は職長教育の受講が 義務付けられており、その中に危険予知訓練も含まれている

Slide 6

Slide 6 text

KYT とは 1. イラストシートを提示し、どんな危 険が潜んでいるか、意見を出し合う 2. 問題のある重要な危険性を絞り込む 3. 「あなたならどうする」を考えて意 見を出し合う 4. 「私たちはこうする」を絞り込む 5. 実際に現場で確認する指差し呼称項 目を唱和する 厚生労働省サイトより (http://anzeninfo.mhlw.go.jp/yougo/yougo40_1.html) 6

Slide 7

Slide 7 text

KYT とは ◆危険の例: • 踏み台が手すりに近く、腰の位置が 高いので、降りようとしてよろけた とき、手すりを超えて落ちる • 顔を近づけてペーパーがけしている ので、風で粉が飛び散り、目に入る ◆対策の例: • 踏み台を壁側に寄せる • 風上で作業をする 7 厚生労働省サイトより (http://anzeninfo.mhlw.go.jp/yougo/yougo40_1.html)

Slide 8

Slide 8 text

KYT とは • 他にも JAF Mate 誌の「危険予知」のコーナーでは、 自動車の運転席から見た視界の写真を題材に、数秒後に どのような事故に繋がりかねない危険を予知できるか、 訓練できる (http://jafmate.jp/jmp/prediction_of_risks/) 8

Slide 9

Slide 9 text

運用の観点で KYT をやってみる IT の現場でも • オペミスや人為トラブルの防止 • 手順書のレビュー精度の向上 • 自動化の際のチェック処理 等の観点で、運用やオペレーションにも KYT が役立つ かも知れない!! というか、普通にやっているかも? 9

Slide 10

Slide 10 text

運用の観点で KYT をやってみる • ケーススタディを使って、オペミス等の危険を予知でき るか考えてみます • オペミスシナリオや対策についてはいろいろな考え方が あるので、正解を示しているわけではなく、あくまで一 例です • 今時の(?)オペレーションの現場では、現実感の無い ケースばかりかも知れませんが、ご容赦ください 10

Slide 11

Slide 11 text

ケーススタディ 1 • Web サーバの設定にあたり、BASIC 認証の設定を別 のディレクトリにもコピーしようとして、以下の操作 を行いました # cd △ /www2/dir2 # cp △ /www1/.htaccess △ /www1/.htpasswd △ . 11

Slide 12

Slide 12 text

ケーススタディ 1:危険予知 • Web サーバの設定にあたり、BASIC 認証の設定を別 のディレクトリにもコピーしようとして、以下の操作 を行いました # cd △ /www2/dir2 # cp △ /www1/.htaccess △ /www1/.htpasswd △ . 12 どこが危険工程で、 何が起こりうるのか?

Slide 13

Slide 13 text

ケーススタディ 1:オペミスシナリオ例 # cd △ /www2/dir2 # cp △ /www1/.htaccess △ /www1/.htpasswd△ . ここのドットを打ちそこなうと、 /www1/.htpasswd が /www1/.htaccess で 上書きされて、内容が消失してしまう 13 あなたならどうする/他に何が起こり得たか

Slide 14

Slide 14 text

ケーススタディ 1:対策例(諸説あります) • Enter 押す前に確認する • コピー先はドットではなく、フルパスで記述する • ファイルのバックアップを事前に取る • cp に –i をつける ➢もし .htaccess と .htpasswd が逆なら、.htaccess の内容が消失して、設定次第では Web サイトが表示 されなくなってしまったかも知れない 14

Slide 15

Slide 15 text

ケーススタディ 2 • 多数のサーバの cron 設定を、一人で一晩で変更するこ とになりました # crontab △ –e で crontab を編集 15

Slide 16

Slide 16 text

ケーススタディ 2:危険予知 • 多数のサーバの cron 設定を、一人で一晩で変更するこ とになりました # crontab △ –e で crontab を編集 16 どこが危険工程で、 何が起こりうるのか?

Slide 17

Slide 17 text

ケーススタディ 2:オペミスシナリオ例 # crontab △ –e で crontab を編集 17 (夜間の繰り返し作業で集中力が途切れて) “e” の隣の “r” をタイプしてしまうと、 cron の設定が削除されてしまう あなたならどうする/他に何が起こり得たか

Slide 18

Slide 18 text

ケーススタディ 2:対策例(諸説あります) • Enter 押す前に確認する • crontab △ –l でバックアップを事前に取る • 一人で一晩でやろうと思わずに、作業スケジュールや 作業体制を見直す • 作業対象サーバ台数が多いなら、スクリプト化や自動 化をする 18 ケーススタディ 1 と比べた場合、タイプミスである点は 同じだが、それに至った経緯が異なるため、対策案も変 わりうるということに注目したい

Slide 19

Slide 19 text

ケーススタディ 3 • 普段あまりサーバに直接ログインしない Web サイトの 担当者が、コンテンツのバックアップを取るために、 シェルからコマンドを打つことになりました # tar △ cvzf △ html.tar.gz △ *.html 19

Slide 20

Slide 20 text

ケーススタディ 3:危険予知 • 普段あまりサーバに直接ログインしない Web サイトの 担当者が、コンテンツのバックアップを取るために、 シェルからコマンドを打つことになりました # tar △ cvzf △ html.tar.gz △ *.html 20 どこが危険工程で、 何が起こりうるのか?

Slide 21

Slide 21 text

ケーススタディ 3:オペミスシナリオ例 # tar △ cvzf △ *.html 21 html.tar.gz を指定し忘れると 何が起こるでしょう?

Slide 22

Slide 22 text

ケーススタディ 3:オペミスシナリオ例 # tar △ cvzf △ *.html 22 html.tar.gz を指定し忘れると、”*.html” に マッチする最初の HTML ファイルがアーカイ ブファイルと見なされて、破壊されてしまう あなたならどうする/他に何が起こり得たか

Slide 23

Slide 23 text

ケーススタディ 3:対策例(諸説あります) • Enter 押す前に確認する • 作業用ディレクトリにコピーしてから固める • 別の慣れた人にやってもらった方がよかったかも? • 慣れない人がやるなら手順書化した方がよかったかも? 23

Slide 24

Slide 24 text

ケーススタディ 4:危険予知 • hostname コマンドでホストの FQDN を確認 24

Slide 25

Slide 25 text

ケーススタディ 4:オペミスシナリオ例 • hostname コマンドでホストの FQDN を確認 ➢hostname △ –f の “-” が抜けて、ホスト名が “f” に設 定されてしまう 25

Slide 26

Slide 26 text

ケーススタディ 4:対策例 • hostname コマンドでホストの FQDN を確認 ➢hostname △ –f の “-” が抜けて、ホスト名が “f” に設 定されてしまう ✓uname △ –n 等で代替する 26

Slide 27

Slide 27 text

ケーススタディ 5:危険予知 • kill △ -9 でプロセスを kill 27

Slide 28

Slide 28 text

ケーススタディ 5:オペミスシナリオ例 • kill △ -9 でプロセスを kill ➢“-” が抜けて、PID 9 のプロセスを kill 28

Slide 29

Slide 29 text

ケーススタディ 5:対策例 • kill △ -9 でプロセスを kill ➢“-” が抜けて、PID 9 のプロセスを kill ✓kill △ -KILL あるいは pkill 等で代替する 29

Slide 30

Slide 30 text

ケーススタディ 6:危険予知 • tar △ xvzf △ html.tar.gz 30

Slide 31

Slide 31 text

ケーススタディ 6:オペミスシナリオ例 • tar △ xvzf △ html.tar.gz ➢サイズを確認せずに展開して filesystem full ◆これをオペミスと呼ぶかどうかは定義次第かも知れま せんが、避けなければならない状況には違いないで しょう 31

Slide 32

Slide 32 text

ケーススタディ:考察 • 今回はサーバ系のしかもコマンドミスばかり題材にし ましたが、他にも危険工程は(きっと)あります • 例えば、データセンタでのサーバ機器の設置/配線の ような物理的工事であれば、通信断やサービス断に繋 がるような危険もありうるでしょう • ある意味、経験者の持つ「あるある」に由来する危険 予知能力を未経験者に水平展開する営み(属人化防止) とも言えるでしょう 32

Slide 33

Slide 33 text

まとめ • KYT を通じて、いわゆる「危険工程」に対する「嗅覚」 を磨くことで、オペミスやトラブルを少しでも未然に防 げるようになれる(といいな) • 実際に失敗したり、ヒヤリハットを起こすことで個人の 経験値は増すとしても、暗黙知⇒形式知⇒共有知にしな いと、運用チームとしてはモッタイナイ • KYT を通じて立案した対策は、手順書/自動化品質の向 上にも役立つ可能性がある • 手順書/ドキュメント重要 33

Slide 34

Slide 34 text

ありがとうございました 34