社内SEの業務を乱すシステム障害は何故起きるのか? | 情シスあるある

先日「社内SEを悩ますトラブル対応。システム障害にはどのように対処するのか」で紹介したトラブル(システム障害)について、原因と対処方法について解説します。

トラブルが起きる原因は?

トラブルが起きる要因には様々ありますが、大別すると下記の通りです。

  1. インフラ/ソフト(サービス)の障害
  2. ベンダおよび情シス部員の作業ミス
  3. エンドユーザのオペミス

それぞれについて詳細に解説します。

根本原因が分からないクラウドの障害

1は、どんどん多くなってきています。
本当はハードウェア障害とかアップデートのミスとかあるんでしょうが、
クラウドだとさっぱりわかりません。

予兆も無くいきなり障害が起きて、何もすることができず、予兆もなく復旧します

クラウド特有の不具合原因には下記があります。

  • マルチテナントにしている場合に他社の高負荷に引きづられる
  • サービスのアップデートに失敗している
  • サービスのアップデートと自社のサービスがうまく連携できなくなる

クラウドは自社の事をone of themとしか考えませんから、注意が必要です。

ベンダや情シスの作業?ミス

作業ミスと書いてしまうと、ただのオペミスですが、
作業前段階の認識ズレによって障害に繋がることがあります。

  1. テスト環境と本番環境に相違がある
  2. 本番環境のシステム監視を認識していない
  3. 引き継ぎがされておらず、手順が完璧でない

1はかなりあります。考え方によっては2も同じですが、システムテストをする範囲が、メンテナンス対象のシステムのみになっていて、周辺に注意が払われていない事が要因ですね。

3は前任者に「ベンダのマニュアル見ればわかるから!」と言われてやったら、
自社特有の手順が抜けていてとんでもないトラブルにあうという「情シスあるある」です。

エンドユーザーにサルがいる事が前提

オペミスで障害?と書くと、バグだろうとおもう人もいるかもしれませんが、

極論言うとエンドユーザーがシステムを攻撃するんです。具体的な手口は…

  1. フォーマットが異なるCSVファイルを大量にシステムに読ませる
  2. 重たい検索処理を連打する
  3. 勝手にVBAマクロを組んで直接データベースにアクセスする

です。

1はフォーマットエラーでDBに取り込みませんが、

xxx.csvのL1の読み込みに失敗しました。型が一致しません。

みたいなログを監視→メール通知していると、件数分(数万件)エラーメールが飛んできて、
メールシステムがダウンした事がありました。

2は想像がつくと思いますが、せっかちなユーザはちょっと重たい検索かけて処理が帰ってこないと、アプリケーション閉じて、ログインして、検索かけるみたいなことを平気でやります。

サル

3は情シス部も悪いんですが、システム構築の段階でエンドユーザの担当者がRDBのユーザ情報を知っちゃってるんですね。
それでAccessとかマクロを組んで、勝手にテーブルロックとかするんですよ。

それ知らずにアプリケーションのログ調べても何にもやってないので、もうハッキングですよね。

トラブルとの上手な付き合い方

情シス部門にとってトラブルは日常茶飯事ですが、どう付き合っていけばよいか私なりの考えを書きます。

まず大事なことはトラブルはゼロにはならないということです。起きる前提で起きた時の準備をしておくことが大事です。

チーム体制の確立

トラブルが起きると時間との戦いになります。
意外と大変なのが、「誰が何をするかを決めること」です。

規模や得意分野に依って必要とする役割は変わりますが、
予め下記のような体制を「デフォルト」と決めておくと対処が早くできます。

  • 上司報告、ユーザ周知:Aさん(文章力が高い人)
  • 事象把握;Bさん(フットワークが軽い人)
  • ベンダ連絡、原因究明:Cさん(テクニカルスキルが高い人)

ユーザ周知のテンプレート化

ユーザ周知を行う時に何を伝えればよいかは本当に難しいです。

エンジニアはどうしても原因を伝えたがりますが、ユーザは対処方法にしか興味がないです。

人によって周知内容にバラツキが出ないよう。予めテンプレート化しておくと良いです。

再発防止策にこだわりすぎない

トラブルの(一次)処置が落ち着くと、再発防止策を検討し、実施することになります。

ここで陥りやすいのが、2度とトラブルを起こさないことに執着しすぎて、トラブルが起きた時より多くのコストをかけることです。

例をあげると、「情シス部員の単純なオペミスにより障害が発生した」という障害の対策が、「メンテナンス時は必ず2人で作業する」としてはダメだということです。

2人で作業する人

システムの中には多少トラブルが起きて良いものもあります。
全てのシステムのメンテ工数が倍になるのであれば、トラブルが起きたほうがマシでしょう。

いかがでしたか?トラブルの原因と対処に関する記事は以上です。