障害 #16
完了一部ノードが非表示となっている
100%
説明
【事象】¶
一部ノードが非表示となっている事象を検知。
ログを確認した結果、REST-API呼び出し時のタイムアウトとなっていた。
【発生経緯】¶
11/12 朝8:00頃 Twitter DMにより連絡を受け検知。
9:00頃、Symbol Node List、およびTwitterでの障害報を掲載。
12:00頃、自然に障害事象が解消した。
【原因】¶
不明。
xym.stir-hosyu.com で管理されているノードが非表示になっていることが判明。
サーバからcurlコマンドにより、該当ノードへの疎通を図ったが、タイムアウトすることから、
当ツールの稼働するサーバからのアクセスがどこかで拒否されていると 推測 される。
【影響】¶
xym.stir-hosyu.com で管理する約37ノードが非表示になったと考えられる。 ※事後確認のため、正確な数は不明
【今後の対応】¶
原因不明、かつ自然復旧していることから、原因を推測し対処する。
①大量アクセスによる接続拒否
結論: 各ノードへの負荷は分散しているもののより低負荷となるよう改修する。
前提として、当ツールでは、以下のような大量アクセスに対する配慮を行っている。
(1) ノードのヘルスチェック等は、一定時間おいてからチェック
(2) ハーベスト状況や、トランザクションを大量に取得する際は、複数ノードにRESTすることで負荷分散
上記より、アクセス拒否されるようなレベルのトランザクションは発生しないと一次判断した。
しかし直近の改修として、NGLノードの停止アナウンスにより、NGLノード以外のノードへの処理分散に切り替えている。
対象ノードは、ハードコーディングで24ノードを対象としているが、xym.stir-hosyu.com 管理のノードはうち4ノードを占めている。
アクセス拒否されるレベルではないと考えるが、更なる負荷分散を行う。
②サービス提供されていないHTTP(80番ポート)へのnodeSetting.jsonの定期監視
結論: 対処不要と判断。
当ツールでは、ノードの稼働するサーバにnodeSetting.jsonを配置することで、コメント登録を行う機能を有する。
設定確認のため、20分間隔で設定をチェックする処理を実装しているが、nodeSetting.jsonを設定していないサーバに対しては、
毎回 404応答やサービス提供していないポート(80番)へのアクセスになっている。
本件について念のため影響有無をxym.stir-hosyu.com の管理者にお伝えしたが、問題はなさそうとの回答を受領。
また、設定ファイルを定期的に監視することは、WEBのクローラーが一般的にやっていることであり、それが問題になることはないと思慮。