yseto.github.io/blog

VPSの疎通確認をいい感じにする

Thu Jan 26 00:00:00 2023

趣味の用途でいくつかのVPSを使っている。最近のVPSは国内事業者、海外事業者共に、IPv6の対応が進んでおり、何不自由なく使える。ところによっては、VPSのインスタンスに対してIPv6のみを割り当てるプランがあるVPS事業者(具体的にはVultr)もある。

VPSは、ansibleで構成管理しており、原因は探りきれていないが時々iptablesへのルール適用か何かがうまくいかず、外部からの接続をすべてはじいていた。というようなことがある。そういう場合に限って、ansibleで適用するためのsshのコネクションは生きたままだったりするので、気づくのに遅れることがある。可能であれば早く気づきたい。

VPSへ外界から接続が可能かを調べるには、便利な商用サービスはたくさんあるが、IPv4とIPv6のアドレスを共に個別に確認したい場合に、自分では手ごろなサービスを見つけることができなかった。また、自分が普段使っているPushoverという通知する仕組みに対応したものも、あまり見かけない。

こういう場合はなんだかんだ作ったほうがだいたい早かったりする。プライベートなものしか乗っていないので、全世界から丁寧に監視するまでもない。そのため、自宅を監視元とすることにし、手ごろなSBCなどから監視することにした。

作ったものは、https://github.com/yseto/vps-uptimeに置くことにした。

設定はYAMLで管理するようにし、crondで手軽に起動するようにした。復旧した場合は通知をする。であるとか、通知の周期を調整するとかもやろうと思えば制御できるが、そもそも復旧させるのは自分なので、ホストがダウンしてるぽいと判断したら復旧させるまで通知が届く簡単な仕様となっている。