第3話(3)9928
「どこから手を付けますかね」
机の上に「法二 物理 631」というラベルシールが貼られたノートパソコンを取り出す柏原に聞かれた。
「三十分だからな」と確認するように口に出す。やれることは限られている。「ログ分析ぐらいでしょう」
「そうなりますよね。貰ってきます」と言って彼は既に実作業を始めている新宮以下の係の方へ向かった。
古西はその間にと、方針を考える。
新宮は被害予想が欲しいと言った。搬送のためと前置きしていたが、あと一時間半もしたら行われる会見のためとも見ていいだろう。そこで語るための情報も用意しておくべきだ。
被害者数たる拘束プレイヤー数、うちの死者数たる離脱プレイヤー数は確実に必要となる。二時半の会見では、単純にティタン社からもたらされた同時接続人数しか発表しておらず、ピーク後にログインしたプレイヤーやピーク前に殺されたプレイヤーは人数から漏れていた。これらの値は、ログからの集計でもわかるはずだ。もちろん、より正確な値が取れたら、つまり全員の身元の確認が取れれば不要になるが、それは時間が掛かるはずだ。知っておいて困ることはない。
搬送の検討には、全プレイヤーの接続元の住所、少なくとも都道府県市区町村単位が必要だ。所在の偏りが生じている可能性が高く、それを把握した上で計画を立てたいからだ。他には何が必要だろうか。
少し集中していたのか、何度か名前を呼ばれていた。顔を上げると柏原が戻っていた。
「ログのアクセス権、貰ってきましたよ」
既にクラウド上のログ分析サービスがブラウザで開かれており、付箋にメモされたIDとパスワードをログインフォームに打ち込んでいくところだ。
「これは?」と付箋を指し聞く。
「なんか、ティタン社側で用意したみたいですよ」
数分ごとに一課の人が電話で現在のログイン数を聞いてきたらしく、その程度はもう自分でやってくれと、CIOのログが流れているクラウドサービスにpoliceという閲覧権限のみの制限ユーザを作ったようで、そのアカウント名とパスワードが送られてきた。そう柏原は、彼もこの権限を貰ったときにした同じ質問の答えを続けた。
「なるほど」と古西は画面を見る。貯められているログの種類ごとの一覧が表示されていた。アクセスログ、アクションログ、それもある程度の細かい粒度で、成功と失敗も別々に記録されているようだった。
柏原はログの名前の一覧を確認しつつスクロールする。割とすぐに終わりにたどり着く。
「全部アプリケーションのログっぽいですね」
このログから各種状況を確認せよ、というのがブログ記事の声明にはない、一般には公開されていない北浜からの指示だった。ティタン社内に設置されたゲームサーバは、既存の管理アカウントのアクセスを受け付けなくなった一方、ログは既存の分析サービスを使う目的でクラウド側にも投げ込まれるようになっており、今も稼働していた。いや、生かし続けるというのが北浜の通達だった。
ログは見える。
だが、あくまで二次的な情報だ。社員が誰もログインできず、そして、今までとは違うサービスが提供されているサーバが正しいログを送っている保証はどこにもない。
だから、確認すべきはサーバにアクセスする手前の部分だ。
「通信経路のログはありませんか?」
アプリケーションのログに記録されている接続元と共通のものがルーターのログにも記録されている。そのログは正確である。ただ、ルーターのログにはゲームと無関係なアクセスも記録されており、まだ把握はできていない。現に、会見前になんとか人数だけは、ここで大枠がわかったぐらいだ。
それがもう見れるかもしれないと思ったからだが、柏原は口を曲げる。
「なさそうですね。まあ、そこのログだと分量があるので、三十分じゃ終わらないかもしれませんよ」
上流のログは使えない。つまり、犯行声明通りに事件を起こした北浜が確認手順も同じ正直さを持っていると信じる他ない。癪な状況だが決断する。
「仕方ない。時間優先です。このログを使いましょう。ただ、基本的に信頼のおけないデータなので、数値ではなく、割合や分布に注目しやすくまとめましょう」
「わかりました」柏原はそう言ってから、古西の顔を見る。「で、何を調べるんですか?」
「ああ、すみません。まずは……割合とか言いましたが、基本的な値だけは抑えておきましょう。被害者総数と死者数です」
「多分、これですね」
柏原はlogin_successというログ一覧を開く。ずらずら生データが表示される。上部のフォームにデータ抽出用のコマンドを書き込み実行する。
一行だけの表が現れた。一行目の結果は「9928」という数値だった。
「これが全ログイン数ですね。いや、これすごいですよ。一万人分しかアカウント発行していないのに、このアクティブ率ですからね。最大ログイン人数何人でしたっけ、九千九百より少なかったような記憶ありますけど、それよりちょっと多いってことは、ピーク前後で入ったか落ちたかですかね」
独り言のように続ける柏原に古西は指示する。
「この値、報告のときに手順が必要になると思うので、簡単にメモ残してもらえます?」
「了解です」
彼はワードソフトを起動して、打ち込んだコマンドをコピーする。古西は自分の手帳に「被害者:9928人」と書き刻んだ。いつもよりも文字が濃かった。
柏原は文書に名前を付けて保存すると、ブラウザのログ画面に戻った。
「次は死者数ですかね」
「はい」
「これかな」
柏原はlogout_successを開いたが何も入っていなかった。
「じゃあ、こっちか」
logout_failureを開く。空ではなくずらずらとデータが表示される。
古西は何か嫌な気分を感じ、言った。
「ログアウト失敗なのか……」
「……そうみたいですね。ただ……不幸中の幸いって感じがしますね」
柏原は少し言葉に迷っているようだった。
「どういう意味ですか?」
「いや、これ……クリアしたらログアウトできるって話じゃないですか。ということは、クリアしたとき初めてlogout_successにログが書かれるって考えられますよね。でも、これ今もし、logout_successにログが書いてあったら、やばいじゃないですか。クリアしても全員死ぬってことかもしれなかったわけじゃないですか。そうじゃなかったところは、まあ、良かったのかもな、って」
古西は、ベータとか全然当たらないし、発売されたけど全然買えないよ、と柏原が笑いながら言っていたことを思い出した。
彼もまたどこかで北浜博明を信じているのだ。
だから、それはわからないのでは、と言おうとしてやめた。
柏原は先ほどのコマンドを貼って実行していた。
集計結果が一行だけ、「193」と表示された。
「これが、まあ……そうです」と彼は言った。
古西は手に力が入っているのを持っているボールペンの硬い感触で気づいた。
会見に出たときは、大変な事件が起こったという思いはあれど、その被害はまだコンピュータ上の数値という理解に過ぎなかった。
だが、今、明確に、自分は実在の被害として認識していた。
正確に言えば、集計前に見えた投入された状態のログ。一行にナノ秒を含む時刻、アクセストークン、ユーザーID、そして、「invalid logout」という情報。脳が加熱され、ゆるやかに意識を失って、目覚めることがない終わり。その直前に発行される死の宣告がこの一行だと気づいてしまったのだ。
「死者数:193人(午後三時四十分現在)」
古西は自分を押さえ込むように筆圧を高めて書いた。
「あの……あとは」
雰囲気を感じ取ったのか、柏原が遠慮がちに尋ねた。
「ええ、ああ」そう言って古西は平常心に戻ろうとする。「そうですね。被害者、亡くなった方含めて全員の接続元、そのIPから市区町村レベルの住所、そういう一覧は作れませんか?」
「うまくいけば、すぐにできると思います」
柏原は別のタブを開き、ウェブ検索を始めた。
古西は手帳を見た。最後に書いた行の文字は震えていた。
重大事件を解決したいみたいな思いがあったわけではない。そう思うこともなかったので、自分は警察の中で事件に対しては無関心な方なのかもな、と感じていた。
だけど、そんなことはなかった。
あのログデータ。そこから自分は画面の向こう側の人間、別に性別も年齢も容姿もわからないのだが、人間が存在するということを明瞭に認識していた。もう、それがただの数字の羅列だと思えなかった。
「この画面からはできないかぁ」
柏原が英語のドキュメントとにらめっこをしながら呟いた。
「よし、手元でやるか」とログのダウンロードを始める。「すみません、古西警部補。結局、どういう形で表示します?」
「ああ、もうデータができたんですか?」
違う思いに一瞬気を取られており、古西は聞き返した。
「それはまだです。クラウドで完結しなくて。ローカルでします。だから、出力フォーマットを聞きたくて」
「表のデータはシンプルでいいです。ユーザID、IP、住所だけで。あとは棒グラフを地図にマッピングするので――」
そう答えて、表計算ソフトに日本地図にグラフが表示できる機能があることを伝えた。
柏原はすぐに検索をする。
「へー、こういうのあるんだ。なるほど」
そうしているうちにダウンロードが終わる。彼はウェブにある使い方の記事を読み終えて続けた。
「なら、CSV吐いてやるのが良さそうですね」
黒い背景のプログラミング用のエディタが起動する。IPから住所を引くのは良くやるらしく、既にあるソースファイルを開いて、ほとんどコピペでプログラムを完成させた。バグは出ずに、プログラムは目当てのファイルを吐き出す。
柏原はそれを表計算ソフトで開き、サポートページと見比べながら、マップ生成のウィザードを進めていく。すぐに地図上の各地域から伸びるように棒グラフが表示される。彼は見やすく調整をし始めたが、古西にはもう十分なぐらいに結果は見えていた。
「やっぱりか……」
大阪府や愛知県ですら、被害者は百人を超えていない。
一方、四都県には、東京の二十三区を中心にわけがわからないほど高い棒グラフが並んでいた。
「これは……」と柏原が何か言おうとして考え込む。
「分析はあとで。共有をしましょう」
自分は東京にそう詳しくはない。詳しい人を早めに交えた方がいいだろう。
「新宮! できたぞ!」と少し大きな声で呼んだ。
「やはりな」
新宮はマップを一目見て言った。
これを作るための方法を簡単に共有する。ログの信頼性に問題がある件は「説得はこっちでなんとかする」と返された。
全国各地の値などを一通り見て、新宮は呟くように言った。
「これでようやく警察庁動かせる」
「確かに警察庁まだですよね。僕は呼ばれたので来てますけど」と柏原が応じる。
「初動のタイミングの問題だ」
今、現状は文書による恐喝事件として、特殊犯捜査第2係が中心に捜査本部が立ち上げられ、そして、各課の連携不足から、まだ、企業恐喝で進んでいる、という話がされた。
その話に古西は頭が痛くなる。今までは飄々と捉えれていたのにだ。それは自分でも不思議な感覚だった。こんなことしている場合かよ、と小声で吐き出した。
「ああ、そういう場合ではない」それに新宮は答えた。「だから、これが必要だった。都下だけでも四千人以上のただちに搬送の必要な人がいる。これは十分に警察庁下に対策本部を設置できる理由だ。これで関係機関連絡会議を設置し、搬送を進めていく」
「そうだな」と返した。
「あの、すみません。一つ、基本的な話、いいですか?」と柏原が言った。
「もちろん」と新宮。
「東京には、えーっと、四三二七人のプレイヤーがいますよね。この搬送ってそんなに大変なことなんですか?」
そう言ってから、「いや、すみません」と謝りながら、大地震などの災害と比較していることを付け加え、「普通になんとかなったりしませんかね?」と続けた。
「簡単な計算をしましょうか」と古西は言った。「都市部だと救急隊の数は十万人に二つ、東京は人口千三百万人、なので二百六十ぐらい救急車があると考えられます」
いわゆるフェルミ推計だ。大分昔、就活のときに散々やって以降も、何かと使えるので大雑把なこういう値は覚えていた。
「正確には二百五十一だ」と新宮が口を挟む。
近い値だ。勘は鈍っていない。
「では、その値を使おう。実際には二十三区を中心に偏っていますが、仮なので、均等に被害が出ているとして、一隊あたり十……十六人ぐらい搬送かな?」
暗算すると「十七・二ですね」と手元のパソコンに4327÷251を入力した柏原が言った。
「ありがとう。つまり、一隊あたり十七人搬送しないといけない」
二人が頷くのが見える。
「一方、通常の出動が確か十万人あたり年間五千件ぐらい。さっきの十万人に救急隊が二つと考えると、救急隊は一日で六か七は出動する」
「確か、東京だと八は超えていたはずだ」と記憶を振り絞るように新宮が言った。
「いずれにせよ、いつもの三倍運ばないといけない。二日掛けるとしても倍」
「二倍頑張れる余地ってあるんですか?」
柏原の質問に答えたのは新宮だった。
「無いこともない」
難しい顔で続ける。
「都内の救急車は現場到着に十分弱、そこから三十分で搬送完了。署に戻るのに現場到着と同じぐらいの時間と仮定すると、行って戻ってで一回一時間弱。一日八回出動しているから、この数日だけ押し込めないわけじゃない」
「ただ、均等に散らばっていてこうですよ。おそらく都心部にもっと固まっているので、さらに悪い状況があってもおかしくない」と古西は補足した。
「ついでに病床数とかわかるか?」
新宮に聞かれて、「勘で良ければ」と答えると「勘でいい」と言われた。
頭の記憶を探るように一瞬上を見る。
「確か、病床は十万人にだいたい千。都市圏だと少なくて八百ぐらい。利用率が七割か八割だったので、空きは百六十。十万人に救急隊は二隊だから、受け持ちからプレイヤーは三十四人」
と、そこまで言って問題に気づく。
「いや、この計算はまずいかな。プレイヤーは多分寝たきりの植物状態。となると高度医療が可能なところに入れる必要があるかもしれない。ちょっと数が読めないかな……」
そこで詰まって、うーんと悩んでいると、「よし」と新宮が手を打った。
「古西。警察庁に対策本部を立てる。そこで搬送の取りまとめを頼む」
えっ、と戸惑う自分に、京都の人でも問題ない、私だって住んだことないところはわからない、どちらかというと今みたいにパッと見積もり立てて、決断していくのが一番重要だから、などと言われる。
「いやいや、ちょっと待て」
事件に対する気持ちには火がついていた。だけども、それは辞令がきちんと下りてからだ。今日から数日かかる大事を独断でやるわけにはいかない。さすがに休日にちょっと指揮下で手伝うのと訳が違う。
「せめて、上と相談させてくれ」
スマホを取り出し、何コールかしたところで上長である山下に繋がった。
「もしもし、古西です。お休み中のところ何度もすみません」
そう前置きして、まず、会見の手伝いと言っていたのが、司会となり、質疑応答にまでかり出されたことを詫びた。それについては『テレビで見ていたよ』とだけ返された。古西は重ね重ね詫びて、本題に入った。
「警察庁に今回の事件の対策本部を設置するのですが、こちらの参加、許可をいただけないでしょうか」
何秒か沈黙が続いた。
『どうしてもか』
「はい」即答する。
『そんなに特別な事件か』
「はい」脳裏には個人の手帳に記した被害者の数字がよみがえる。「私が絶対に解決したい、そういう強い思いでいます」
『そうか……古西もようやく刑事らしくなってきたな』と言われた。
確かにそうかもしれない。
ただ、そのことを山下がどういう意味で言ったのかわからず、何も言葉は継げないでいた。
先に沈黙を破ったのは山下の方だった。
『何をやるんだ?』
「搬送です」
『何日かかる?』
「三日以内には終わらせます」
そうでなければ、死者が出るだろう。
『では、遅くとも水曜か。いいだろう。対策本部の仕事をしたまえ』
「ありがとうございます」
そう言いながら、電話越しであったが頭を下げた。
『ただしだ。搬送が終わった翌日には報告しに京都に戻れ。そこで辞令を出す準備をしておく』
「わかりました」
返事をすると、宙ぶらりんになった二課への技術共有会の件はこちらで処理をしておく、と山下は付け加え、古西はそれにも重ね重ね礼をした。
スマホを耳から離すと、新宮からサッと紙を手渡される。
箇条書きの項目が書かれた内容は、どう見ても対策本部設置を上申するための説明資料だった。
「警察庁の人間にアポは取った。今すぐ行ってくれ」
「準備早いな」
「絶対に誰かが行くんだ。準備済みなのは当然だ」
「確かに」
そう言いつつ、紙に貼られた大きめの付箋をチラ見する。至急と丸が付けられ、アポイント先の場所と名前が手書きされていた。相手の肩書きは警視長相当、自分の四階級上だ。そんな人物との約束を、緊急時とはいえ時間指定なしで取り付けていく、新宮のやり手具合に舌を巻いた。
「では、頼む」
彼はそんな様子をおくびにも出さなかった。
「そっちこそ、会見でトチらないようにな」
新宮はそれにニヤリと笑い返した。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます